boolean loopIsClosed = true; int n=4; // current number of points pt [] P = new pt[1000]; // decalres an array of vertices int p=0; // index to the currently selected vertex being dragged int next(int j) { if (j==n-1) {return (0);} else {return(j+1);} }; // next point in loop int prev(int j) { if (j==0) {return (n-1);} else {return(j-1);} }; // previous point in loop void declarePoints() {for (int i=0; i0) surfel.T.back(); return surfel; } RAY bounced(RAY I, RAY N) {float d = -dot(N.T,V(N.Q,I.Q))/dot(N.T,I.T); return ray(N.Q,I.T.makeReflectedVec(N.T),I.d-d(I.Q,N.Q)); } // ************************************** ARCHIVAL ********************************* void savePts() {savePts("P.pts");} void savePts(String fn) { String [] inppts = new String [n+1]; int s=0; inppts[s++]=str(n); for (int i=0; i