19 #ifndef GEOS_INDEX_STRTREE_BOUNDABLEPAIR_H
20 #define GEOS_INDEX_STRTREE_BOUNDABLEPAIR_H
22 #include <geos/index/strtree/Boundable.h>
23 #include <geos/index/strtree/ItemDistance.h>
46 const Boundable* boundable1;
47 const Boundable* boundable2;
48 ItemDistance* itemDistance;
52 struct BoundablePairQueueCompare {
54 operator()(
const BoundablePair* a,
const BoundablePair* b)
56 return a->getDistance() > b->getDistance();
60 typedef std::priority_queue<BoundablePair*, std::vector<BoundablePair*>, BoundablePairQueueCompare> BoundablePairQueue;
61 BoundablePair(
const Boundable* boundable1,
const Boundable* boundable2, ItemDistance* itemDistance);
112 static bool isComposite(
const Boundable* item);
114 static double area(
const Boundable* b);
116 void expandToQueue(BoundablePairQueue&,
double minDistance);
117 void expand(
const Boundable* bndComposite,
const Boundable* bndOther,
bool isFlipped, BoundablePairQueue& priQ,