## com.vividsolutions.jts.geomgraph
Class EdgeRing

    java.lang.Object
      com.vividsolutions.jts.geomgraph.EdgeRing

Direct Known Subclasses:
  MaximalEdgeRing, MinimalEdgeRing

public abstract class EdgeRing
extends java.lang.Object

Version:
  1.7

Field Summary
`protected CGAlgorithms` `cga`
`protected GeometryFactory` `geometryFactory`
`protected DirectedEdge` `startDe`

Constructor Summary
`EdgeRing(DirectedEdge start, GeometryFactory geometryFactory, CGAlgorithms cga)`

Method Summary
`void` `addHole(EdgeRing ring)`
`protected void` `addPoints(Edge edge, boolean isForward, boolean isFirstEdge)`
`protected void` `computePoints(DirectedEdge start)` Collect all the points from the DirectedEdges of this ring into a contiguous list
`void` `computeRing()` Compute a LinearRing from the point list previously collected.
`boolean` `containsPoint(Coordinate p)` This method will cause the ring to be computed.
`Coordinate` `getCoordinate(int i)`
`java.util.List` `getEdges()` Returns the list of DirectedEdges that make up this EdgeRing
`Label` `getLabel()`
`LinearRing` `getLinearRing()`
`int` `getMaxNodeDegree()`
`abstract DirectedEdge` `getNext(DirectedEdge de)`
`EdgeRing` `getShell()`
`boolean` `isHole()`
`boolean` `isIsolated()`
`boolean` `isShell()`
`protected void` `mergeLabel(Label deLabel)`
`protected void` `mergeLabel(Label deLabel, int geomIndex)` Merge the RHS label from a DirectedEdge into the label for this EdgeRing.
`abstract void` `setEdgeRing(DirectedEdge de, EdgeRing er)`
`void` `setInResult()`
`void` `setShell(EdgeRing shell)`
`Polygon` `toPolygon(GeometryFactory geometryFactory)`

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

Field Detail

### startDe

    protected DirectedEdge startDe

### geometryFactory

    protected GeometryFactory geometryFactory

### cga

    protected CGAlgorithms cga

Constructor Detail

### EdgeRing

    public EdgeRing(DirectedEdge start,
                    GeometryFactory geometryFactory,
                    CGAlgorithms cga)

Method Detail

### isIsolated

    public boolean isIsolated()

### isHole

    public boolean isHole()

### getCoordinate

    public Coordinate getCoordinate(int i)

### getLinearRing

    public LinearRing getLinearRing()

### getLabel

    public Label getLabel()

### isShell

    public boolean isShell()

### getShell

    public EdgeRing getShell()

### setShell

    public void setShell(EdgeRing shell)

### addHole

    public void addHole(EdgeRing ring)

### toPolygon

    public Polygon toPolygon(GeometryFactory geometryFactory)

### computeRing

    public void 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.

### getNext

    public abstract DirectedEdge getNext(DirectedEdge de)

### setEdgeRing

    public abstract void setEdgeRing(DirectedEdge de,
                                     EdgeRing er)

### getEdges

    public java.util.List getEdges()

  Returns the list of DirectedEdges that make up this EdgeRing

### computePoints

    protected void computePoints(DirectedEdge start)

  Collect all the points from the DirectedEdges of this ring into a contiguous list

### getMaxNodeDegree

    public int getMaxNodeDegree()

### setInResult

    public void setInResult()

### mergeLabel

    protected void mergeLabel(Label deLabel)

### mergeLabel

    protected void mergeLabel(Label deLabel,
                              int geomIndex)

  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.

### addPoints

    protected void addPoints(Edge edge,
                             boolean isForward,
                             boolean isFirstEdge)

### containsPoint

    public boolean containsPoint(Coordinate p)

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