30 class GeometryFactory;
56 std::vector<std::unique_ptr<OverlayEdgeRing>>
vecOER;
58 std::vector<std::unique_ptr<geom::Polygon>> computePolygons(std::vector<OverlayEdgeRing*> shellList);
60 void buildRings(std::vector<OverlayEdge*>& resultAreaEdges);
62 void linkResultAreaEdgesMax(std::vector<OverlayEdge*>& resultEdges);
67 std::vector<std::unique_ptr<MaximalEdgeRing>>
68 buildMaximalRings(std::vector<OverlayEdge*>& edges);
75 std::vector<OverlayEdgeRing*> storeMinimalRings(std::vector<std::unique_ptr<OverlayEdgeRing>>& minRings);
77 void buildMinimalRings(std::vector<std::unique_ptr<MaximalEdgeRing>>& maxRings);
79 void assignShellsAndHoles(std::vector<OverlayEdgeRing*>& minRings);
90 OverlayEdgeRing* findSingleShell(std::vector<OverlayEdgeRing*>& edgeRings)
const;
102 void assignHoles(
OverlayEdgeRing* shell, std::vector<OverlayEdgeRing*>& edgeRings);
117 void placeFreeHoles(std::vector<OverlayEdgeRing*> shellList, std::vector<OverlayEdgeRing*> freeHoleList);
124 : geometryFactory(geomFact)
125 , isEnforcePolygonal(true)
127 buildRings(resultAreaEdges);
131 : geometryFactory(geomFact)
132 , isEnforcePolygonal(p_isEnforcePolygonal)
134 buildRings(resultAreaEdges);
141 std::vector<std::unique_ptr<geom::Polygon>> getPolygons();
142 std::vector<OverlayEdgeRing*> getShellRings();
std::vector< OverlayEdgeRing * > freeHoleList
std::vector< std::unique_ptr< OverlayEdgeRing > > vecOER
PolygonBuilder(std::vector< OverlayEdge * > &resultAreaEdges, const geom::GeometryFactory *geomFact, bool p_isEnforcePolygonal)
PolygonBuilder(std::vector< OverlayEdge * > &resultAreaEdges, const geom::GeometryFactory *geomFact)
std::vector< OverlayEdgeRing * > shellList
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Basic namespace for all GEOS functionalities.
const geom::GeometryFactory * geometryFactory