geos::geomgraph::EdgeRing Class Referenceabstract

`#include <EdgeRing.h>`

Inheritance diagram for geos::geomgraph::EdgeRing:

## 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)
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.
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)

## Detailed Description

EdgeRing

## Member Function Documentation

## computePoints()

void geos::geomgraph::EdgeRing::computePoints | ( | DirectedEdge * | newStart | ) |

protected

Exceptions

  util::TopologyException |

## 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.

References holes.

## 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:

- geomgraph/EdgeRing.h