// CORNER TABLE FOR TRIANGLE MESHES by Jarek Rosignac // Last edited Feb 17, 2008 Mesh M = new Mesh(); // creates a default triangle meshvoid computeValenceAndResetNormals() { // caches valence of each vertex //========================== class MESH =============================== class Mesh { // ==================================== INIT, CREATE, COPY ==================================== Mesh() {} int maxnv = 20000; // max number of vertices int maxnt = maxnv*2; // max number of triangles void declare() {c=0; sc=0; prevc=0; for (int i=0; i0)&&(depthn2c-1) {println(" did "+(n2-n2c+1)+" more right zips"); for (int i=0; in2(C(V(eye,mark),N2))) zipLeft(); else zipRight(); } void showNext() { // if (area(g(n(c1)),g(n(c2)),g(p(c1)))n2(C(V(eye,mark),N2))) { fill(orange,100); showTriangle(g(n(c1)),g(n(c2)),g(p(c1))); showLineFrom(M(g(n(c1)),g(n(c2)),g(p(c1))),N1,50);} else { fill(yellow,100); showTriangle(g(n(c2)),g(p(c1)),g(p(c2))); showLineFrom(M(g(n(c2)),g(p(c1)),g(p(c2))),N2,50);}; } int findSeedTriangles() { int seed=0; for (int t=0; tMt[t(c)]) {c=3*i;};}; rings=255; for(int i=0; i0) visible[i]=false; } void unhide() { for(int i=0; i0.00001) { r=log(x) / log(2);} ; return(r);} vec labelD=new vec(-4,+4, 12); // offset vector for drawing labels int maxr=1;