1 package org.simantics.utils.datastructures.collections;
3 import java.awt.geom.Point2D;
4 import java.awt.geom.Rectangle2D;
5 import java.util.HashMap;
10 * Improved QuadTree with spatial removes.
12 * If application logic contains lots of tree modifications (remove + add), removals are much faster done spatially.
14 * @author MarkoLuukkainen
18 public class QuadTree2<T> {
21 Map<T,Rectangle2D> map;
23 public QuadTree2(Point2D center, double width, double height, int depth) {
24 this.qt = new QuadTree<T>(center, width, height, depth);
25 this.map = new HashMap<T, Rectangle2D>();
28 public void insert(T object, Rectangle2D bounds) {
29 Rectangle2D r = map.put(object, bounds);
34 qt.insert(object, bounds);
37 public void remove(T object) {
38 Rectangle2D r = map.remove(object);
44 public boolean contains(T object) {
45 return map.containsKey(object);
48 public void get(Rectangle2D bounds, Set<T> set) {