Orthogonal Edge Router

This is a versatile and powerful layout algorithm that can route the edges of a diagram
using only vertical and horizontal line segments, while keeping the positions of the
nodes in the diagram fixed. The routed edges will usually not cross through any nodes and
not overlap any other edges.

The abilities of this router makes it a perfect layouter for interactive or
incremental scenarios where

– some edges should be re-drawn orthogonally, after the user moves some nodes, or
– subsequently added edges should be drawn to fit an existing diagram

Layout Options

Scope

Determines the set of edges that the router should process.

All Edges
Routes all edges in the graph
Selected Edges
Routes only the selected edges in the graph
Edges at Selected Nodes
Routes only the edges connected to selected nodes

Monotonic Path Restrictions

Specifies which kind of monotonic path restrictions should be applied.

None
Specifies that there are no restrictions.
Monotonic Horizontal
Specifies restrictions for the horizontal direction, i.e.,
each horizontal edge segment is directed from the source to the target.
Furthermore, each edge path starts and ends with a horizontal segment.
Monotonic Vertical
Specifies restrictions for the vertical direction, i.e.,
each vertical edge segment is directed from the source to the target.
Furthermore, each edge path starts and ends with a vertical segment.
Monotonic Both
Specifies restrictions for the horizontal and vertical direction, i.e.,
each horizontal as well as each vertical edge segment is directed from the source to the target.

Enforce Monotonic Path Restrictions

Specifies whether or not monotonic path restrictions should be enforced.
Enabling this option guarantees monotonic edge paths even if this results in additional overlaps between edges and nodes.

Minimum Edge Distance

Determines the distance between any two edge segments. The edge router
adheres to the set value as possible, but reduces the distance value
selectively, i.e. only for a currently processed edge, when there
is too little space to find a path with the proper value.

Use Custom Minimum Distance to Nodes

If set, a custom value for the minimum distance between any edge segment
and any node side will be used.
Otherwise, this distance will automatically be derived from the minimum
distance between any two edge segments.
Since this option can increase computation time, it is disabled by
default.

Custom Minimum Distance to Nodes

Determines the distance between any edge segment and any node side. The
edge router strictly adheres to the specified value.
Note, that this value normally is being automatically derived unless you
specifically set “Use Custom Minimum Distance Edge to Node.”

Route on Grid

If enabled, all edge paths will be routed on grid lines. The origin of
the grid is (0, 0) and the spacing between grid lines is defined by the
following setting.

Grid Spacing

Determines the spacing of the grid lines where all edge paths will be
routed upon.
Grid spacing plays the same role for routing on grid lines as minimum
distance between any two edge segments does for “free” routing.
The edge router adheres to the set value as possible, but reduces the
spacing value selectively, i.e. only for a currently processed edge, when
there is too little space to find a path with the proper value.

Space Driven Vs. Center Driven Search

Determines the ratio between two complementary weighting strategies when
looking for an edge path, namely “center driven” and “space driven”
weighting.
The ratio is expressed with a value between 0.0 and 1.0.
Values closer to 0.0 lead to edge paths that are more distributed over the
available space.
Values closer to 1.0 give more emphasis to edge paths closer to an edge’s center.

Crossing Minimization

The following options can be used to reduce the number of edge crossings
generated by this edge router.

Local Crossing Minimization

If set, the number of crossings between edges that connect at the same side of a node
will be significantly reduced.
Since this option has a positive effect on diagram “readability,” it is
enabled by default.

Crossing Cost

Sets the cost for each edge crossing of a routed path.
A cost of n means that a path rather changes
direction n times than crossing the path of an edge.
Setting a higher value will activate global crossing minimization.
A good trade-off between the number of direction changes and few crossings of a path
is achieved by values between 1 and 3.

Reroute Crossing Edges

Whether or not to enable a further crossing minimization
optimization based on rerouting edges that cross many edges.
Activating this feature only makes sense if the global
crossing cost is set to a value greater than 0.