package iamrescue.belief.spatial;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import rescuecore2.standard.entities.StandardEntity;
import com.vividsolutions.jts.index.quadtree.Quadtree;
public class QuadtreeCollection {
private List<Quadtree> quadtrees;
private List<Collection<Class<? extends StandardEntity>>> classes;
public QuadtreeCollection() {
this.quadtrees = new ArrayList<Quadtree>();
this.classes = new ArrayList<Collection<Class<? extends StandardEntity>>>();
}
public void createNewQuadtree(
Collection<Class<? extends StandardEntity>> responsibleClasses) {
for (Class<? extends StandardEntity> newClass : responsibleClasses) {
for (Collection<Class<? extends StandardEntity>> collection : classes) {
for (Class<? extends StandardEntity> already : collection) {
if (already.isAssignableFrom(newClass)
|| newClass.isAssignableFrom(already)) {
throw new IllegalArgumentException(
"Adding the class "
+ newClass
+ " would create overlapping quadtrees, as "
+ "there is already a quadtree responsible for the class "
+ already);
}
}
}
}
quadtrees.add(new Quadtree());
}
}