projects
/
anneal.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
checkpoint
[anneal.git]
/
src
/
edu
/
berkeley
/
qfat
/
geom
/
PointSet.java
diff --git
a/src/edu/berkeley/qfat/geom/PointSet.java
b/src/edu/berkeley/qfat/geom/PointSet.java
index
5a70261
..
b75038c
100644
(file)
--- a/
src/edu/berkeley/qfat/geom/PointSet.java
+++ b/
src/edu/berkeley/qfat/geom/PointSet.java
@@
-1,6
+1,7
@@
package edu.berkeley.qfat.geom;
import java.util.*;
package edu.berkeley.qfat.geom;
import java.util.*;
+/** a set of points, plus many useful methods operating over the set */
public class PointSet<V extends HasPoint> implements Iterable<V> {
private RTree<V> rtree = new RTree<V>();
public class PointSet<V extends HasPoint> implements Iterable<V> {
private RTree<V> rtree = new RTree<V>();
@@
-20,9
+21,6
@@
public class PointSet<V extends HasPoint> implements Iterable<V> {
return exact.get(p);
}
return exact.get(p);
}
- public void rebuild() {
- }
-
public void add(V v) {
V x = get(v.getPoint());
if (x != null && x.equals(v)) return;
public void add(V v) {
V x = get(v.getPoint());
if (x != null && x.equals(v)) return;
@@
-38,11
+36,13
@@
public class PointSet<V extends HasPoint> implements Iterable<V> {
exact.remove(p);
}
exact.remove(p);
}
- public V nearest(Point p) {
+ public V nearest(Point p) { return nearest(p, null); }
+ public V nearest(Point p, Visitor<V> vis) {
if (exact.size()==0) return null;
if (exact.size()==0) return null;
- return rtree.nearest(p);
+ return rtree.nearest(p, vis);
}
}
+ // FEATURE: compute incrementally?
public Vec diagonal() {
float min_x = Float.MAX_VALUE;
float min_y = Float.MAX_VALUE;
public Vec diagonal() {
float min_x = Float.MAX_VALUE;
float min_y = Float.MAX_VALUE;
@@
-62,6
+62,7
@@
public class PointSet<V extends HasPoint> implements Iterable<V> {
return new Vec(max_x - min_x, max_y - min_y, max_z - min_z);
}
return new Vec(max_x - min_x, max_y - min_y, max_z - min_z);
}
+ // FEATURE: compute incrementally?
public Point centroid() {
float min_x = Float.MAX_VALUE;
float min_y = Float.MAX_VALUE;
public Point centroid() {
float min_x = Float.MAX_VALUE;
float min_y = Float.MAX_VALUE;