Layered Drawing


Enumerations

enum  abstractMixedGraph::TOptAlign {
  abstractMixedGraph::ALIGN_OPTIMIZE = 0,
  abstractMixedGraph::ALIGN_LEFT = 1,
  abstractMixedGraph::ALIGN_CENTER = 2,
  abstractMixedGraph::ALIGN_FDP = 3,
  abstractMixedGraph::ALIGN_RIGHT = 4
}
enum  abstractMixedGraph::TOptLayered {
  abstractMixedGraph::LAYERED_DEFAULT = -1,
  abstractMixedGraph::LAYERED_FEEDBACK = 1,
  abstractMixedGraph::LAYERED_EDGE_SPAN = 2,
  abstractMixedGraph::LAYERED_VERTICAL = 3,
  abstractMixedGraph::LAYERED_COLOURS = 4,
  abstractMixedGraph::LAYERED_FDP = 8,
  abstractMixedGraph::LAYERED_ALIGN = 16,
  abstractMixedGraph::LAYERED_SWEEP = 32,
  abstractMixedGraph::LAYERED_HORIZONTAL = 48
}

Functions

void abstractMixedGraph::Layout_PredecessorTree (TOptAlign mode=ALIGN_OPTIMIZE, TFloat dx=0.0, TFloat dy=0.0) throw (ERRejected)
void abstractMixedGraph::Layout_Layered (int method=LAYERED_DEFAULT, TFloat dx=0.0, TFloat dy=0.0) throw (ERRejected)

Enumeration Type Documentation

enum TOptAlign [inherited]
 

Alternative rules for the horizontal node placement in layered tree drawing.

Enumerator:
ALIGN_OPTIMIZE  Apply the horizontal node placement code for general layered drawing.
ALIGN_LEFT  Align nodes with the left-most child node.
ALIGN_CENTER  Center nodes atop of its child node.
ALIGN_FDP  As ALIGN_CENTER, but refine by force directed placement.
ALIGN_RIGHT  Align nodes with the right-most child node.

enum TOptLayered [inherited]
 

Options for the layered drawing method.

LAYERED_FEEDBACK, LAYERED_EDGE_SPAN, LAYERED_COLOURS denote vertical node placement rules. LAYERED_FDP, LAYERED_ALIGN and LAYERED_SWEEP are vertical rules.

Enumerator:
LAYERED_DEFAULT  The hard-coded default set of rules (LAYERED_VERTICAL | LAYERED_HORIZONTAL).
LAYERED_FEEDBACK  Determine an implicit edge orientation and save it to the edge colour register. If the graph is undirected, this calls ImplicitSTOrientation() with the default source and target node. Otherwise, FeedbackArcSet() is called
LAYERED_EDGE_SPAN  Call Layout_EdgeSpanMinimalLayering() to assign layers to all graph nodes
LAYERED_VERTICAL  The default set of rules for vertical node placement.
LAYERED_COLOURS  Fix all node with finite colour index to the equal layer and call Layout_EdgeSpanMinimalLayering() to assign layers to the remaining graph nodes
LAYERED_FDP  Call Layout_LayeredFDP() to improve the horizontal node placement This overrides LAYERED_ALIGN
LAYERED_ALIGN  Call Layout_SetHorizontalCoordinates() to adjust nodes horizontally.
LAYERED_SWEEP  Call Layout_SweepLayerByLayer() to reduce edge crossing.
LAYERED_HORIZONTAL  The default set of rules for horizontal node placement.


Function Documentation

void Layout_Layered int  method = LAYERED_DEFAULT,
TFloat  dx = 0.0,
TFloat  dy = 0.0
throw (ERRejected) [inherited]
 

Layered drawing of general graphs.

Parameters:
method A combination of TOptLayered options
dx The minimum horizontal node distance or 0
dy The minimum vertical node distance or 0
This draws the graph in a grid such that the nodes in the same horizontal grid line form independent sets, edges have one control point on every crossed grid line and run top-down due to some implicit orientation.

Four phases can be distinguished: In the first phase, the edges are oriented. In the second phase, the graph nodes are assigned to layers (horizontal grid lines). Then the edges are subdivided to obtain a proper layering. In the final phase, nodes are arranged in their layers with the aim of minimizing edge lengths and crossings.

Depending on the specified method, only some of these phases are performed. The default rule will produce a legal drawing in any case. After that, special rules can be used for post-optimization.

void Layout_PredecessorTree TOptAlign  mode = ALIGN_OPTIMIZE,
TFloat  dx = 0.0,
TFloat  dy = 0.0
throw (ERRejected) [inherited]
 

Draw a rooted tree of predecessor arcs.

Parameters:
mode A TOptAlign value specifying the horizontal aligment rule
dx The minimum horizontal node distance or 0
dy The minimum vertical node distance or 0
This draws the rooted tree which is provided by the predecessor labels. Non-tree arcs are also displayed, but not considered before the layout is fixed.

Parent nodes are displayed atop of its child nodes, child nodes are displayed on the same level, and the order of child nodes from left to right reproduces the order in the incidence list of the father node.