## com.vividsolutions.jts.operation.overlay
Class MaximalEdgeRing

    java.lang.Object
      com.vividsolutions.jts.geomgraph.EdgeRing
          com.vividsolutions.jts.operation.overlay.MaximalEdgeRing

public class MaximalEdgeRing
extends EdgeRing

A ring of `DirectedEdge`s 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, `MinimalEdgeRing`s are required. A MaximalEdgeRing can be converted to a list of MinimalEdgeRings using the `buildMinimalRings()` method.

Version:
  1.7
See Also:
  `MinimalEdgeRing`

Field Summary

Fields inherited from class com.vividsolutions.jts.geomgraph.EdgeRing
`geometryFactory, startDe`

Constructor Summary
`MaximalEdgeRing(DirectedEdge start, GeometryFactory geometryFactory)`

Method Summary
`java.util.List` `buildMinimalRings()`
`DirectedEdge` `getNext(DirectedEdge de)`
`void` `linkDirectedEdgesForMinimalEdgeRings()` For all nodes in this EdgeRing, link the DirectedEdges at the node to form minimalEdgeRings
`void` `setEdgeRing(DirectedEdge de, EdgeRing er)`

Methods inherited from class com.vividsolutions.jts.geomgraph.EdgeRing
`addHole, addPoints, computePoints, computeRing, containsPoint, getCoordinate, getEdges, getLabel, getLinearRing, getMaxNodeDegree, getShell, isHole, isIsolated, isShell, mergeLabel, mergeLabel, setInResult, setShell, toPolygon`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MaximalEdgeRing

    public MaximalEdgeRing(DirectedEdge start,
                           GeometryFactory geometryFactory)

Method Detail

### getNext

    public DirectedEdge getNext(DirectedEdge de)

  Specified by:
    `getNext` in class `EdgeRing`

### setEdgeRing

    public void setEdgeRing(DirectedEdge de,
                            EdgeRing er)

  Specified by:
    `setEdgeRing` in class `EdgeRing`

### linkDirectedEdgesForMinimalEdgeRings

    public void linkDirectedEdgesForMinimalEdgeRings()

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

### buildMinimalRings

    public java.util.List buildMinimalRings()