X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2FMesh.java;h=157955153cdc1b2c28650008a7052f8bb348d28f;hp=8592d8aafc0aa7a274145c5b43846bb94f062686;hb=3b84875407de81c3ca4481b1a7f323df6204de5d;hpb=a3a659d0128908676e5793c7e59884b565c367cf diff --git a/src/edu/berkeley/qfat/Mesh.java b/src/edu/berkeley/qfat/Mesh.java index 8592d8a..1579551 100644 --- a/src/edu/berkeley/qfat/Mesh.java +++ b/src/edu/berkeley/qfat/Mesh.java @@ -16,7 +16,6 @@ public class Mesh implements Iterable { private PointSet pointset = new PointSet(); public Vert nearest(Point p) { return pointset.nearest(p); } - private HashMap verts = new HashMap(); public Iterable edges() { return @@ -132,14 +131,13 @@ public class Mesh implements Iterable { } } - public Vert register(Point p) { Vert v = verts.get(p); return v==null ? new Vert(p) : v; } + public Vert register(Point p) { Vert v = pointset.get(p); return v==null ? new Vert(p) : v; } public final class Vert extends HasPoint { public Point p; public Point getPoint() { return p; } private Vert(Point p) { this.p = p; - if (verts.get(p) != null) throw new Error(); - verts.put(this.p, this); + if (pointset.get(p) != null) throw new Error(); pointset.add(this); } public void reinsert() { @@ -210,8 +208,7 @@ public class Mesh implements Iterable { // FIXME: screws up hashmap unscore(); try { - if (verts.get(this.p)==null) throw new Error(); - verts.remove(this.p); + if (pointset.get(this.p)==null) throw new Error(); pointset.remove(this); float newx = m.a*p.x + m.b*p.y + m.c*p.z + m.d; float newy = m.e*p.x + m.f*p.y + m.g*p.z + m.h; @@ -219,7 +216,6 @@ public class Mesh implements Iterable { this.p = new Point(newx, newy, newz); // FIXME: what if we move onto exactly where another point is? pointset.add(this); - verts.put(this.p,(Vert)this); } catch (Exception e) { throw new RuntimeException(e); }