Orthogonal Edge Router

This 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 though any nodes and not overlap any other edges.

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

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

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, then a custom value for 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 set 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 set, then all edge paths will be routed on grid lines from a predefined grid. If not set, then "free" routing will be applied to the edge paths.

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 closes 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 an 0.