GEOS  3.14.0dev
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
geos::geomgraph::EdgeRing Class Referenceabstract

#include <EdgeRing.h>

Inheritance diagram for geos::geomgraph::EdgeRing:
geos::operation::overlay::MaximalEdgeRing geos::operation::overlay::MinimalEdgeRing

Public Member Functions

 EdgeRing (DirectedEdge *newStart, const geom::GeometryFactory *newGeometryFactory)
 
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 ()
 
virtual DirectedEdgegetNext (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
 

Protected Member Functions

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)
 

Protected Attributes

DirectedEdgestartDe
 
const geom::GeometryFactorygeometryFactory
 
std::vector< std::unique_ptr< EdgeRing > > holes
 a list of EdgeRings which are holes in this EdgeRing
 

Friends

std::ostream & operator<< (std::ostream &os, const EdgeRing &er)
 

Detailed Description

EdgeRing

Member Function Documentation

◆ computePoints()

void geos::geomgraph::EdgeRing::computePoints ( DirectedEdge newStart)
protected

◆ computeRing()

void geos::geomgraph::EdgeRing::computeRing ( )

Compute a LinearRing from the point list previously collected. Test if the ring is a hole (i.e. if it is CCW) and set the hole flag accordingly.

◆ containsPoint()

bool geos::geomgraph::EdgeRing::containsPoint ( const geom::Coordinate p)

This method will use the computed ring. It will also check any holes, if they have been assigned.

◆ getEdges()

std::vector<DirectedEdge*>& geos::geomgraph::EdgeRing::getEdges ( )

Returns the list of DirectedEdges that make up this EdgeRing

◆ getLinearRing()

geom::LinearRing* geos::geomgraph::EdgeRing::getLinearRing ( )

Return a pointer to the LinearRing owned by this object. Make a copy if you need it beyond this objects's lifetime.

◆ mergeLabel()

void geos::geomgraph::EdgeRing::mergeLabel ( const Label deLabel,
uint8_t  geomIndex 
)
protected

Merge the RHS label from a DirectedEdge into the label for this EdgeRing.

The DirectedEdge label may be null. This is acceptable - it results from a node which is NOT an intersection node between the Geometries (e.g. the end node of a LinearRing). In this case the DirectedEdge label does not contribute any information to the overall labelling, and is simply skipped.

◆ toPolygon()

std::unique_ptr<geom::Polygon> geos::geomgraph::EdgeRing::toPolygon ( const geom::GeometryFactory geometryFactory)

Return a Polygon copying coordinates from this EdgeRing and its holes.


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