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.