///////////////////////////// // Spline Paint Mesh Brush // // Per-Anders Edwards 2003 // ///////////////////////////// var click; var oldpnt; main(doc,op) { if (!safe) return; var myop=NULL; var findop=doc->GetFirstObject(); if (findop->GetName()!="Mesh Brush Spline") { myop=new(SplineObject); doc->AddUndo(UNDO_NEW,myop); var mytag=new(SegmentTag); myop->InsertBefore(findop); myop->InsertTag(mytag,0); myop->SetName("Mesh Brush Spline"); } else myop=findop; doc->AddUndo(UNDO_CHANGE,myop); // var cnt=myop->GetPointCount(); if (!click) { click=TRUE; var segcnt=myop->GetSegmentCount(); var vc=new(VariableChanged); vc->Init(segcnt,segcnt+1); myop->MultiMessage(MSG_SEGMENTS_CHANGED,vc); var segs=myop->GetSegments(); segs[segcnt]=0; myop->SetSegments(segs); oldpnt=0; } oldpnt++; var segcnt=myop->GetSegmentCount(); var vc=new(VariableChanged); vc->Init(segcnt,segcnt); myop->MultiMessage(MSG_SEGMENTS_CHANGED,vc); var segs=myop->GetSegments(); segs[segcnt-1]=oldpnt; myop->SetSegments(segs); myop->Message(MSG_UPDATE); var cnt=myop->GetPointCount(); var vc=new(VariableChanged); vc->Init(cnt,cnt+1); myop->MultiMessage(MSG_POINTS_CHANGED,vc); myop->SetPoint(cnt,op->GetMg()->GetMulP(cursor)); myop->Message(MSG_UPDATE); }