X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2FMain.java;h=2fbd7261b421ef32c5f46cd976d9d0645d715af5;hp=82ca36c71b58fb8cb0a294d89ef6be039b6f9c8f;hb=6fe08d5c50c341f47ded8ce9acd670aad9362614;hpb=e0e7d9b473eacc2407c2d70ed0ec42b109a1faf3 diff --git a/src/edu/berkeley/qfat/Main.java b/src/edu/berkeley/qfat/Main.java index 82ca36c..2fbd726 100644 --- a/src/edu/berkeley/qfat/Main.java +++ b/src/edu/berkeley/qfat/Main.java @@ -247,6 +247,7 @@ public class Main extends MeshViewer { // translate to match centroid goal.transform(Matrix.translate(tile.centroid().minus(goal.centroid()))); + goal.makeVerticesImmutable(); //tx.e2.shatter(); //tx.e3.shatter(); @@ -265,7 +266,6 @@ public class Main extends MeshViewer { tile.score_against = goal; goal.score_against = tile; - tile.tilemesh = true; } public synchronized void breakit() { @@ -386,7 +386,7 @@ public class Main extends MeshViewer { int count = 0; long then = System.currentTimeMillis(); - for(int i=0; i<100; i++) { + for(int i=0; i<40; i++) { if (anneal) { count++; Mesh.Vertex v = pts[Math.abs(random.nextInt()) % pts.length]; @@ -398,18 +398,16 @@ public class Main extends MeshViewer { System.out.println("temp="+temp + " ratio="+(Math.ceil(ratio*100)) + " " + "points_per_second=" + (count*1000)/((double)(System.currentTimeMillis()-then))); - tile.rebuild(); - repaint(); - //breakit(); - repaint(); - goal.unApplyQuadricToNeighborAll(); + + for(Mesh.Vertex p : tile.vertices()) p.recomputeFundamentalQuadric(); repaint(); - tile.recomputeAllFundamentalQuadrics(); + for(Mesh.Vertex p : goal.vertices()) p.recomputeFundamentalQuadric(); repaint(); - goal.applyQuadricToNeighborAll(); - safeTriangles.clear(); - for(Mesh.T t : tile) if (t.shouldBeDrawn()) safeTriangles.add(t); + synchronized(safeTriangles) { + safeTriangles.clear(); + for(Mesh.T t : tile) if (t.shouldBeDrawn()) safeTriangles.add(t); + } } } }