#define PTS_NUM 16

U0 BSplineDemo()
{
CDC *dc=DCAlias;
I64 arg1,arg2,i=0,msg_code;
CD3I32 c[PTS_NUM];

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<PTS_NUM && 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;