checkpoint
authoradam <adam@megacz.com>
Wed, 5 Dec 2007 08:09:47 +0000 (00:09 -0800)
committeradam <adam@megacz.com>
Wed, 5 Dec 2007 08:09:47 +0000 (00:09 -0800)
darcs-hash:20071205080947-5007d-f838d6936598536875c234ecbf0604273bda81dc.gz

src/edu/berkeley/qfat/Main.java
src/edu/berkeley/qfat/Mesh.java

index 55eefd9..c4dcf5a 100644 (file)
@@ -193,7 +193,7 @@ public class Main extends MeshViewer {
     public synchronized void rand(double temperature, Mesh.Vert p) {
         double tile_score = tile.score();
         double goal_score = goal.score();
-        p.applyQuadricToNeighbor();
+        p.reComputeError();
 
         Vec v = new Vec((random.nextFloat() - (float)0.5) / 1000,
                         (random.nextFloat() - (float)0.5) / 1000,
index 55052b9..74ccd4b 100644 (file)
@@ -186,19 +186,15 @@ public class Mesh implements Iterable<Mesh.T> {
         public void unApplyQuadricToNeighbor() {
             if (nearest_in_other_mesh == null) return;
             if (fundamentalQuadric == null) return;
-            nearest_in_other_mesh.unsc();
+            nearest_in_other_mesh.unComputeError();
             nearest_in_other_mesh.quadric = nearest_in_other_mesh.quadric.minus(fundamentalQuadric);
             nearest_in_other_mesh.quadric_count--;
             if (nearest_in_other_mesh.quadric_count==0)
                 nearest_in_other_mesh.quadric = Matrix.ZERO;
-            nearest_in_other_mesh.resc();
+            nearest_in_other_mesh.computeError();
             nearest_in_other_mesh = null;
         }
 
-        public void unsc() {
-            score -= oldscore;
-            oldscore = 0;
-        }
         public void applyQuadricToNeighbor() {
             if (score_against == null) return;
 
@@ -210,16 +206,24 @@ public class Mesh implements Iterable<Mesh.T> {
                 if (nearest_in_other_mesh.e == null || nearest_in_other_mesh.norm().dot(norm()) < 0) {
                     nearest_in_other_mesh = null;
                 } else {
-                    nearest_in_other_mesh.unsc();
+                    nearest_in_other_mesh.unComputeError();
                     nearest_in_other_mesh.quadric = nearest_in_other_mesh.quadric.plus(fundamentalQuadric());
                     nearest_in_other_mesh.quadric_count++;
-                    nearest_in_other_mesh.resc();
+                    nearest_in_other_mesh.computeError();
                 }
             }
-            unsc();
-            resc();
+            reComputeError();
+        }
+
+        public void reComputeError() {
+            unComputeError();
+            computeError();
+        }
+        public void unComputeError() {
+            score -= oldscore;
+            oldscore = 0;
         }
-        public void resc() {
+        public void computeError() {
             oldscore = quadric_count == 0 ? 0 : (quadric.preAndPostMultiply(p) / quadric_count);
             score += oldscore;
         }