From: adam Date: Wed, 5 Dec 2007 05:08:00 +0000 (-0800) Subject: checkpoint X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=a1c8b8ce6c3b7840a29a04a6d9ec970a01937534;p=anneal.git checkpoint darcs-hash:20071205050800-5007d-7707281bee69e5e0b77712c812a6a8f055f63b1e.gz --- diff --git a/src/edu/berkeley/qfat/Main.java b/src/edu/berkeley/qfat/Main.java index bdab101..2788f02 100644 --- a/src/edu/berkeley/qfat/Main.java +++ b/src/edu/berkeley/qfat/Main.java @@ -243,7 +243,7 @@ public class Main implements GLEventListener, MouseListener, MouseMotionListener //double min = (tile.avgedge/tile.numedges)*(1+(4/(double)verts)); //if (verts>0 && tile.es.peek().length() < min) return; PriorityQueue es = new PriorityQueue(); - for(Mesh.E e : tile.es) es.add(e); + for(Mesh.E e : tile.edges()) es.add(e); for(int i=0; i<10; i++) { Mesh.E e = es.poll(); verts++; diff --git a/src/edu/berkeley/qfat/Mesh.java b/src/edu/berkeley/qfat/Mesh.java index fc1f8de..c570ede 100644 --- a/src/edu/berkeley/qfat/Mesh.java +++ b/src/edu/berkeley/qfat/Mesh.java @@ -17,11 +17,31 @@ public class Mesh implements Iterable { public static Random random = new Random(); private HashMap ps = new HashMap(); - public HashSet es = new HashSet(); + //public HashSet es = new HashSet(); + + public Iterable edges() { + return + new Iterable() { + public Iterator iterator() { + // HACK + HashSet hse = new HashSet(); + for(T t : Mesh.this) { + hse.add(t.e1()); + hse.add(t.e2()); + hse.add(t.e3()); + hse.add(t.e1().pair); + hse.add(t.e2().pair); + hse.add(t.e3().pair); + } + return hse.iterator(); + } }; + } public Iterator iterator() { - if (es.size() == 0) return new FaceIterator(); - return new FaceIterator(es.iterator().next().p1); + for(Vert v : ps.values()) { + if (v.e != null && v.e.t != null) return new FaceIterator(v); + } + return new FaceIterator(); } public Point origin() { return new Point(0, 0, 0); } @@ -481,8 +501,6 @@ public class Mesh implements Iterable { pair.next = prev; if (p1.e == this) p1.e = prev.next; if (pair.p1.e == pair) pair.p1.e = pair.prev.next; - es.remove(this); - es.remove(pair); avgedge -= this.length(); avgedge -= pair.length(); numedges--; @@ -496,7 +514,6 @@ public class Mesh implements Iterable { if (this.next.p1 != p2) throw new Error(); if (this.prev.p2 != p1) throw new Error(); if (this.p1.e == null) this.p1.e = this; - es.add(this); if (!added) { added = true; numedges++;