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:

## 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
SIRtree & | operator= (const SIRtree &)=delete
Public Member Functions inherited from geos::index::strtree::AbstractSTRtree
| AbstractSTRtree (std::size_t newNodeCapacity)
| Constructs an AbstractSTRtree with the specified maximum number of child nodes that a node may have.
virtual void | build ()
| Creates parent nodes, grandparent nodes, and so forth up to the root node, for the data that has been inserted into the tree.
virtual std::size_t | getNodeCapacity ()
| Returns the maximum number of child nodes that a node may have.
void | iterate (ItemVisitor &visitor)
virtual void | boundablesAtLevel (int level, AbstractNode *top, BoundableList *boundables)
ItemsList * | itemsTree ()
| Gets a tree structure (as a nested list) corresponding to the structure of the items and nodes in this tree.

## Protected Member Functions

std::unique_ptr< BoundableList > | createParentBoundables (BoundableList *childBoundables, int newLevel) override
| Sorts the childBoundables then divides them into groups of size M, where M is the node capacity.
AbstractNode * | createNode (int level) override
IntersectsOp * | getIntersectsOp () override
std::unique_ptr< BoundableList > | sortBoundables (const BoundableList *input)
Protected Member Functions inherited from geos::index::strtree::AbstractSTRtree
virtual AbstractNode * | lastNode (BoundableList *nodeList)
virtual AbstractNode * | getRoot ()
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< BoundableList > | boundablesAtLevel (int level)

## Additional Inherited Members

Protected Attributes inherited from geos::index::strtree::AbstractSTRtree
AbstractNode * | root
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

## SIRtree()

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)

References SIRtree().

## Member Function Documentation

## createNode()

AbstractNode * geos::index::strtree::SIRtree::createNode | ( | int | level | ) |

override protected virtual

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

## createParentBoundables()

std::unique_ptr< BoundableList > geos::index::strtree::SIRtree::createParentBoundables | ( | BoundableList * | childBoundables,
|  | int | newLevel )

override protected virtual

Sorts the childBoundables then divides them into groups of size M, where M is the node capacity.

Reimplemented from geos::index::strtree::AbstractSTRtree.

## getIntersectsOp()

IntersectsOp * geos::index::strtree::SIRtree::getIntersectsOp | ( |  | ) |

inline override protected virtual

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.

## query() [1/2]

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

inline

Returns items whose bounds intersect the given value.

References query().

## query() [2/2]

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

inline

Returns items whose bounds intersect the given bounds.

Parameters

  x1 | possibly equal to x2
  x2 |

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

Referenced by query().

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

- SIRtree.h