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
Determines the set of edges that the router should process.
Determines the optimization strategy used for routing the edges.
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.
Specifies which kind of monotonic path restrictions should be applied.
Specifies the minimal distance between any two edge segments.
Specifies the minimal distance between edge segments and node bounds.
Specifies the minimal distance the edge shall keep from node borders when entering or leaving the node.
Specifies the minimal length of the first segment of edges.
Specifies the minimal length of the last segment of edges.
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.
If enabled, all edge paths will be routed on grid lines. The spacing between grid lines is defined by the following setting.
Determines the spacing of the grid lines where all edge paths will be routed upon.
The Curve Connection Style specifies how edges routed using a curved style connect at the respective source and target node.
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.
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.
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.
Whether or not to enable a further optimization step that tries to improve the layout results.
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.
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.