X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2FMesh.java;h=dfdc1a097514bdbf79b1ac85123f4364c9bfce84;hp=5ba7404022c20b24bab3ee207ed2604e9774047d;hb=e9681998186aae90379775e798e49d85d203b28e;hpb=671c9fafbbf48db2c6ea279d182c6bd9d4961796 diff --git a/src/edu/berkeley/qfat/Mesh.java b/src/edu/berkeley/qfat/Mesh.java index 5ba7404..dfdc1a0 100644 --- a/src/edu/berkeley/qfat/Mesh.java +++ b/src/edu/berkeley/qfat/Mesh.java @@ -65,7 +65,7 @@ public class Mesh implements Iterable { } } - public void unscore() { + public void unscoreAll() { HashSet done = new HashSet(); for(T t : this) for(Vert p : new Vert[] { t.v1(), t.v2(), t.v3() }) { @@ -83,7 +83,7 @@ public class Mesh implements Iterable { p.recomputeFundamentalQuadric(); } } - public float rescore() { + public float rescoreAll() { int num = 0; double dist = 0; HashSet done = new HashSet(); @@ -193,11 +193,14 @@ public class Mesh implements Iterable { nearest_in_other_mesh = null; } + public void unsc() { + score -= oldscore; + oldscore = 0; + } public void rescore() { if (score_against == null) return; - score -= oldscore; - oldscore = 0; + unsc(); if (nearest_in_other_mesh != null) unscore(); if (nearest_in_other_mesh == null) { @@ -212,6 +215,9 @@ public class Mesh implements Iterable { } } + resc(); + } + public void resc() { oldscore = quadric_count == 0 ? 0 : (quadric.preAndPostMultiply(p) / quadric_count); score += oldscore; }