checkpoint
[anneal.git] / src / edu / berkeley / qfat / Mesh.java
index e3a7cde..264e379 100644 (file)
@@ -239,15 +239,15 @@ public class Mesh implements Iterable<Mesh.T> {
                 else if (nearest_in_other_mesh == null) {
                     if (score_against != null) {
                         Vert ne = score_against.nearest(p);
-                        oldscore = ne.fundamentalQuadric().preAndPostMultiply(p) * 100 * 100;
+                        oldscore = ne.fundamentalQuadric().preAndPostMultiply(p) * 100 * 10;
                     } else {
                         oldscore = 0;
                     }
                 } else {
-                    oldscore = nearest_in_other_mesh.fundamentalQuadric().preAndPostMultiply(p) * 100 * 100;
+                    oldscore = nearest_in_other_mesh.fundamentalQuadric().preAndPostMultiply(p) * 100 * 10;
                 }
             } else {
-                oldscore = (quadric.preAndPostMultiply(p) * 100);
+                oldscore = (quadric.preAndPostMultiply(p) * 100) / quadric_count;
             }
 
             oldscore = oldscore;
@@ -265,11 +265,11 @@ public class Mesh implements Iterable<Mesh.T> {
                     aspects += e.t.aspect()*e.t.aspect();
                 }
                 */
-
+                /*
                 float minangle = (float)(Math.PI * 0.9);
                 if (ang > minangle)
                     oldscore += (ang - minangle);
-
+                */
                 e = e.pair.next;
             } while (e != this.e);
             if (numaspects > 0) oldscore += (aspects / numaspects);
@@ -471,7 +471,7 @@ public class Mesh implements Iterable<Mesh.T> {
                 return (float)(length()*Math.sqrt(t.area()));
             return length()*t.area();
             */
-            return length() + midpoint().distance(nearest.p);
+            return (float)Math.max(length(), midpoint().distance(nearest.p));
         }
         public int compareTo(E e) {
             return e.comparator() > comparator() ? 1 : -1;