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

Figure 10.10. 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 10.11. 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 10.12. 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 10.13. 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”.

Figure 10.15. 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 10.16. Sample tree layouts (continued)

Radial Layout

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

Figure 10.17. Sample radial layout

RadialLayouter

Encapsulated in class RadialLayouter.