19 #ifndef GEOS_INDEX_STRTREE_STRTREE_H
20 #define GEOS_INDEX_STRTREE_STRTREE_H
22 #include <geos/export.h>
23 #include <geos/index/strtree/AbstractSTRtree.h>
24 #include <geos/index/SpatialIndex.h>
25 #include <geos/geom/Envelope.h>
31 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
70 bool intersects(
const void* aBounds,
const void* bBounds);
80 std::auto_ptr<BoundableList> createParentBoundables(
BoundableList* childBoundables,
int newLevel);
82 std::auto_ptr<BoundableList> createParentBoundablesFromVerticalSlices(std::vector<BoundableList*>* verticalSlices,
int newLevel);
84 STRIntersectsOp intersectsOp;
86 std::auto_ptr<BoundableList> sortBoundables(
const BoundableList* input);
88 std::auto_ptr<BoundableList> createParentBoundablesFromVerticalSlice(
97 std::vector<BoundableList*>* verticalSlices(
107 return &intersectsOp;
118 STRtree(std::size_t nodeCapacity=10);
124 static double avg(
double a,
double b) {
125 return (a + b) / 2.0;
141 return AbstractSTRtree::remove(itemEnv, item);
154 #endif // GEOS_INDEX_STRTREE_STRTREE_H
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:53
Base class for STRtree and SIRtree.
Definition: AbstractSTRtree.h:132
void query(const void *searchBounds, std::vector< void * > &foundItems)
Also builds the tree, if necessary.
void query(const geom::Envelope *searchEnv, ItemVisitor &visitor)
Queries the index for all items whose extents intersect the given search Envelope and applies an Item...
Definition: STRtree.h:136
A query-only R-tree created using the Sort-Tile-Recursive (STR) algorithm. For two-dimensional spatia...
Definition: STRtree.h:62
void query(const geom::Envelope *searchEnv, std::vector< void * > &matches)
Queries the index for all items whose extents intersect the given search Envelope.
Definition: STRtree.h:132
Abstract class defines basic insertion and query operations supported by classes implementing spatial...
Definition: SpatialIndex.h:47
A test for intersection between two bounds, necessary because subclasses of AbstractSTRtree have diff...
Definition: AbstractSTRtree.h:166
A visitor for items in an index.
Definition: ItemVisitor.h:29
virtual void insert(const void *bounds, void *item)
Also builds the tree, if necessary.
A node of the STR tree.
Definition: AbstractNode.h:42
std::vector< Boundable * > BoundableList
A list of boundables. TODO: use a list.
Definition: AbstractSTRtree.h:44
IntersectsOp * getIntersectsOp()
Definition: STRtree.h:106