class Stepper { // stepper for the rings boolean [] B = new boolean [10]; // Boolean flags and number of recursions int d=0; Stepper (int pd) {d=pd; this.reset();}; void reset() {for(int i=0; i=vn) for (int i=0; i0; i--) P[i].setTo(P[i-1]); P[0].setTo(P0); }; void drawVertexIDs() { // draws vertices for (int i=0; i10) { // if closest vertex is too far bd=600; // reinitilize distance squared for (int i=0; ibi; i--) {P[i+1].setFromPt(P[i]); }; // shift down the rest bi++; P[bi].setFrom(Mouse); vn++; // insert new vertex at mouse position } else {bi=-1;}; // nothing selected }; return(bi!=-1); } void delete() { // deletes selected point if it is out if ( (bi!=-1) && P[bi].isOut() ) {for (int i=bi; ibx) {bx=P[i].x;}; if (P[i].xby) {by=P[i].y;}; if (P[i].yabs(P[in(i)].y-P[i].y)) {float dy=(P[in(i)].y-P[i].y)/2; P[in(i)].y-=dy; P[i].y+=dy;} else {float dx=(P[in(i)].x-P[i].x)/2; P[in(i)].x-=dx; P[i].x+=dx;}; }; } void savePts() { String [] inppts = new String [vn+1]; int s=0; inppts[s++]=str(vn); for (int i=0; i