checkpoint
[anneal.git] / src / edu / berkeley / qfat / Mesh.java
index 8f3e6ab..1d842f7 100644 (file)
@@ -18,9 +18,9 @@ public class Mesh implements Iterable<Mesh.T> {
     private PointSet<Vertex> vertices  = new PointSet<Vertex>();
 
     public boolean immutableVertices;
-    public boolean ignorecollision = false;
-    public Mesh    score_against = null;
-    public double  score = 0;
+    public boolean ignorecollision    = false;
+    public Mesh    score_against      = null;
+    public double  score              = 0;
 
     public Mesh(boolean immutableVertices) { this.immutableVertices = immutableVertices; }
 
@@ -47,35 +47,16 @@ public class Mesh implements Iterable<Mesh.T> {
     }
 
     public void unApplyQuadricToNeighborAll() {
-        HashSet<Vertex> done = new HashSet<Vertex>();
-        for(T t : this)
-            for(Vertex p : new Vertex[] { t.v1(), t.v2(), t.v3() }) {
-                if (done.contains(p)) continue;
-                done.add(p);
-                p.unApplyQuadricToNeighbor();
-            }
+        for(Vertex p : vertices)
+            p.unApplyQuadricToNeighbor();
     }
     public void recomputeAllFundamentalQuadrics() {
-        HashSet<Vertex> done = new HashSet<Vertex>();
-        for(T t : this)
-            for(Vertex p : new Vertex[] { t.v1(), t.v2(), t.v3() }) {
-                if (done.contains(p)) continue;
-                done.add(p);
-                p.recomputeFundamentalQuadric();
-            }
+        for(Vertex p : vertices)
+            p.recomputeFundamentalQuadric();
     }
-    public float applyQuadricToNeighborAll() {
-        int num = 0;
-        double dist = 0;
-        HashSet<Vertex> done = new HashSet<Vertex>();
-        for(T t : this)
-            for(Vertex p : new Vertex[] { t.v1(), t.v2(), t.v3() }) {
-                if (done.contains(p)) continue;
-                done.add(p);
-                p.applyQuadricToNeighbor();
-                
-            }
-        return (float)(dist/num);
+    public void applyQuadricToNeighborAll() {
+        for(Vertex p : vertices)
+            p.applyQuadricToNeighbor();
     }
 
     public void transform(Matrix m) {
@@ -335,6 +316,7 @@ public class Mesh implements Iterable<Mesh.T> {
                     return true;
             return false;
         }
+
         public void unbind() { bound_to = this; binding = Matrix.ONE; }
         public void bind(Vertex p) { bind(p, Matrix.ONE); }
         public void bind(Vertex p, Matrix binding) {
@@ -403,20 +385,7 @@ public class Mesh implements Iterable<Mesh.T> {
         public boolean intersects(T t) { return t.intersects(p1.p, p2.p); }
         public float comparator() {
             Vertex nearest = score_against.nearest(midpoint());
-            //if (t==null) return length();
-            /*
-              double ang = Math.abs(crossAngle());
-              float minangle = (float)(Math.PI * 0.9);
-              if (ang > minangle)
-              return 300;
-            */
-            /*
-              if ((length() * length()) / t.area() > 10)
-              return (float)(length()*Math.sqrt(t.area()));
-              return length()*t.area();
-            */
             return (float)Math.max(length(), midpoint().distance(nearest.p));
-            //return length();
         }
         public int compareTo(E e) {
             return e.comparator() > comparator() ? 1 : -1;