checkpoint
[anneal.git] / src / edu / berkeley / qfat / geom / RTree.java
index c2fd9b4..cd1d217 100644 (file)
@@ -4,7 +4,7 @@ import java.util.*;
 import com.infomatiq.jsi.*;
 import com.infomatiq.jsi.rtree.*;
 
-public class RTree<V extends HasBoundingBox> {
+public class RTree<V extends HasBoundingBox> implements Iterable<V> {
 
     private com.infomatiq.jsi.rtree.RTree rtree =
         new com.infomatiq.jsi.rtree.RTree();
@@ -13,10 +13,19 @@ public class RTree<V extends HasBoundingBox> {
     HashMap<Integer, V> idToV = new HashMap<Integer, V>();
     HashMap<V, Integer> vToId = new HashMap<V, Integer>();
 
-    public RTree() {
-        Properties props = new Properties();
+    public Iterator<V> iterator() { return vToId.keySet().iterator(); }
+
+    private static final Properties props = new Properties();
+    static {
         props.put("MinNodeEntries", "1");
         props.put("MaxNodeEntries", "5");
+    }
+
+    public RTree() { clear(); }
+
+    public void clear() {
+        idToV.clear();
+        vToId.clear();
         rtree.init(props);
     }