Files
TempleOS-Rijn/LT/Demo/Graphics/BSpline.CPZ
T
2018-09-08 21:45:20 +02:00

31 lines
762 B
Plaintext

void BSplineDemo()
{
GrBitMap *b=GrAlias(Gs->grbase,Fs);
I8 p1,p2,i=0,cmd;
BoolU4 old_inhibit=ip_inhibit_win_operations;
BoolU4 old_ip_double=Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK);
P3I4 c[64];
ip_inhibit_win_operations=TRUE;
PutS("$$CL$$");
GrClear;
do {
cmd=GetMsg(&p1,&p2,1<<MSG_IP_L_UP+1<<MSG_IP_R_UP);
if (cmd==MSG_IP_L_UP) {
c[i].x=p1; c[i].y=p2; c[i].z=0;
b->color=GREEN^WHITE;
GrCircle(b,p1,p2,10);
i++;
}
} while (cmd!=MSG_IP_R_UP);
b->color=RED^WHITE;
Gr2BSpline(b,c,i,TRUE);
b->color=BLUE^WHITE;
Gr3BSpline(b,c,i,TRUE);
AssignBit(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK,old_ip_double);
ip_inhibit_win_operations=old_inhibit;
GrDel(b);
}
BSplineDemo;