36 lines
698 B
HolyC
36 lines
698 B
HolyC
#define MAX_PTS 16
|
|
|
|
U0 BSplineDemo()
|
|
{
|
|
CDC *dc=DCAlias;
|
|
I64 arg1,arg2,i=0,msg_code;
|
|
CD3I32 c[MAX_PTS];
|
|
|
|
SettingsPush;
|
|
Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS-WIF_SELF_BORDER;
|
|
|
|
DocClear;
|
|
"Sel ctrl points with left mouse. Right when finished.\n";
|
|
DCFill;
|
|
do {
|
|
msg_code=GetMsg(&arg1,&arg2,1<<MSG_MS_L_UP+1<<MSG_MS_R_UP);
|
|
if (msg_code==MSG_MS_L_UP) {
|
|
c[i].x=arg1; c[i].y=arg2; c[i].z=0;
|
|
dc->color=GREEN;
|
|
GrCircle(dc,arg1,arg2,10);
|
|
i++;
|
|
}
|
|
} while (i<MAX_PTS && msg_code!=MSG_MS_R_UP);
|
|
dc->color=RED;
|
|
Gr2BSpline(dc,c,i,TRUE);
|
|
dc->color=BLUE;
|
|
Gr3BSpline(dc,c,i,TRUE);
|
|
DCDel(dc);
|
|
SettingsPop;
|
|
|
|
PressAKey;
|
|
DCFill;
|
|
}
|
|
|
|
BSplineDemo;
|