Class EdgeEnd

  • All Implemented Interfaces:
    java.lang.Comparable
    Direct Known Subclasses:
    DirectedEdge, EdgeEndBundle


    public class EdgeEnd
    extends java.lang.Object
    implements java.lang.Comparable
    Models the end of an edge incident on a node. EdgeEnds have a direction determined by the direction of the ray from the initial point to the next point. EdgeEnds are comparable under the ordering "a has a greater angle with the x-axis than b". This ordering is used to sort EdgeEnds around a node.
    • Field Detail

      • edge

        protected Edge edge
      • label

        protected Label label
    • Method Detail

      • getEdge

        public Edge getEdge​()
      • getLabel

        public Label getLabel​()
      • getCoordinate

        public Coordinate getCoordinate​()
      • getDirectedCoordinate

        public Coordinate getDirectedCoordinate​()
      • getQuadrant

        public int getQuadrant​()
      • getDx

        public double getDx​()
      • getDy

        public double getDy​()
      • setNode

        public void setNode​(Node node)
      • getNode

        public Node getNode​()
      • compareTo

        public int compareTo​(java.lang.Object obj)
        Specified by:
        compareTo in interface java.lang.Comparable
      • compareDirection

        public int compareDirection​(EdgeEnd e)
        Implements the total order relation:

        a has a greater angle with the positive x-axis than b

        Using the obvious algorithm of simply computing the angle is not robust, since the angle calculation is obviously susceptible to roundoff. A robust algorithm is: - first compare the quadrant. If the quadrants are different, it it trivial to determine which vector is "greater". - if the vectors lie in the same quadrant, the computeOrientation function can be used to decide the relative orientation of the vectors.

      • computeLabel

        public void computeLabel​(BoundaryNodeRule boundaryNodeRule)
      • print

        public void print​(java.io.PrintStream out)
      • toString

        public java.lang.String toString​()
        Overrides:
        toString in class java.lang.Object