19 #ifndef GEOS_IDX_QUADTREE_NODEBASE_H
20 #define GEOS_IDX_QUADTREE_NODEBASE_H
22 #include <geos/export.h>
28 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
70 std::vector<void*>& getItems();
77 std::vector<void*>& addAllItems(std::vector<void*>& resultItems)
const;
79 virtual void addAllItemsFromOverlapping(
const geom::Envelope& searchEnv,
80 std::vector<void*>& resultItems)
const;
82 unsigned int depth()
const;
84 unsigned int size()
const;
86 unsigned int getNodeCount()
const;
88 virtual std::string toString()
const;
101 bool hasItems()
const;
103 bool hasChildren()
const;
105 bool isPrunable()
const;
124 virtual bool isSearchMatch(
const geom::Envelope& searchEnv)
const=0;
131 NodeBase::hasChildren()
const
133 for (
int i = 0; i < 4; i++)
139 NodeBase::isPrunable()
const
141 return ! (hasChildren() || hasItems());
145 NodeBase::hasItems()
const
147 return !
items.empty();
158 #endif // GEOS_IDX_QUADTREE_NODEBASE_H
Node * subnode[4]
Definition: quadtree/NodeBase.h:122
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:53
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
The base class for nodes in a Quadtree.
Definition: quadtree/NodeBase.h:54
A visitor for items in an index.
Definition: ItemVisitor.h:29
std::vector< void * > items
Actual items are NOT owned by this class.
Definition: quadtree/NodeBase.h:110
Represents a node of a Quadtree.
Definition: index/quadtree/Node.h:55