21#include <geos/export.h>
28#pragma warning(disable: 4251)
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 std::size_t size()
const;
86 std::size_t 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;
131NodeBase::hasChildren()
const
133 for(
const auto& subnode :
subnodes) {
134 if(subnode !=
nullptr) {
143NodeBase::isPrunable()
const
145 return !(hasChildren() || hasItems());
149NodeBase::hasItems()
const
151 return !
items.empty();
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:58
A visitor for items in an index.
Definition: ItemVisitor.h:28
The base class for nodes in a Quadtree.
Definition: quadtree/NodeBase.h:54
std::array< Node *, 4 > subnodes
Definition: quadtree/NodeBase.h:122
std::vector< void * > items
Actual items are NOT owned by this class.
Definition: quadtree/NodeBase.h:110
bool remove(const geom::Envelope *itemEnv, void *item)
std::vector< void * > & addAllItems(std::vector< void * > &resultItems) const
Push all node items to the given vector, return the argument.
Basic namespace for all GEOS functionalities.
Definition: geos.h:39