GEOS  3.9.1dev
Public Member Functions | List of all members
geos::operation::overlay::MaximalEdgeRing Class Reference

A ring of DirectedEdges which may contain nodes of degree > 2. More...

#include <MaximalEdgeRing.h>

Inheritance diagram for geos::operation::overlay::MaximalEdgeRing:
[legend]
Collaboration diagram for geos::operation::overlay::MaximalEdgeRing:
[legend]

Public Member Functions

 MaximalEdgeRing (geomgraph::DirectedEdge *start, const geom::GeometryFactory *geometryFactory)
 
 ~MaximalEdgeRing () override=default
 
geomgraph::DirectedEdgegetNext (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. More...
 
void buildMinimalRings (std::vector< EdgeRing * > &minEdgeRings)
 
void linkDirectedEdgesForMinimalEdgeRings ()
 For all nodes in this EdgeRing, link the DirectedEdges at the node to form minimalEdgeRings. More...
 
- Public Member Functions inherited from geos::geomgraph::EdgeRing
 EdgeRing (DirectedEdge *newStart, const geom::GeometryFactory *newGeometryFactory)
 
virtual ~EdgeRing ()=default
 
bool isIsolated ()
 
bool isHole ()
 
geom::LinearRinggetLinearRing ()
 
LabelgetLabel ()
 
bool isShell ()
 
EdgeRinggetShell ()
 
void setShell (EdgeRing *newShell)
 
void addHole (EdgeRing *edgeRing)
 
std::unique_ptr< geom::PolygontoPolygon (const geom::GeometryFactory *geometryFactory)
 
void computeRing ()
 
std::vector< DirectedEdge * > & getEdges ()
 
int getMaxNodeDegree ()
 
void setInResult ()
 
bool containsPoint (const geom::Coordinate &p)
 
void testInvariant () const
 

Additional Inherited Members

- Protected Member Functions inherited from geos::geomgraph::EdgeRing
void computePoints (DirectedEdge *newStart)
 
void mergeLabel (const Label &deLabel)
 
void mergeLabel (const Label &deLabel, int geomIndex)
 Merge the RHS label from a DirectedEdge into the label for this EdgeRing. More...
 
void addPoints (Edge *edge, bool isForward, bool isFirstEdge)
 
- Protected Attributes inherited from geos::geomgraph::EdgeRing
DirectedEdgestartDe
 
const geom::GeometryFactorygeometryFactory
 
std::vector< std::unique_ptr< EdgeRing > > holes
 a list of EdgeRings which are holes in this EdgeRing More...
 

Detailed Description

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.

See also
com.vividsolutions.jts.operation.overlay.MinimalEdgeRing

Definition at line 66 of file MaximalEdgeRing.h.

Constructor & Destructor Documentation

geos::operation::overlay::MaximalEdgeRing::MaximalEdgeRing ( geomgraph::DirectedEdge start,
const geom::GeometryFactory geometryFactory 
)
geos::operation::overlay::MaximalEdgeRing::~MaximalEdgeRing ( )
overridedefault

Member Function Documentation

std::vector<MinimalEdgeRing*>* geos::operation::overlay::MaximalEdgeRing::buildMinimalRings ( )

This function returns a newly allocated vector of pointers to newly allocated MinimalEdgeRing objects.

Deprecated:
pass the vector yourself instead
void geos::operation::overlay::MaximalEdgeRing::buildMinimalRings ( std::vector< MinimalEdgeRing * > &  minEdgeRings)

This function pushes pointers to newly allocated MinimalEdgeRing objects to the provided vector.

void geos::operation::overlay::MaximalEdgeRing::buildMinimalRings ( std::vector< EdgeRing * > &  minEdgeRings)
geomgraph::DirectedEdge* geos::operation::overlay::MaximalEdgeRing::getNext ( geomgraph::DirectedEdge de)
overridevirtual
void geos::operation::overlay::MaximalEdgeRing::linkDirectedEdgesForMinimalEdgeRings ( )

For all nodes in this EdgeRing, link the DirectedEdges at the node to form minimalEdgeRings.

void geos::operation::overlay::MaximalEdgeRing::setEdgeRing ( geomgraph::DirectedEdge de,
geomgraph::EdgeRing er 
)
overridevirtual

The documentation for this class was generated from the following file: