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];
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 : goal.vertices()) p.recomputeFundamentalQuadricIfNeighborChanged();
repaint();
- tile.recomputeAllFundamentalQuadrics();
+ for(Mesh.Vertex p : tile.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);
+ }
}
}
}