private /*final*/ KDTree kd = new KDTree(3);
private final double[] doubles = new double[3];
+ public int size() { return exact.size(); }
private HashMap<Point,V> exact = new HashMap<Point,V>();
public Iterator<V> iterator() {
}
public void clear() {
kd = new KDTree(3);
+ exact = new HashMap<Point,V>();
}
public V get(Point p) {
return exact.get(p);
}
+ public void rebuild() {
+ HashMap<Point,V> old_exact = exact;
+ exact = new HashMap<Point,V>();
+ kd = new KDTree(3);
+ for(V v : old_exact.values()) add(v);
+ }
+
public void add(V v) {
V x = get(v.getPoint());
if (x != null && x.equals(v)) return;
+ if (x != null) throw new Error("duplicates!");
Point p = v.getPoint();
doubles[0] = p.x;
doubles[1] = p.y;