Manual

Main Concepts Graph Layout

# Graph Layout

A graph is displayed in the base window after a term representation has loaded from file. In a hierarchical layout, nodes of the same hierarchy layer are assigned to one horizontal level so all edges point downwards. Edges passing more than one level ("long span edges") are filled up with dummy nodes at each passed level. Dummy nodes are not part of the term representation, they are introduced automatically. Usually, they are invisible, but highlighted with small bullets when the corresponding edge is selected or when they are touched by the mouse pointer.

After loading a graph, a simple layout is applied without processing the edge crossing reduction. This means that all child nodes of a graph are placed in the initial order found in the term representation. A layout algorithm is available to reduce the number of edge crossings, resulting in better layouts. For large graphs, this edge crossing reduction can be a lengthy operation, so it always has to be started by the user with menu Layout/Improve All. The edge crossing reduction calculates a new graph layout with (probably) fewer edge crossings by rearranging the order of nodes at each level. This graph layout algorithm has a random component, so two layout calculations of the same graph may yield different results. The advantage of this technique is that the average number of edge crossings is usually smaller.

Using menu Layout/Orientation it is possible to set the direction of a graph layout. The default orientation is top-down to get horizontal levels and edges pointing downwards. The other three layout orientations left-to-right, right-to-left and bottom-up can be optionally set with the menu.

After calculating the layout, the graph is drawn in the base window. The visualization of nodes and edges (e.g. font, color, shape, icon, line pattern, etc) is determined by their attributes in the term representation. A text string, taken from attribute OBJECT, is placed inside each node. The size of the nodes is automatically adapted to match the actual extension of the text. Multi-line text including newline characters is also supported. For the layout the minimal distance between nodes at the same level and the distance between levels (called gap width and height) can be set with menu Options/Layout Settings....

## Selection

If a node is selected by the user with the mouse, it will be drawn with a shadow. Many nodes can be selected at a time using the SHIFT-key or with a rubber band selection. Edges can be selected, too, but only one at a time (i.e. multiple selection for edges is currently not possible). Edge selection is a useful trick to trace the route and find the parent and child node of very long edges.

## Incremental Graph Layout

If the layout algorithm (edge crossing reduction) is started with menu Layout/Improve All, uDraw(Graph) optimizes the overall layout of the graph. Due to the basic principles of these algorithms, even minimal changes to a graph structure result in major changes in the layout. To overcome this problem, uDraw(Graph) has a unique incremental graph layout algorithm to introduce updates in a graph with a minimal number of modifications.

Graph updates sent to the uDraw(Graph) API are inserted into the existing graph layout incrementally instead of forcing a completely new layout. So the layout before the update is preserved as much as possible in order to support layout stability. Of course, after doing some incremental updates, the graph layout may be getting worse, so a new global graph layout might be necessary. The user can do this at any time with menu Layout/Improve All.

Next: Visualization Definition.