19 #ifndef GEOS_OP_OVERLAY_MAXIMALEDGERING_H
20 #define GEOS_OP_OVERLAY_MAXIMALEDGERING_H
22 #include <geos/export.h>
26 #include <geos/geomgraph/EdgeRing.h>
31 class GeometryFactory;
39 class MinimalEdgeRing;
66 class GEOS_DLL MaximalEdgeRing:
public geomgraph::EdgeRing {
70 MaximalEdgeRing(geomgraph::DirectedEdge* start,
71 const geom::GeometryFactory* geometryFactory);
74 ~MaximalEdgeRing()
override =
default;
76 geomgraph::DirectedEdge* getNext(geomgraph::DirectedEdge* de)
override;
78 void setEdgeRing(geomgraph::DirectedEdge* de, geomgraph::EdgeRing* er)
override;
86 std::vector<MinimalEdgeRing*>* buildMinimalRings();
92 void buildMinimalRings(std::vector<MinimalEdgeRing*>& minEdgeRings);
93 void buildMinimalRings(std::vector<EdgeRing*>& minEdgeRings);
99 void linkDirectedEdgesForMinimalEdgeRings();
107 #endif // ndef GEOS_OP_OVERLAY_MAXIMALEDGERING_H