X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2FMesh.java;h=32d1aea55fa624c94d0f7571aeaa581ae0c8780b;hp=c057f3319c5b9ebebb6dc1b0bb8b4e43a15e52d0;hb=49c6b2494c189dc37d2a48e2182aebdfc084056e;hpb=e0e7d9b473eacc2407c2d70ed0ec42b109a1faf3 diff --git a/src/edu/berkeley/qfat/Mesh.java b/src/edu/berkeley/qfat/Mesh.java index c057f33..32d1aea 100644 --- a/src/edu/berkeley/qfat/Mesh.java +++ b/src/edu/berkeley/qfat/Mesh.java @@ -17,18 +17,19 @@ public class Mesh implements Iterable { private RTree tris = new RTree(); private PointSet vertices = new PointSet(); - public boolean tilemesh = false; + public boolean immutableVertices; public boolean ignorecollision = false; public Mesh score_against = null; public double score = 0; + + public Mesh(boolean immutableVertices) { this.immutableVertices = immutableVertices; } + + public void makeVerticesImmutable() { this.immutableVertices = true; } public float score() { return (float)score; } public int size() { return vertices.size(); } public Iterable vertices() { return vertices; } - - public Iterator iterator() { - return tris.iterator(); - } + public Iterator iterator() { return tris.iterator(); } public void rebindPoints() { // unbind all points @@ -213,7 +214,7 @@ public class Mesh implements Iterable { } public void computeError() { if (quadric_count == 0) { - if (!tilemesh) { + if (immutableVertices) { } else if (nearest_in_other_mesh == null) { if (score_against != null) { Vertex ne = score_against.nearest(p); @@ -274,6 +275,7 @@ public class Mesh implements Iterable { /** does NOT update bound pairs! */ public boolean transform(Matrix m) { + if (immutableVertices) throw new Error(); unApplyQuadricToNeighbor(); Point oldp = this.p; try {