LayoutFlow
A set of graph drawing algorithms.
Published by Lassalle Technologies
Distributed by ComponentSource since 2002
Prices from: $ 587.02 Version: v1.0 Updated: May 3, 2005
LayoutFlow is a collection of 4 layout components to enable you to automatically display graphs or flow charts following some aesthetic rules. Includes: HFlow (hierarchical), SFlow (symmetric), TFlow (tree) and OFlow (orthogonal). These controls are AddFlow extensions. Each of these controls allows performing a graph layout automatically, positioning its vertices (also called nodes) and edges (also called links) on a form containing an AddFlow control.
LayoutFlow is a set of four graph layout controls:
A demonstration of each of these products is available in the LayoutDemo sample provided with AddFlow.
HFlow, OFlow, SFlow and TFlow are AddFlow extensions and you cannot use them without AddFlow. Typically, you can first create your nodes and links inside AddFlow, using the AddFlow API, giving each node a random or a (0,0) position. Then you call the layout method of the graph layout control of your choice. This method will position the nodes and the links in a reasonable manner in the AddFlow control, following some aesthetic rules that depend on the chosen control (hierarchical with HFlow, symmetric with SFlow, orthogonal with OFlow...)
If the AddFlow LogicalOnly property is true, then only the logical vertices of the AddFlow control are involved in this layout. This will allow you to apply the layout only to important vertices. For instance, you will be able to exclude a node just used to display a label by setting its Logical property to false.
1) HFlow
The HFlow layout algorithm arranges vertices in horizontal layers. The orders of the vertices are chosen so that the number of crossings is kept small.
HFlow just produces a reasonable solution, not the optimum solution.
2) OFlow
The OFlow layout algorithm allows performing an orthogonal layout on a graph. The layout is orthogonal since it produces an orthogonal drawing where each edge is drawn as a polygonal chain of alternating horizontal and vertical segments.
OFlow works with any graphs, connected or not. In the resulting drawing, if the graph is a graph of maximum degree four, then each node has the same size. If the degree of a node is higher than four, then the height of the node is expanded.
3) SFlow
The SFlow layout algorithm allows performing a symmetric layout on a graph. The symmetric layout produces a high degree of symmetry and is particularly useful for undirected graphs, where the directions of the edge are not important.
The resulting layout is often good. However it requires considerable computational resources and therefore should be used for small graphs (less than 300 nodes).
Using the animation mode you can see of SFlow is working.
4) TFlow
The TFlow layout algorithm allows performing a tree layout on a graph. The tree layout applies only to a specific subset of graphs: rooted trees. In such a graph, no vertice may have more than one parent.
The drawing of the tree occupies as little space as possible while satisfying certain aesthetics. If the DrawingStyle property is "Layered":
If the DrawingStyle property is "Radial":