19 #ifndef GEOS_OP_POLYGONIZE_HOLEASSIGNER_H
20 #define GEOS_OP_POLYGONIZE_HOLEASSIGNER_H
22 #include <geos/operation/polygonize/EdgeRing.h>
23 #include <geos/index/strtree/STRtree.h>
29 namespace polygonize {
37 class GEOS_DLL HoleAssigner {
44 static void assignHolesToShells(std::vector<EdgeRing*> & holes, std::vector<EdgeRing*> & shells);
47 explicit HoleAssigner(std::vector<EdgeRing*> & shells) : m_shells(shells) {
51 void assignHolesToShells(std::vector<EdgeRing*> & holes);
52 void assignHoleToShell(EdgeRing* holeER);
53 std::vector<EdgeRing*> findShells(
const geom::Envelope & ringEnv);
55 EdgeRing* findEdgeRingContaining(EdgeRing* testER);
59 std::vector<EdgeRing*>& m_shells;