X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2FMesh.java;h=f7143f0d8477a594ad82b0148a417bf7b5c5a14e;hp=7c3867295ba1eddbe011cd812f1d739ecd659288;hb=9a60e73a7339e38ca07ead4a1d4b8880eea34854;hpb=a834467308680ec7fc4a82e2f5998b85784a7572 diff --git a/src/edu/berkeley/qfat/Mesh.java b/src/edu/berkeley/qfat/Mesh.java index 7c38672..f7143f0 100644 --- a/src/edu/berkeley/qfat/Mesh.java +++ b/src/edu/berkeley/qfat/Mesh.java @@ -115,6 +115,22 @@ public class Mesh implements Iterable { } + public void subdivide() { + for (T t : this) t.old = true; + for (Vertex v : vertices()) v.original = true; + OUTER: while(true) { + for (T t : this) + if (t.old) { + Point p = t.e1.midpoint(); + System.out.println("shatter " + t.e1); + t.e1.shatter(); + nearest(p).edge = true; + continue OUTER; + } + break; + } + } + // Vertexices ////////////////////////////////////////////////////////////////////////////// /** a vertex in the mesh */ @@ -123,6 +139,9 @@ public class Mesh implements Iterable { public Point oldp; E e; // some edge *leaving* this point + public boolean original = false; + public boolean edge = false; + private boolean illegal = false; public boolean visible = false; @@ -752,6 +771,8 @@ public class Mesh implements Iterable { public final int color; public final int colorclass; + public boolean old; + public final int serial = max_serial++; public boolean occluded;