Major Layout Algorithms

The major layout algorithms provided by yFiles inherit from abstract class CanonicMultiStageLayouter. This base class provides many useful layout stages, which, e.g., route self-loops and parallel edges, or arrange non-connected graph components. Figure 5.14, “The yFiles layout algorithms” shows the yFiles major layout algorithms.

Figure 5.14. The yFiles layout algorithms

The yFiles layout algorithms.

yFiles supports different major layout styles:

Circular Layout

Circular layout is described in the section called “Circular Layout”.

Figure 5.15. Sample circular layouts

Circular Layouter
Circular Layouter

Encapsulated in class CircularLayouter and class SingleCycleLayouter.

Hierarchical Layout

The hierarchical layout style is described in the section called “Hierarchical Layout Style”.

Figure 5.16. Sample hierarchical layouts

Hierarchical layout.
Hierarchical layout of grouped graph.
Hierarchical layout... ...of a grouped graph.

Encapsulated in class IncrementalHierarchicLayouter.

Organic Layout

The organic layout style is described in the section called “Organic Layout Style”. The description of interactive organic layout can be found in the section called “Interactive Organic Layout”.

Figure 5.17. Sample organic layouts

Organic layout
Grouped organic layout
Organic layout... ...of a grouped graph.

Encapsulated in the class SmartOrganicLayouter. Class InteractiveOrganicLayouter encapsulates the interactive variant of organic layout.

Orthogonal Layout

Plain orthogonal layout is described in the section called “Orthogonal Layout”, the modification thereof that supports grouped graphs in the section called “Orthogonal Layout of Grouped Graphs”. Special support for UML-style layout is provided by the orthogonal layout variant found in the section called “Directed Orthogonal Layout”.

Encapsulated in class OrthogonalLayouter and OrthogonalGroupLayouter. Class DirectedOrthogonalLayouter encapsulates UML-style orthogonal layout.

Tree Layout

Tree layout is described in the section called “Tree Layout”.

Encapsulated in the classes TreeLayouter, BalloonLayouter, HVTreeLayouter, and ARTreeLayouter. Also, class GenericTreeLayouter encapsulates tree layout, too. The generic tree layout algorithm is described in the section called “Generic Tree Layout”.

Figure 5.20. Sample tree layouts (continued)

Radial Layout

Radial layout is described in the section called “Radial Layout Style”.

Figure 5.21. Sample radial layout

RadialLayouter

Encapsulated in class RadialLayouter.

Series-parallel Layout

Series-parallel layout is described in the section called “Series-parallel Layout Style”.

Figure 5.22. Sample series-parallel layout

SeriesParallelLayouter

Encapsulated in class SeriesParallelLayouter.