checkpoint
authoradam <adam@megacz.com>
Wed, 5 Dec 2007 08:01:56 +0000 (00:01 -0800)
committeradam <adam@megacz.com>
Wed, 5 Dec 2007 08:01:56 +0000 (00:01 -0800)
darcs-hash:20071205080156-5007d-4c4d00db025768cc0cc2884af9a13e2ee573c555.gz

src/edu/berkeley/qfat/Mesh.java

index dfdc1a0..774efa3 100644 (file)
@@ -186,10 +186,12 @@ public class Mesh implements Iterable<Mesh.T> {
         public void unscore() {
             if (nearest_in_other_mesh == null) return;
             if (fundamentalQuadric == null) return;
+            nearest_in_other_mesh.unsc();
             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 = null;
         }
 
@@ -210,8 +212,10 @@ 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.quadric = nearest_in_other_mesh.quadric.plus(fundamentalQuadric());
                     nearest_in_other_mesh.quadric_count++;
+                    nearest_in_other_mesh.resc();
                 }
             }