		      Layout
		      ======

The layout menu contains the worlds biggest set of
implementations layout algorithms.

Most layout algorithms have a parameter window. To
pop up the  parameter window, press  the CTRL  key
while selecting the menu.


tree layout
-----------

'tree layout' is a enhanced version based
on a paper by Walker;  this one can draw arbitrary
graphs.  It does also take into account node width
and height.

The parameter window contains settings for
- the vertical separation between levels
- the horizontal separation between siblings
- the horizontal separation between subtrees

'tree  layout  - RT'  is a algorithm   for drawing
binary   trees based  on a  paper  by Reingold and
Tilford.


sugiyama layout
---------------

An implementation  of Sugiyama's layout  algorithm
for drawing DAGs and hierarchical graphs.

The algorithm consists of three steps :

(1) partition the nodes into distinct levels.
(2) reorder the nodes within the levels to reduce
    crossings.
(3) assign coordinates

Currently, input  is restriced   to  DAG's without
self-loops. An  enhanced  version of   the algorithm is  under
implementation.

The parameter window contains settings for
- the vertical separation between levels
- the horizontal distance between nodes and bends
  on the same level
- the number of iterations used internally.


spring embedder
---------------

The spring embedder  is  an  algorithm for drawing
general graphs with  straight-line edges.  It uses
"forces"  between nodes  to  calculate   a layout.
There are repulsive  forces between all  nodes and
attractive forces between   adjacent  nodes.  Very
good to display symmetries, although somewhat slow
on bigger graphs.

The parameter window contains settings  for
- the maximal force. If the overall force of all
  springs in a graph is melow this value, the
  iteration process stops.
- the period.
- the maximum number of iterations.
- the number of iterations between animation
  steps.
- the optimal distance between nodes.

Hold  the  meta key down   to switch the animation
off.

The algorithm is based  on a paper by Reingold and
Fruchtermann.  Currently,  input is restricted  to
graphs without self-loops and multiple edges.


Woods
-----

This  algorithm produces planar drawings of planar
graphs. It is based on an algorithm by D. Woods.

Options in the parameter window are
- largest face on the outer border on/off
- horizontal edges on/off
- vertical distance between nodes and bends
- horizontal distance between nodes and bends

This algorithm uses the PQ-tree planarity test to
construct a planar embedding.


DrawConvex
----------

This  algorithm produces convex drawings of planar
graphs. It is based on a paper by Chiba et al.

Options in the parameter window are
- preserve node sizes. The algorithm tends to
  build very dense clusters. With this switch off,
  all nodes are shrinked to 1x1 pixels.

This algorithm uses the  Hopcroft-Tarjan algorithm
to construct a planar embedding.


Bends
-----

This algorithm is based on Roberto Tamassia's
bends minimisation technique. It constructs a
rectlinear drawing of a planar graph with a
minumum number of bends.

Options in the parameter window are
- The size of the underlying grid.

Note : the input graph must be drawn planar.


Chrobak-Payne
-------------

This algorithm draws straight line  planar graphs.
It is theoretically optimal in that at most O(N^2)
space is used   (which is known  to be   the lower
limit fot straight-line planar drawings).

The pop-up  shows variuos  options  for compressed
layout. It is advisable to use a grid here.

Note : the input graph must be drawn planar.


Springembedder (Kamada)
-----------------------

A springembedder with a different algorithm. This
is part of a diploma thesis which is still going
on.


Schnieders global
Schnieders local
-----------------

Layout algorithms by U Schnieders. Unsupported.
