Layout Algorithms

The automatic arrangement of graphs is essential part of every application that deals with the visualization of structures and relationships. The Tensegrity Graph Framework provides a number of layout algorithms based on various established layout algorithms as well as own research and development.

The provided layout engine helps to  manage and apply the available layout algorithms in an easy and efficient way. The interface-based architecture allows for integrating new layout algorithms. Custom and existing layout algorithms will be handled equally and benefit from the same features and support throughout the Graph Framework.

The layout engine allows different parts of the graph (groups) to be arranged with different layout algorithms. Furthermore, it offers the option Automatic Layout which ensures that the graph retains its arrangement, even during the user-interactions.

The object-oriented concept of the layout engine allows handling of a layout algorithm with a specific configuration as a separate layout object. Following is a brief introduction to currently available layout algorithms:

Edge Layout Algorithm

The Edge Layout Algorithm routes edges without moving any nodes. Most layout algorithms arrange nodes and edges at the same time; however, the Edge Layout Algorithm is able to route edges without moving nodes. An Edge Layout Algorithm is an essential part of every application that supports runtime user-interaction.

The provided Edge Layout Algorithm is an extremely fast layout algorithm. It can be used to route edges completely, or just to improve the existing layout of edges.

 

Features:

  • Path detecting to avoid overlapping edges and nodes
  • Automatic label placement to avoid overlapping labels with other labels or nodes
  • Bridge building for a better perception of edge intersections
  • Different styles and sizes for bridges
  • Vertical and horizontal bridges
  • Bend rounding with adjustable rounding factor
  • Parallel drawing of edge segments that overlap each other
  • Adjustable distance of edge segments and the minimum distance to nodes border
  • Different styles for parallel edge segments going into the same port

 

Hierarchical Layout Algorithm

The Hierarchical Layout Algorithm uses a Sugiyama layout algorithm to arrange a graph by placing nodes in different layers (rows and columns of an imaginary 2D grid) in such a way that most visual edges flow in the same direction and the number of their intersections are minimized. Because graphs arranged by hierarchical layout show the flow and hierarchy very clearly, it is often chosen for the arrangement of flow diagrams, process charts and workflows.

Features:

  • Different layout directions
  • Adjustable distance between nodes and layers
  • Different alignment of nodes on the same layer
  • Arrangement of nodes by considering the connection points or the nodes' bounding boxes
  • Different layering strategies
  • Determination of the maximum number of layers
  • Consideration of the needed room for edge labels
  • Routing edge straight or orthogonal
  • Prioritizing of the order of the nodes on the same layer

 

 

 

Energy Layout

The Energy Layout Algorithm uses a force-directed layout algorithm to arrange a given graph. The layout algorithm regards a graph as a system of forces and attempts to find a minimum energy configuration. In this system the nodes of a graph are regarded as electrically charged particles that repel one another and the edges are considered springs that hold them back. The result of the energy layout is very natural and harmonic and is ideal for the layout of social networks and for simulating physical and chemical models. The energy layout creates a harmonic and balanced result; however, it is not very fast, and it is unable to guarantee a graph without crossed edges.

Features:

  • Adjustable node distance
  • Variable graph concentration
  • Determination of the layout quality
  • Option to restrict the calculation time

 

 

 

 

 

Circular Layout

The Circular Layout Algorithm emphasizes group and tree structures within a network. It partitions nodes into
groups by analyzing the connectivity structure of the network. The detected groups are arranged on
separate circles. The circles themselves are arranged in a radial-tree layout fashion. This Node Layout
implementation might be used for the visualization of social, telecommunication and computer networks.

Features:

  • Adjustable distance of the nodes on the same circle
  • Adjustable minimum radius of the circles
  • Setting for the angular range of the sector around the root node
  • Different distribution strategies
  • Variable drawing angle for the whole graph

 

 

 

 

 

Tree Layout

The Tree Layout Algorithm arranges trees, rooted graphs with no cycles ( the nodes are not allowed to have more the one parent). The Tree Layout Algorithm offers four different styles for arranging trees: plan, radial, loop and HV-diagram.

Features:

  • Four different layout styles
  • Adjustable node distance and radius

 

 

 

 

 

 

Orgchart Layout

The Orgchart Layout Algorithm is a special kind of Tree Layout Algorithm. It provides some special arrangement styles which are usually used for the visualization of organization charts. The Orgchart Layout Algorithm also allows associated connections between nodes across the tree. Different styles can be used within the same graph without the need for groups.

Features:

  • Six different layout styles
  • Determination of the nodes' order
  • Staff elements
  • Adjustable vertical and horizontal distances
  • Automatic edge routing for connections across the tree