package com.github.davidmoten.rtree;
import java.util.List;
import com.github.davidmoten.rtree.geometry.Geometry;
/**
* Uses minimal overlap area selector for leaf nodes and minimal areea increase
* selector for non-leaf nodes.
*/
public final class SelectorRStar implements Selector {
private static Selector overlapAreaSelector = new SelectorMinimalOverlapArea();
private static Selector areaIncreaseSelector = new SelectorMinimalAreaIncrease();
@Override
public <T, S extends Geometry> Node<T, S> select(Geometry g, List<? extends Node<T, S>> nodes) {
boolean leafNodes = nodes.get(0) instanceof Leaf;
if (leafNodes)
return overlapAreaSelector.select(g, nodes);
else
return areaIncreaseSelector.select(g, nodes);
}
}