GEOS 3.14.0dev
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
geos::index::quadtree::NodeBase Class Referenceabstract

The base class for nodes in a Quadtree. More...

#include <NodeBase.h>

Inheritance diagram for geos::index::quadtree::NodeBase:
geos::index::quadtree::Node geos::index::quadtree::Root

Public Member Functions

std::vector< void * > & getItems ()
 
void add (void *item)
 
std::vector< void * > & addAllItems (std::vector< void * > &resultItems) const
 Push all node items to the given vector, return the argument.
 
virtual void addAllItemsFromOverlapping (const geom::Envelope &searchEnv, std::vector< void * > &resultItems) const
 
unsigned int depth () const
 
std::size_t size () const
 
std::size_t getNodeCount () const
 
virtual std::string toString () const
 
virtual void visit (const geom::Envelope *searchEnv, ItemVisitor &visitor)
 
bool remove (const geom::Envelope *itemEnv, void *item)
 
bool hasItems () const
 
bool hasChildren () const
 
bool isPrunable () const
 

Static Public Member Functions

static int getSubnodeIndex (const geom::Envelope *env, const geom::Coordinate &centre)
 

Protected Member Functions

virtual bool isSearchMatch (const geom::Envelope &searchEnv) const =0
 

Protected Attributes

std::vector< void * > items
 Actual items are NOT owned by this class.
 
std::array< Node *, 4 > subnodes
 

Detailed Description

The base class for nodes in a Quadtree.

Member Function Documentation

◆ add()

void geos::index::quadtree::NodeBase::add ( void *  item)

Add an item to this node. Ownership of the item is left to caller.

◆ remove()

bool geos::index::quadtree::NodeBase::remove ( const geom::Envelope itemEnv,
void *  item 
)

Removes a single item from this subtree.

Parameters
itemEnvthe envelope containing the item
itemthe item to remove
Returns
true if the item was found and removed

Member Data Documentation

◆ subnodes

std::array<Node*, 4> geos::index::quadtree::NodeBase::subnodes
protected

subquads are numbered as follows:

 2 | 3
 --+--
 0 | 1

Nodes are owned by this class


The documentation for this class was generated from the following file: