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.9, “The yFiles layout algorithms” shows the yFiles major layout algorithms.

Figure 5.9. 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.10. Sample circular layouts

Circular Layouter
Circular Layouter

Encapsulated in class CircularLayouter and class SingleCycleLayouter.

Hierarchical Layout

Classic hierarchical layout is described in the section called “Hierarchical Layout”, incremental hierarchical layout in the section called “Incremental Hierarchical Layout”.

Figure 5.11. Sample hierarchical layouts

Hierarchic Layouter
Grouped Hierarchic Layouter
Hierarchical layout. Grouped hierarchical layout.

Encapsulated in classes HierarchicLayouter and HierarchicGroupLayouter, and in class IncrementalHierarchicLayouter.

Organic Layout

Plain organic layout is described in the section called “Organic Layout”, smart organic layout in the section called “Smart Organic Layout”. The description of interactive organic layout can be found in the section called “Interactive Organic Layout”.

Figure 5.12. Sample organic layouts

Organic Layouter
Grouped Organic Layouter
Organic layout. Grouped organic layout.

Encapsulated in the classes OrganicLayouter and 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 hierarchically organized graphs in the section called “Orthogonal Layout of Hierarchically Organized Graphs”. Special support for UML-style layout is provided by the orthogonal layout variant found in the section called “Directed Orthogonal Layout”.

Figure 5.13. Sample orthogonal layouts

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”.

Figure 5.14. Sample tree layouts

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.15. Sample tree layouts (continued)