From: adam Date: Wed, 5 Dec 2007 05:26:07 +0000 (-0800) Subject: checkpoint X-Git-Url: http://git.megacz.com/?p=anneal.git;a=commitdiff_plain;h=4bd9230a11f7db494328fb2aa00afc3e4c314dcc checkpoint darcs-hash:20071205052607-5007d-442be8ee2c19307d62cd6f8415dc869bb85683ee.gz --- diff --git a/src/edu/berkeley/qfat/geom/PointSet.java b/src/edu/berkeley/qfat/geom/PointSet.java index f47a8d5..841d781 100644 --- a/src/edu/berkeley/qfat/geom/PointSet.java +++ b/src/edu/berkeley/qfat/geom/PointSet.java @@ -2,18 +2,27 @@ package edu.berkeley.qfat.geom; import edu.wlu.cs.levy.CG.KDTree; import java.util.*; -public class PointSet { +public class PointSet implements Iterable { private /*final*/ KDTree kd = new KDTree(3); private final double[] doubles = new double[3]; private HashMap exact = new HashMap(); + public Iterator iterator() { + return exact.values().iterator(); + } public void clear() { kd = new KDTree(3); } + public V get(Point p) { + return exact.get(p); + } + public void add(V v) { + V x = get(v.getPoint()); + if (x != null && x.equals(v)) return; Point p = v.getPoint(); doubles[0] = p.x; doubles[1] = p.y; @@ -38,6 +47,7 @@ public class PointSet { } public V nearest(Point p) { + if (exact.size()==0) return null; Object[] results; try { doubles[0] = p.x;