X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2FMain.java;h=f0671584f6ddd2a1d653bf5be3a3b639cfd31c7b;hb=e9681998186aae90379775e798e49d85d203b28e;hp=bb15b3bdfa19f43caba3d058d96bd8ead42ffd31;hpb=6fc720977d26dc1f154a3c0802c3beabd347d673;p=anneal.git diff --git a/src/edu/berkeley/qfat/Main.java b/src/edu/berkeley/qfat/Main.java index bb15b3b..f067158 100644 --- a/src/edu/berkeley/qfat/Main.java +++ b/src/edu/berkeley/qfat/Main.java @@ -31,7 +31,6 @@ public class Main extends MeshViewer { // rotate to align major axis -- this probably needs to be done by a human. goal.transform(new Matrix(new Vec(0, 0, 1), (float)(Math.PI/2))); - float goal_width = goal.diagonal().dot(new Vec(1, 0, 0)); float goal_height = goal.diagonal().dot(new Vec(0, 1, 0)); float goal_depth = goal.diagonal().dot(new Vec(0, 0, 1)); @@ -163,7 +162,7 @@ public class Main extends MeshViewer { //tx.e3.shatter(); - tile.bind(); + tile.rebindPoints(); //mid.move(new Vec((float)0,0,(float)-0.05)); //ltn.move(new Vec((float)0,0,(float)-0.05)); @@ -179,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++) { @@ -187,8 +186,7 @@ public class Main extends MeshViewer { verts++; System.out.println("shatter " + e); e.shatter(); - tile.unbind(); - tile.bind(); + tile.rebindPoints(); } } @@ -222,29 +220,25 @@ public class Main extends MeshViewer { } } - public static int verts = 0; + public void anneal() throws Exception { int verts = 0; while(true) { - //Thread.sleep(10); - 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(); - //tile.ts.get(Math.abs(random.nextInt()) % tile.ts.size()).e1().p1 - 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.unscoreAll(); + repaint(); + tile.recomputeAllFundamentalQuadrics(); + repaint(); + goal.rescoreAll(); } - } public static void main(String[] s) throws Exception {