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);
66 std::vector<void*>* query(
double x1,
double x2)
68 std::vector<void*>* results =
new std::vector<void*>();
69 Interval interval(std::min(x1, x2), std::max(x1, x2));
77 std::vector<void*>* query(
double x) {
return query(x,x); }
90 bool intersects(
const void* aBounds,
const void* bBounds)
override;
97 std::unique_ptr<BoundableList> createParentBoundables(
100 AbstractNode* createNode(
int level)
override;
102 IntersectsOp* getIntersectsOp()
override {
return intersectsOp;}
104 std::unique_ptr<BoundableList> sortBoundables(
const BoundableList* input)
override;
107 IntersectsOp* intersectsOp;
108 std::vector<std::unique_ptr<Interval>> intervals;
116 #endif // GEOS_INDEX_STRTREE_SIRTREE_H