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.
    Version:
    1.7
    • 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.

        Parameters:
        e - EdgeEnd
        Returns:
        direction comparison
      • 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