checkpoint
[anneal.git] / src / edu / berkeley / qfat / Mesh.java
index 7c38672..f7143f0 100644 (file)
@@ -115,6 +115,22 @@ public class Mesh implements Iterable<Mesh.T> {
     }
 
 
+    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<Mesh.T> {
         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<Mesh.T> {
         public final int color;
         public final int colorclass;
 
+        public boolean old;
+
         public final int serial = max_serial++;
         public boolean occluded;