checkpoint
[anneal.git] / src / edu / berkeley / qfat / Mesh.java
index 3b39842..94b4e73 100644 (file)
@@ -11,8 +11,8 @@ import edu.berkeley.qfat.geom.Point;
 
 public class Mesh implements Iterable<Mesh.T> {
 
-    public static float EPSILON = (float)0.0001;
-    public static Random random = new Random();
+    public static final float EPSILON = (float)0.0001;
+    public static final Random random = new Random();
 
     private PointSet<Vert> pointset = new PointSet<Vert>();
 
@@ -98,7 +98,6 @@ public class Mesh implements Iterable<Mesh.T> {
         return (float)total;
     }
 
-
     public class BindingGroup {
         public HashSet<E> es = new HashSet<E>();
         public BindingGroup() { }
@@ -139,8 +138,6 @@ public class Mesh implements Iterable<Mesh.T> {
         public Point getPoint() { return p; }
         private Vert(Point p) {
             this.p = p;
-            //this.e = e;
-            //if (e==null) throw new Error();
             if (pointset.get(p) != null) throw new Error();
             pointset.add(this);
         }
@@ -193,8 +190,6 @@ public class Mesh implements Iterable<Mesh.T> {
 
         /** does NOT update bound pairs! */
         public boolean transform(Matrix m) {
-            // FIXME: screws up kdtree 
-            // FIXME: screws up hashmap
             unscore();
             try {
                 if (pointset.get(this.p)==null) throw new Error();
@@ -203,7 +198,6 @@ public class Mesh implements Iterable<Mesh.T> {
                 float newy = m.e*p.x + m.f*p.y + m.g*p.z + m.h;
                 float newz = m.i*p.x + m.j*p.y + m.k*p.z + m.l;
                 this.p = new Point(newx, newy, newz);
-                // FIXME: what if we move onto exactly where another point is?
                 pointset.add(this);
             } catch (Exception e) {
                 throw new RuntimeException(e);
@@ -310,6 +304,7 @@ public class Mesh implements Iterable<Mesh.T> {
         E next;  // next half-edge
         E pair;  // partner half-edge
         public BindingGroup bg = new BindingGroup(this);
+        boolean shattered = false;
 
         public int compareTo(E e) { return e.length() > length() ? 1 : -1; }
 
@@ -325,7 +320,6 @@ public class Mesh implements Iterable<Mesh.T> {
             }
         }
 
-        boolean shattered = false;
         public Point shatter() { return shatter(midpoint(), null, null); }
         public Point shatter(Point mid, BindingGroup bg1, BindingGroup bg2) {
             if (shattered) return mid;