GEOS 3.11.1
|
A ring of DirectedEdges which may contain nodes of degree > 2. More...
#include <MaximalEdgeRing.h>
Public Member Functions | |
MaximalEdgeRing (geomgraph::DirectedEdge *start, const geom::GeometryFactory *geometryFactory) | |
geomgraph::DirectedEdge * | getNext (geomgraph::DirectedEdge *de) override |
void | setEdgeRing (geomgraph::DirectedEdge *de, geomgraph::EdgeRing *er) override |
std::vector< MinimalEdgeRing * > * | buildMinimalRings () |
This function returns a newly allocated vector of pointers to newly allocated MinimalEdgeRing objects. More... | |
void | buildMinimalRings (std::vector< MinimalEdgeRing * > &minEdgeRings) |
This function pushes pointers to newly allocated MinimalEdgeRing objects to the provided vector. | |
void | buildMinimalRings (std::vector< EdgeRing * > &minEdgeRings) |
void | linkDirectedEdgesForMinimalEdgeRings () |
For all nodes in this EdgeRing, link the DirectedEdges at the node to form minimalEdgeRings. | |
![]() | |
EdgeRing (DirectedEdge *newStart, const geom::GeometryFactory *newGeometryFactory) | |
bool | isIsolated () |
bool | isHole () |
geom::LinearRing * | getLinearRing () |
Label & | getLabel () |
bool | isShell () |
EdgeRing * | getShell () |
void | setShell (EdgeRing *newShell) |
void | addHole (EdgeRing *edgeRing) |
std::unique_ptr< geom::Polygon > | toPolygon (const geom::GeometryFactory *geometryFactory) |
void | computeRing () |
virtual DirectedEdge * | getNext (DirectedEdge *de)=0 |
virtual void | setEdgeRing (DirectedEdge *de, EdgeRing *er)=0 |
std::vector< DirectedEdge * > & | getEdges () |
int | getMaxNodeDegree () |
void | setInResult () |
bool | containsPoint (const geom::Coordinate &p) |
void | testInvariant () const |
Additional Inherited Members | |
![]() | |
void | computePoints (DirectedEdge *newStart) |
void | mergeLabel (const Label &deLabel) |
void | mergeLabel (const Label &deLabel, uint8_t geomIndex) |
Merge the RHS label from a DirectedEdge into the label for this EdgeRing. More... | |
void | addPoints (Edge *edge, bool isForward, bool isFirstEdge) |
![]() | |
DirectedEdge * | startDe |
const geom::GeometryFactory * | geometryFactory |
std::vector< std::unique_ptr< EdgeRing > > | holes |
a list of EdgeRings which are holes in this EdgeRing | |
A ring of DirectedEdges which may contain nodes of degree > 2.
A MaximalEdgeRing may represent two different spatial entities:
If the MaximalEdgeRing represents a polygon, the interior of the polygon is strongly connected.
These are the form of rings used to define polygons under some spatial data models. However, under the OGC SFS model, MinimalEdgeRings are required. A MaximalEdgeRing can be converted to a list of MinimalEdgeRings using the buildMinimalRings()
method.
std::vector< MinimalEdgeRing * > * geos::operation::overlay::MaximalEdgeRing::buildMinimalRings | ( | ) |
This function returns a newly allocated vector of pointers to newly allocated MinimalEdgeRing objects.
|
overridevirtual |
Implements geos::geomgraph::EdgeRing.
|
overridevirtual |
Implements geos::geomgraph::EdgeRing.