GEOS
3.8.0
|
#include <EdgeRing.h>
Public Member Functions | |
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 |
Protected Member Functions | |
void | computePoints (DirectedEdge *newStart) |
throw(const TopologyException &) | |
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 | |
DirectedEdge * | startDe |
const geom::GeometryFactory * | geometryFactory |
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) |
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.
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.
std::vector<DirectedEdge*>& geos::geomgraph::EdgeRing::getEdges | ( | ) |
Returns the list of DirectedEdges that make up this EdgeRing
|
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.
std::unique_ptr<geom::Polygon> geos::geomgraph::EdgeRing::toPolygon | ( | const geom::GeometryFactory * | geometryFactory | ) |
Return a Polygon copying coordinates from this EdgeRing and its holes.