15 #ifndef GEOS_INDEX_STRTREE_SIRTREE_H
16 #define GEOS_INDEX_STRTREE_SIRTREE_H
18 #include <geos/export.h>
20 #include <geos/index/strtree/AbstractSTRtree.h>
21 #include <geos/index/strtree/Interval.h>
41 class GEOS_DLL SIRtree:
public AbstractSTRtree {
56 SIRtree(std::size_t nodeCapacity);
60 void insert(
double x1,
double x2,
void* item);
68 query(
double x1,
double x2)
70 std::vector<void*>* results =
new std::vector<void*>();
71 Interval interval(std::min(x1, x2), std::max(x1, x2));
89 SIRtree(
const SIRtree&) =
delete;
90 SIRtree& operator=(
const SIRtree&) =
delete;
94 class SIRIntersectsOp:
public AbstractSTRtree::IntersectsOp {
96 bool intersects(
const void* aBounds,
const void* bBounds)
override;
103 std::unique_ptr<BoundableList> createParentBoundables(
109 getIntersectsOp()
override
114 std::unique_ptr<BoundableList> sortBoundables(
const BoundableList* input)
override;
118 std::vector<std::unique_ptr<Interval>> intervals;
126 #endif // GEOS_INDEX_STRTREE_SIRTREE_H
virtual void insert(const void *bounds, void *item)
Also builds the tree, if necessary.
std::vector< Boundable * > BoundableList
A list of boundables. TODO: use a list.
Definition: AbstractSTRtree.h:44
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25
void query(const void *searchBounds, std::vector< void * > &foundItems)
Also builds the tree, if necessary.
A node of the STR tree.
Definition: AbstractNode.h:80
A test for intersection between two bounds, necessary because subclasses of AbstractSTRtree have diff...
Definition: AbstractSTRtree.h:173