public class DirectedEdge extends GraphComponent implements Comparable
PlanarGraph
. A DirectedEdge may or
may not have a reference to a parent Edge
(some applications of
planar graphs may not require explicit Edge objects to be created). Usually
a client using a PlanarGraph
will subclass DirectedEdge
to add its own application-specific data and methods.Constructor and Description |
---|
DirectedEdge(Node from,
Node to,
Coordinate directionPt,
boolean edgeDirection)
Constructs a DirectedEdge connecting the
from node to the
to node. |
Modifier and Type | Method and Description |
---|---|
int |
compareDirection(DirectedEdge e)
Returns 1 if this DirectedEdge has a greater angle with the
positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.
|
int |
compareTo(Object obj)
Returns 1 if this DirectedEdge has a greater angle with the
positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.
|
double |
getAngle()
Returns the angle that the start of this DirectedEdge makes with the
positive x-axis, in radians.
|
Coordinate |
getCoordinate()
Returns the coordinate of the from-node.
|
Coordinate |
getDirectionPt()
Returns a point to which an imaginary line is drawn from the from-node to
specify this DirectedEdge's orientation.
|
Edge |
getEdge()
Returns this DirectedEdge's parent Edge, or null if it has none.
|
boolean |
getEdgeDirection()
Returns whether the direction of the parent Edge (if any) is the same as that
of this Directed Edge.
|
Node |
getFromNode()
Returns the node from which this DirectedEdge leaves.
|
int |
getQuadrant()
Returns 0, 1, 2, or 3, indicating the quadrant in which this DirectedEdge's
orientation lies.
|
DirectedEdge |
getSym()
Returns the symmetric DirectedEdge -- the other DirectedEdge associated with
this DirectedEdge's parent Edge.
|
Node |
getToNode()
Returns the node to which this DirectedEdge goes.
|
boolean |
isRemoved()
Tests whether this directed edge has been removed from its containing graph
|
void |
print(PrintStream out)
Prints a detailed string representation of this DirectedEdge to the given PrintStream.
|
void |
setEdge(Edge parentEdge)
Associates this DirectedEdge with an Edge (possibly null, indicating no associated
Edge).
|
void |
setSym(DirectedEdge sym)
Sets this DirectedEdge's symmetric DirectedEdge, which runs in the opposite
direction.
|
static List |
toEdges(Collection dirEdges)
Returns a List containing the parent Edge (possibly null) for each of the given
DirectedEdges.
|
getComponentWithVisitedState, getContext, getData, isMarked, isVisited, setContext, setData, setMarked, setMarked, setVisited, setVisited
public DirectedEdge(Node from, Node to, Coordinate directionPt, boolean edgeDirection)
from
node to the
to
node.directionPt
- specifies this DirectedEdge's direction vector
(determined by the vector from the from
node
to directionPt
)edgeDirection
- whether this DirectedEdge's direction is the same as or
opposite to that of the parent Edge (if any)public static List toEdges(Collection dirEdges)
public Edge getEdge()
public void setEdge(Edge parentEdge)
public int getQuadrant()
public Coordinate getDirectionPt()
public boolean getEdgeDirection()
public Node getFromNode()
public Node getToNode()
public Coordinate getCoordinate()
public double getAngle()
public DirectedEdge getSym()
public void setSym(DirectedEdge sym)
public boolean isRemoved()
isRemoved
in class GraphComponent
true
if this directed edge is removedpublic int compareTo(Object obj)
Using the obvious algorithm of simply computing the angle is not robust, since the angle calculation is susceptible to roundoff. A robust algorithm is:
Orientation.index(Coordinate, Coordinate, Coordinate)
function can be used to decide the relative orientation of the vectors.
compareTo
in interface Comparable
public int compareDirection(DirectedEdge e)
Using the obvious algorithm of simply computing the angle is not robust, since the angle calculation is susceptible to roundoff. A robust algorithm is:
Orientation.index(Coordinate, Coordinate, Coordinate)
function can be used to decide the relative orientation of the vectors.
public void print(PrintStream out)
Copyright © 2022. All rights reserved.