Class DirectedEdge

  • All Implemented Interfaces:
    java.lang.Comparable

    public class DirectedEdge
    extends EdgeEnd
    Version:
    1.7
    • 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
      • 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()
      • 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)