## com.vividsolutions.jts.geomgraph
Class DirectedEdge

    java.lang.Object
      com.vividsolutions.jts.geomgraph.EdgeEnd
          com.vividsolutions.jts.geomgraph.DirectedEdge

All Implemented Interfaces:
  java.lang.Comparable

public class DirectedEdge
extends EdgeEnd

Version:
  1.7

Field Summary
`protected boolean` `isForward`

Fields inherited from class com.vividsolutions.jts.geomgraph.EdgeEnd
`edge, label`

Constructor Summary
`DirectedEdge(Edge edge, boolean isForward)`

Method Summary
`static int` `depthFactor(int currLocation, int nextLocation)` Computes the factor for the change in depth when moving from one location to another.
`int` `getDepth(int position)`
`int` `getDepthDelta()`
`Edge` `getEdge()`
`EdgeRing` `getEdgeRing()`
`EdgeRing` `getMinEdgeRing()`
`DirectedEdge` `getNext()`
`DirectedEdge` `getNextMin()`
`DirectedEdge` `getSym()` Each Edge gives rise to a pair of symmetric DirectedEdges, in opposite directions.
`boolean` `isForward()`
`boolean` `isInResult()`
`boolean` `isInteriorAreaEdge()` This is an interior Area edge if its label is an Area label for both Geometries and for each Geometry both sides are in the interior.
`boolean` `isLineEdge()` This edge is a line edge if at least one of the labels is a line label any labels which are not line labels have all Locations = EXTERIOR
`boolean` `isVisited()`
`void` `print(java.io.PrintStream out)`
`void` `printEdge(java.io.PrintStream out)`
`void` `setDepth(int position, int depthVal)`
`void` `setEdgeDepths(int position, int depth)` Set both edge depths.
`void` `setEdgeRing(EdgeRing edgeRing)`
`void` `setInResult(boolean isInResult)`
`void` `setMinEdgeRing(EdgeRing minEdgeRing)`
`void` `setNext(DirectedEdge next)`
`void` `setNextMin(DirectedEdge nextMin)`
`void` `setSym(DirectedEdge de)`
`void` `setVisited(boolean isVisited)`
`void` `setVisitedEdge(boolean isVisited)` setVisitedEdge marks both DirectedEdges attached to a given Edge.

Methods inherited from class com.vividsolutions.jts.geomgraph.EdgeEnd
`compareDirection, compareTo, computeLabel, getCoordinate, getDirectedCoordinate, getDx, getDy, getLabel, getNode, getQuadrant, init, setNode`

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

Field Detail

### isForward

    protected boolean isForward

Constructor Detail

### DirectedEdge

    public DirectedEdge(Edge edge,
                        boolean isForward)

Method Detail

### depthFactor

    public static int depthFactor(int currLocation,
                                  int nextLocation)

  Computes the factor for the change in depth when moving from one location to another. E.g. if crossing from the INTERIOR to the EXTERIOR the depth decreases, so the factor is -1

### getEdge

    public Edge getEdge()

  Overrides:
    `getEdge` in class `EdgeEnd`

### setInResult

    public void setInResult(boolean isInResult)

### isInResult

    public boolean isInResult()

### isVisited

    public boolean isVisited()

### setVisited

    public void setVisited(boolean isVisited)

### setEdgeRing

    public void setEdgeRing(EdgeRing edgeRing)

### getEdgeRing

    public EdgeRing getEdgeRing()

### setMinEdgeRing

    public void setMinEdgeRing(EdgeRing minEdgeRing)

### getMinEdgeRing

    public EdgeRing getMinEdgeRing()

### getDepth

    public int getDepth(int position)

### setDepth

    public void setDepth(int position,
                         int depthVal)

### getDepthDelta

    public int getDepthDelta()

### setVisitedEdge

    public void setVisitedEdge(boolean isVisited)

  setVisitedEdge marks both DirectedEdges attached to a given Edge. This is used for edges corresponding to lines, which will only appear oriented in a single direction in the result.

### getSym

    public DirectedEdge getSym()

  Each Edge gives rise to a pair of symmetric DirectedEdges, in opposite directions.

  Returns:
    the DirectedEdge for the same Edge but in the opposite direction

### isForward

    public boolean isForward()

### setSym

    public void setSym(DirectedEdge de)

### getNext

    public DirectedEdge getNext()

### setNext

    public void setNext(DirectedEdge next)

### getNextMin

    public DirectedEdge getNextMin()

### setNextMin

    public void setNextMin(DirectedEdge nextMin)

### isLineEdge

    public boolean isLineEdge()

  This edge is a line edge if
  - at least one of the labels is a line label
  - any labels which are not line labels have all Locations = EXTERIOR

### isInteriorAreaEdge

    public boolean isInteriorAreaEdge()

  This is an interior Area edge if
  - its label is an Area label for both Geometries
  - and for each Geometry both sides are in the interior.

  Returns:
    true if this is an interior Area edge

### setEdgeDepths

    public void setEdgeDepths(int position,
                              int depth)

  Set both edge depths. One depth for a given side is provided. The other is computed depending on the Location transition and the depthDelta of the edge.

### print

    public void print(java.io.PrintStream out)

  Overrides:
    `print` in class `EdgeEnd`

### printEdge

    public void printEdge(java.io.PrintStream out)