This is a powerful layout algorithm that can route the edges of a diagram using polyline edge segments while keeping the positions of the nodes in the diagram fixed. It is able to either produce orthogonal edge routes (each edge has only vertical and horizontal line segments) or octilinear edge routes (the slope of each edge segment is a multiple of 45 degree). The routed edges will usually not cross through any nodes.
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
Optimization Strategy
Determines the optimization strategy used for routing the edges.
- Balanced
- The layout algorithm tries to produce balanced results.
- Minimize Bends
- The main objective of the layout algorithm is to minimize the number of edge bends.
- Minimize Crossings
- The main objective of the layout algorithm is to minimize the number of edge crossings.
Routing Style
- Orthogonal
- Edge paths will be routed in an orthogonal style, i.e. only vertical and horizontal line segments will be used.
- Octilinear
- Edge paths will be routed in an octilinear style, i.e. the routes consist of line segments whose slope is a multiple of 45 degrees.
- Curved
- Edge paths will be routed in a curved style using cubic bezier splines.
Bus Membership
Determines how the bus membership of each edge is defined. All edges that belong to the same bus are routed in a bus-like style. A bus is a segment shared by multiple edges to which shorter segments that connect to the actual nodes are attached. Observe that when using such a bus representation with multiple edges drawn on top of each other, information like the individual edge direction might be occluded.
- None
- There are no buses.
- Single Bus
- All edges belong to one single bus.
- Defined by Color
- Edges of the same color belong to the same bus.
- Defined by Label
- Edges with the same label text belong to the same bus.
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.
- Monotonic Vertical
- Specifies restrictions for the vertical direction, i.e., each vertical edge segment is directed from the source to the target.
- 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.
Edge to Edge Distance
Specifies the minimal distance between any two edge segments.
Edge to Node Distance
Specifies the minimal distance between edge segments and node bounds.
Edge to Source/Target Node Border Distance
Specifies the minimal distance the edge shall keep from node borders when entering or leaving the node.
First Segment Length
Specifies the minimal length of the first segment of edges.
Last Segment Length
Specifies the minimal length of the last segment of edges.
Preferred Octilinear Segment Length
Specifies the preferred maximal length of non-orthogonal edge segments. Using smaller values allows to produce results that look like orthogonal layouts with rounded bends.
Enable Grid
If enabled, all edge paths will be routed on grid lines. 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.
Curve Connection Style
The Curve Connection Style specifies how edges routed using a curved style connect
at the respective source and target node.
- Default
- Keeps the port and the first/last segment that the layout algorithm would produce without curve routing
- Organic
- Changes the part of a curved edge path such that the curves have a more organic-like and straight start or end
Curve U-Turn Symmetry
Specifies how symmetric u-turn parts of curved routes should preferably be. If this property is greater than zero, the algorithm tries to achieve a more symmetric path for 180-degree turns (u-turns) by specifically handling them. The value of this property must be between zero and one, where a higher value indicates more emphasis on symmetry and lower values that symmetry is not important.
Consider Node Labels
Specifies whether or not node labels should be considered during edge routing. If enabled, the algorithm tries to prevent edge routes that intersect node labels.
Place Edge Labels
Specifies whether or not labels of edges that are routed should be placed during edge routing. For labels of edges that are not routed (see Scope) the algorithm tries to prevent intersections with other edges.
Enable Rerouting
Whether or not to enable a further optimization step that tries to improve the layout results.
Route through existing Bends
Whether or not to force the algorithm to route through all the existing bend points of the edges. All bends will lie on the new route in their current order. The route can, but must not necessarily bend at the existing bend points.
Maximal Duration (sec)
Sets a preferred time limit (in seconds) for the layout algorithm. Note that restricting the maximal duration may result in a worse layout quality. Furthermore, the actual runtime may exceed the maximal duration since the layout algorithm still has to find a valid solution.