checkpoint
authoradam <adam@megacz.com>
Wed, 5 Dec 2007 05:26:07 +0000 (21:26 -0800)
committeradam <adam@megacz.com>
Wed, 5 Dec 2007 05:26:07 +0000 (21:26 -0800)
darcs-hash:20071205052607-5007d-442be8ee2c19307d62cd6f8415dc869bb85683ee.gz

src/edu/berkeley/qfat/geom/PointSet.java

index f47a8d5..841d781 100644 (file)
@@ -2,18 +2,27 @@ package edu.berkeley.qfat.geom;
 import edu.wlu.cs.levy.CG.KDTree;
 import java.util.*;
 
 import edu.wlu.cs.levy.CG.KDTree;
 import java.util.*;
 
-public class PointSet<V extends HasPoint> {
+public class PointSet<V extends HasPoint> implements Iterable<V> {
 
     private /*final*/ KDTree kd = new KDTree(3);
     private final double[] doubles = new double[3];
 
     private HashMap<Point,V> exact = new HashMap<Point,V>();
 
 
     private /*final*/ KDTree kd = new KDTree(3);
     private final double[] doubles = new double[3];
 
     private HashMap<Point,V> exact = new HashMap<Point,V>();
 
+    public Iterator<V> iterator() {
+        return exact.values().iterator();
+    }
     public void clear() {
         kd = new KDTree(3);
     }
 
     public void clear() {
         kd = new KDTree(3);
     }
 
+    public V get(Point p) {
+        return exact.get(p);
+    }
+
     public void add(V v) {
     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;
         Point p = v.getPoint();
         doubles[0] = p.x;
         doubles[1] = p.y;
@@ -38,6 +47,7 @@ public class PointSet<V extends HasPoint> {
     }
 
     public V nearest(Point p) {
     }
 
     public V nearest(Point p) {
+        if (exact.size()==0) return null;
         Object[] results;
         try {
             doubles[0] = p.x;
         Object[] results;
         try {
             doubles[0] = p.x;