Diagram / Layouts / Tree Layouts / Tip-over Tree Layout
In This Topic
    Tip-over Tree Layout
    In This Topic
     Overview

    The tip over tree layout is represented by the NTipOverTreeLayout class. The tip-over tree layout implements an orthogonal tree drawing algorithm, which recursively arranges the children subtrees of a tree vertex in either a single row or a single column. 

    The children placement can be specified on a per vertex basis. If a vertex does not provide a concrete value for this parameter it is by default obtained from the ChildrenPlacement property (see Supplemental Data below). You can also specify globally the way the leafs are placed using the LeafsPlacement property. If not set, the leafs will inherit their placement style from the ChildrenPlacement property or the placement style (if any) specified in their parent's LayoutData.

    The minimal spacing between the vertices in the horizontal and vertical dimensions is controlled by the HorizontalSpacing and VerticalSpacing properties respectively.

    The following image illustrates the result of the layout: 


    Figure 1. Tip-over tree layout used to display a simple organization chart.
    Vertices in red use column children placement.

     Supplemental Data

    The children placement for each vertex can be specified on a per-vertex basis via the following supplemental data: 

    TipOverChildrenPlacement - a value from the ENTipOverChildrenPlacement enumeration.  

    In Nevron Diagram this setting is exposed by the TipOverChildrenPlacement property of the of the NLayoutData class, accessible from the LayoutData property of each shape.

     Compaction

    The layout area of the tip-over tree layout can be reduced, if you set the Compact property to true. The organization chart on figure 1 uses compaction. The following two images illustrate the compaction in more complex case:

     
    Figure 2. Tip-over tree layout without compaction 


    Figure 2. Tip-over tree layout with compaction

     Parent Placement

    Unlike classical tree layouts, parent vertices in the tip over tree layout are placed differently depending on whether they place their children in a column or row. The parent placement of rows is specified by the NParentPlacement class accessible from RowParentPlacement property. The parent placement of cols is specified by the NParentPlacement class accessible from the ColParentPlacement property.