Arc routing


Functions

TNode abstractMixedGraph::NodeAnchorPoint (TNode v) const throw (ERRange)
TNode abstractMixedGraph::ArcLabelAnchor (TArc a) const throw (ERRange)
bool abstractMixedGraph::NoArcLabelAnchors () const throw ()
TNode abstractMixedGraph::PortNode (TArc a) const throw (ERRange)
TNode abstractMixedGraph::ThreadSuccessor (TNode v) const throw (ERRange)
bool abstractMixedGraph::NoThreadSuccessors () const throw ()
TNode sparseRepresentation::InsertThreadSuccessor (TNode x) throw (ERRejected,ERRange)
TNode sparseRepresentation::ArcLabelAnchor (TArc a) const throw (ERRange)
bool sparseRepresentation::NoArcLabelAnchors () const throw ()
TNode sparseRepresentation::ThreadSuccessor (TNode x) const throw (ERRange)
bool sparseRepresentation::NoThreadSuccessors () const throw ()
TNode sparseRepresentation::InsertArcControlPoint (TArc a, TNode x) throw (ERRange,ERRejected)
TNode sparseRepresentation::GetArcControlPoints (TArc a, TNode *layoutNode, TNode length, TPortMode portMode) const throw (ERRange)
TNode sparseRepresentation::ProvideArcLabelAnchor (TArc a) throw (ERRejected,ERRange)
TNode sparseRepresentation::ProvidePortNode (TArc a) throw (ERRejected,ERRange)
void sparseRepresentation::ProvideEdgeControlPoints (TArc a, TNode *layoutNode, TNode length, TPortMode portMode) throw (ERRange)
void sparseRepresentation::Layout_ArcRouting (TFloat spacing=0, bool drawLoops=true) throw ()
void sparseRepresentation::Layout_SubdivideArcs (TFloat spacing=0.0) throw ()
void sparseRepresentation::Layout_AdoptArcRouting (abstractMixedGraph &G) throw ()
void sparseRepresentation::Layout_OrthoCleanupArcLabels () throw ()

Function Documentation

TNode ArcLabelAnchor TArc  a  )  const throw (ERRange) [inherited]
 

Retrieve the arc label alignment point of a given arc.

Parameters:
a An arc index ranged [0,1,..,2*mAct-1]
Returns:
The index of the label anchor point of a or NoNode

TNode ArcLabelAnchor TArc  a  )  const throw (ERRange) [inherited]
 

Retrieve the label display anchor point of a giiven arc.

Parameters:
a An arc index ranged [0,1,..,2m-1]
Return values:
true The anchor point index ranged [n,n+1,..,n+ni-1]

TNode GetArcControlPoints TArc  a,
TNode layoutNode,
TNode  length,
TPortMode  portMode
const throw (ERRange) [inherited]
 

Get the sequence of control points of a given arc.

Parameters:
a An arc index ranged [0,1,..,2m-1]
layoutNode An array to be filled with the control point indices
length The dimension of layoutNode[]
portMode If PORTS_IMPLICIT, the incident graph nodes are also listed
Returns:
The number of control points incident with a
This respects the arc orientations. That is, for an odd index a, the list starts with the final control point instead of the first one.

TNode InsertArcControlPoint TArc  a,
TNode  x
throw (ERRange,ERRejected) [inherited]
 

Insert a layout point into a sequence of control points.

Parameters:
a An arc index ranged [0,1,..,2*mAct-1]
x Index of the predecessor control point
Returns:
The index of generated control point
This adds a control point for the arc a, right after the node x or right before x (if a is a backward arc). It is verified that x actually is one of the end nodes or a control point on a. If not already present, an arc label anchor point is also added.

TNode InsertThreadSuccessor TNode  x  )  throw (ERRejected,ERRange) [inherited]
 

Insert a layout point after a specified control point.

Parameters:
x The index of the predecessor layout point
Returns:
The index of generated layout point
This allocates a layout point and inserts it into a sequence of control points right after x.

void Layout_AdoptArcRouting abstractMixedGraph G  )  throw () [inherited]
 

Adopt the arc routing of a supergraph.

Parameters:
G A supergraph which has been drawn in advance
In the supergraph, the original arcs must be numbered 0,1,..,m-1. Practically, the node routing must be also synchronized somehow

void Layout_ArcRouting TFloat  spacing = 0,
bool  drawLoops = true
throw () [inherited]
 

Proper drawing of parallel arcs and loops.

Parameters:
spacing If positive, the achieved distance between two parallel arcs. Otherwise, the bendSpacing layout parameter applies
drawLoops If true, loops are also routed visibly
This method releases the existing control points and then inserts new ones so that parallel arcs become distinguishable and, occasionally, loops become visible

void Layout_OrthoCleanupArcLabels  )  throw () [inherited]
 

Align arc labels with the current arc routing.

Remove unused arc label positions and move the maintained ones to the position of the first control point of the respective edge

void Layout_SubdivideArcs TFloat  spacing = 0.0  )  throw () [inherited]
 

Place control points on long arcs so that layered drawing methods can apply.

Parameters:
spacing If positive, the achieved vertical distance between two (bend) nodes. Otherwise, the bendSpacing parameter applies

bool NoArcLabelAnchors  )  const throw () [inherited]
 

Check if any arc label display anchor points exist.

Return values:
true No arc label anchor points are allocated

bool NoArcLabelAnchors  )  const throw () [inherited]
 

Check if any arc label display anchor points exist.

Return values:
true No arc label anchor points are allocated

TNode NodeAnchorPoint TNode  v  )  const throw (ERRange) [inherited]
 

Retrieve the display anchor point of a giiven node.

Parameters:
v A node index ranged [0,1,..,n-1]
Return values:
true The anchor point index ranged [0,1,..,n+ni-1]
This returns a layout point with absolute coordinates. With this point, the node label and all incident arcs are aligned. For the time being, it is NodeAnchorPoint(v)==v.

bool NoThreadSuccessors  )  const throw () [inherited]
 

Check if any thread successors exist.

Return values:
true If no thread successor nodes are allocated

bool NoThreadSuccessors  )  const throw () [inherited]
 

Check if any follow-up points exist.

Return values:
true No thread points are allocated

TNode PortNode TArc  a  )  const throw (ERRange) [inherited]
 

Retrieve the port node or the first control point of a given arc.

Parameters:
a An arc index ranged [0,1,..,2m-1]
Returns:
A control point index ranged [n,n+1,..,n+ni-1]
This respects the arc orientations. That is, for an odd index a, the final control point is returned instead of the first one.

TNode ProvideArcLabelAnchor TArc  a  )  throw (ERRejected,ERRange) [inherited]
 

Provide a label anchor point for a specified arc.

Parameters:
a An arc index ranged [0,1,..,2*mAct-1]
Returns:
The index of the arc label alignment point

void ProvideEdgeControlPoints TArc  a,
TNode layoutNode,
TNode  length,
TPortMode  portMode
throw (ERRange) [inherited]
 

Provide a specified number of control points for a specified edge.

Parameters:
a An edge index ranged [0,1,..,mAct-1]
layoutNode An array to be filled with the control points
length The desired number of control points
portMode If PORTS_IMPLICIT, the incident graph nodes are also counted

TNode ProvidePortNode TArc  a  )  throw (ERRejected,ERRange) [inherited]
 

Provide a port node for a specified arc.

Parameters:
a An arc index ranged [0,1,..,2*mAct-1]
Returns:
The index of the port node
The returned port node index depends on the arc direction:
  • For forward arcs, the first edge control point index is returned
  • For backward arcs, the final edge control point index is returned

TNode ThreadSuccessor TNode  x  )  const throw (ERRange) [inherited]
 

Retrieve the thread successor point of a given layout point.

Parameters:
x A node index ranged [0,1,..,lAct-1]
Returns:
The index of the successor point of x or NoNode

TNode ThreadSuccessor TNode  v  )  const throw (ERRange) [inherited]
 

Retrieve the follow-up point of a given layout point.

Parameters:
v A node index ranged [0,1,..,n+ni-1]
Return values:
true The follow-up node index ranged [n,n+1,..,n+ni-1]