X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2FMain.java;h=55eefd9b2c4a56282e4ee13d9156664eafde0c31;hb=96343836d53ebbd1ada9d7daafdbdb1326fc0349;hp=ad6f5a74e81ae6ed7f41f522cf3f74ac5fcae061;hpb=4d8dee517f7625919cdf75fa52601c945b18596a;p=anneal.git diff --git a/src/edu/berkeley/qfat/Main.java b/src/edu/berkeley/qfat/Main.java index ad6f5a7..55eefd9 100644 --- a/src/edu/berkeley/qfat/Main.java +++ b/src/edu/berkeley/qfat/Main.java @@ -178,7 +178,7 @@ public class Main extends MeshViewer { } public synchronized void breakit() { - if (verts > 200) return; + if (verts > 50) return; PriorityQueue es = new PriorityQueue(); for(Mesh.E e : tile.edges()) es.add(e); for(int i=0; i<10; i++) { @@ -193,7 +193,7 @@ public class Main extends MeshViewer { public synchronized void rand(double temperature, Mesh.Vert p) { double tile_score = tile.score(); double goal_score = goal.score(); - p.rescore(); + p.applyQuadricToNeighbor(); Vec v = new Vec((random.nextFloat() - (float)0.5) / 1000, (random.nextFloat() - (float)0.5) / 1000, @@ -225,20 +225,19 @@ public class Main extends MeshViewer { public void anneal() throws Exception { int verts = 0; while(true) { - for(int i=0; i<1; i++) { + HashSet hs = new HashSet(); + for(Mesh.Vert p : tile.vertices()) hs.add(p); + for(int i=0; i<10; i++) { repaint(); - for(Mesh.T t : tile) - for(Mesh.Vert p : new Mesh.Vert[] { t.v1(), t.v2(), t.v3() }) { - rand(10,p); - } - goal.unscore(); - tile.unscore(); - goal.fundamental(); - tile.fundamental(); - goal.rescore(); - tile.rescore(); + for(Mesh.Vert v : hs) rand(10,v); } breakit(); + repaint(); + goal.unApplyQuadricToNeighborAll(); + repaint(); + tile.recomputeAllFundamentalQuadrics(); + repaint(); + goal.applyQuadricToNeighborAll(); } }