geos::operation::buffer::MaximalEdgeRing Class Reference

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

`#include <MaximalEdgeRing.h>`

Inheritance diagram for geos::operation::buffer::MaximalEdgeRing:

## 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.
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.
Public Member Functions inherited from geos::geomgraph::EdgeRing
| 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 ()
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, 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 inherited from geos::geomgraph::EdgeRing
DirectedEdge * | startDe
const geom::GeometryFactory * | geometryFactory
std::vector< std::unique_ptr< EdgeRing > > | holes
| a list of EdgeRings which are holes in this EdgeRing

## Detailed Description

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

A MaximalEdgeRing may represent two different spatial entities:

- a single polygon possibly containing inversions (if the ring is oriented CW)
- a single hole possibly containing exversions (if the ring is oriented CCW)

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

## Member Function Documentation

## buildMinimalRings()

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

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

Deprecated
  pass the vector yourself instead

Referenced by buildMinimalRings().

## getNext()

geomgraph::DirectedEdge * geos::operation::buffer::MaximalEdgeRing::getNext | ( | geomgraph::DirectedEdge * | de | ) |

override virtual

Implements geos::geomgraph::EdgeRing.

## setEdgeRing()

void geos::operation::buffer::MaximalEdgeRing::setEdgeRing | ( | geomgraph::DirectedEdge * | de,
|  | geomgraph::EdgeRing * | er )

override virtual

Implements geos::geomgraph::EdgeRing.

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

- buffer/MaximalEdgeRing.h