71 std::deque<SimpleSTRnode> nodesQue;
72 std::vector<SimpleSTRnode*> nodes;
73 std::size_t nodeCapacity;
86 static void sortNodesY(std::vector<SimpleSTRnode*>& nodeList);
87 static void sortNodesX(std::vector<SimpleSTRnode*>& nodeList);
96 std::vector<SimpleSTRnode*> createHigherLevels(
97 std::vector<SimpleSTRnode*>& nodesOfALevel,
int level);
99 void addParentNodesFromVerticalSlice(
100 std::vector<SimpleSTRnode*>& verticalSlice,
102 std::vector<SimpleSTRnode*>& parentNodes);
104 std::vector<SimpleSTRnode*> createParentNodes(
105 std::vector<SimpleSTRnode*>& childNodes,
121 : nodeCapacity(capacity)
126 std::size_t getNodeCapacity()
const {
130 std::size_t getNumLeafNodes()
const {
134 return root->getNumLeafNodes();
139 bool getBuilt()
const {
143 SimpleSTRnode* getRoot() {
148 void insert(geom::Geometry* geom);
160 friend std::ostream& operator<<(std::ostream& os,
const SimpleSTRtree& tree);
167 std::pair<const void*, const void*> nearestNeighbour(
ItemDistance* itemDist);