GEOS: geos::index::strtree::SIRtree Class Reference

GEOS 3.5.0

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

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:

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

## Member Function Documentation

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

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

  x1 | possibly 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.

References query().

Referenced by query().

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

- SIRtree.h