# Orthogonal Channel 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 make 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 Settings

### Path Finding Algorithm

Determines which layout algorithm will route the edges initially, before they are distributed in their channel.

High Quality Edge Routing
Routes the defined edges using a shortest path algorithm, which will take a longer time, but will end up in better
routing results.
High Performance Edge Routing
Routes the defined edges using a pattern algorithm. This algorithm chooses the best pattern out of a set of patterns
to route the edges. This algorithm will be faster, than using the shortest path algorithm, but might end up in
more node overlaps, depending on the given graphs.

### 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 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.

### Enable Grid Routing

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.

## Costs

When using the high performance path finding strategy, one can define costs to influence which path patterns are
chosen.

### Bend Cost

Defines the costs every bend of an edge will cause.

### Edge Crossing Costs

Defines the costs an edge crossing will cause.

### Node Overlap Costs

Defines the costs an edge path will cause, that overlaps a node.