GEOS  3.8.0dev
Public Member Functions | Protected Member Functions | List of all members
geos::index::strtree::SIRtree Class Reference

One-dimensional version of an STR-packed R-tree. More...

#include <SIRtree.h>

Inheritance diagram for geos::index::strtree::SIRtree:
geos::index::strtree::AbstractSTRtree

Public Member Functions

 SIRtree ()
 Constructs an SIRtree with the default node capacity.
 
 SIRtree (std::size_t nodeCapacity)
 Constructs an SIRtree with the given maximum number of child nodes that a node may have.
 
void insert (double x1, double x2, void *item)
 
std::vector< void * > * query (double x1, double x2)
 
std::vector< void * > * query (double x)
 
 SIRtree (const SIRtree &)=delete
 
SIRtreeoperator= (const SIRtree &)=delete
 
- Public Member Functions inherited from geos::index::strtree::AbstractSTRtree
 AbstractSTRtree (std::size_t newNodeCapacity)
 
virtual void build ()
 
virtual std::size_t getNodeCapacity ()
 
virtual void query (const void *searchBounds, const AbstractNode *node, std::vector< void * > *matches)
 
void iterate (ItemVisitor &visitor)
 
virtual void boundablesAtLevel (int level, AbstractNode *top, BoundableList *boundables)
 
ItemsList * itemsTree ()
 

Protected Member Functions

std::unique_ptr< BoundableListcreateParentBoundables (BoundableList *childBoundables, int newLevel) override
 Sorts the childBoundables then divides them into groups of size M, where M is the node capacity.
 
AbstractNodecreateNode (int level) override
 
IntersectsOpgetIntersectsOp () override
 
std::unique_ptr< BoundableListsortBoundables (const BoundableList *input) override
 
- Protected Member Functions inherited from geos::index::strtree::AbstractSTRtree
virtual AbstractNodelastNode (BoundableList *nodeList)
 
virtual AbstractNodegetRoot ()
 
virtual void insert (const void *bounds, void *item)
 Also builds the tree, if necessary.
 
void query (const void *searchBounds, std::vector< void * > &foundItems)
 Also builds the tree, if necessary.
 
void query (const void *searchBounds, ItemVisitor &visitor)
 Also builds the tree, if necessary.
 
void query (const void *searchBounds, const AbstractNode &node, ItemVisitor &visitor)
 
bool remove (const void *itemEnv, void *item)
 Also builds the tree, if necessary.
 
std::unique_ptr< BoundableListboundablesAtLevel (int level)
 

Additional Inherited Members

- Static Public Member Functions inherited from geos::index::strtree::AbstractSTRtree
static bool compareDoubles (double a, double b)
 
- Protected Attributes inherited from geos::index::strtree::AbstractSTRtree
AbstractNoderoot
 
std::vector< AbstractNode * > * nodes
 
std::size_t nodeCapacity
 

Detailed Description

One-dimensional version of an STR-packed R-tree.

SIR stands for "Sort-Interval-Recursive".

STR-packed R-trees are described in: P. Rigaux, Michel Scholl and Agnes Voisard. Spatial Databases With Application To GIS. Morgan Kaufmann, San Francisco, 2002.

See also
STRtree

Constructor & Destructor Documentation

geos::index::strtree::SIRtree::SIRtree ( const SIRtree )
delete

Disable copy construction and assignment. Apparently needed to make this class compile under MSVC. (See https://stackoverflow.com/q/29565299)

Member Function Documentation

IntersectsOp* geos::index::strtree::SIRtree::getIntersectsOp ( )
inlineoverrideprotectedvirtual
Returns
a test for intersection between two bounds, necessary because subclasses of AbstractSTRtree have different implementations of bounds.
See also
IntersectsOp

Implements geos::index::strtree::AbstractSTRtree.

std::vector<void*>* geos::index::strtree::SIRtree::query ( double  x1,
double  x2 
)
inline

Returns items whose bounds intersect the given bounds.

Parameters
x1possibly equal to x2

References geos::index::strtree::AbstractSTRtree::query().

std::vector<void*>* geos::index::strtree::SIRtree::query ( double  x)
inline

Returns items whose bounds intersect the given value.


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