- I
- I
Remarks
Layout Style
The children/subtrees are assigned to the layers with multiLayerSubtreePlacerLayerIndices. If there is no layer mapping provided, the layer assignment is made automatically - the produced structure will be square-like with respect to the child count, ignoring actual subtree sizes. For example, if there are nine children, a structure with three layers each containing three nodes is generated.
The edges from the children to the local root are routed in a bus-like style. The placement of the bus can be configured using the property busPlacement. The alignment of the root node can be configured using rootAlignment. To align the root node with the bus, use BUS_ALIGNED. A bus-aligned root in conjunction with CENTER produces a symmetric multi-layer structure with the bus and root aligned in the middle.
Default Values of Properties
| Name | Default | Description |
|---|---|---|
| busPlacement | BusPlacement.LEADING | The bus is placed leading, left of the child nodes. |
| rootAlignment | MultiLayerSubtreePlacerRootAlignment.BUS_ALIGNED | |
| spacing | 20 |
See Also
Developer's Guide
Members
Constructors
Creates a new MultiLayerSubtreePlacer instance.
Parameters
- rootAlignment?: MultiLayerSubtreePlacerRootAlignment
- The alignment of the local root with its subtrees (optional). The default value is BUS_ALIGNED.
Properties
Gets or sets the placement of the bus with respect to the child nodes.
Property Value
Throws
- Exception ({ name: 'ArgumentError' })
- if the given bus placement is unknown
Default Value
Gets or sets the MultiLayerSubtreePlacerRootAlignment that defines how the root node is aligned with its children and their shapes.
Property Value
Default Value
Property Value
Throws
- Exception ({ name: 'ArgumentError' })
- if the given spacing is negative
Default Value
Sample Graphs
20 using SingleLayerSubtreePlacerGets the modification matrix that defines the direction of the subtree.
Property Value
Default Value
Methods
Creates a comparison that sorts the outgoing edges according to the rows and x-coordinates of their target nodes.
Return Value
- function(LayoutEdge, LayoutEdge): number
- a comparison that orders edges lexicographically by row and x-coordinates of their target nodes
See Also
Creates an optional ISubtreePlacerProcessor for pre- and post-processing.
null.Parameters
- treeLayout: TreeLayout
- the current TreeLayout instance
- graph: LayoutGraph
- the input graph
- currentRoot: LayoutNode
- the root node handled by this ISubtreePlacer
Return Value
- ISubtreePlacerProcessor
- a ISubtreePlacerProcessor instance or
null
Implements
ISubtreePlacer.createProcessordetermineChildConnectors
(localRoot: LayoutNode, connectorMap: IMapper<LayoutNode, ParentConnectorDirection>)Provides the direction of the connector to the SubtreeShape for each child node.
determineChildConnectors
(localRoot: LayoutNode, connectorMap: IMapper<LayoutNode, ParentConnectorDirection>)Parameters
- localRoot: LayoutNode
- the local root node
- connectorMap: IMapper<LayoutNode, ParentConnectorDirection>
- the IMapper<K, V> that is used for storing the direction specifiers of the child nodes
Implements
ISubtreePlacer.determineChildConnectorsArranges the SubtreeShapes of the local root and its children and routes the edges that connect them.
This method is the main method of the tree layout algorithm. It is called by TreeLayout in each recursion step to place the local root in relation to its children. Their shapes will be merged into one SubtreeShape, which is returned by this method.
The SubtreeShape for the local root can be obtained from the nodeShapeProvider. subtreeShapeProvider contains the SubtreeShapes assigned to the child nodes.
Due to the order in which the tree nodes are processed, it is guaranteed that at the time of the invocation of this method the SubtreeShape of every descendant node has already been calculated.
Parameters
- nodeShapeProvider: IMapper<LayoutNode, SubtreeShape>
- the IMapper<K, V> for obtaining an initial shape of the root node
- subtreeShapeProvider: IMapper<LayoutNode, SubtreeShape>
- the IMapper<K, V> for accessing the pre-calculated shapes of the subtrees
- graph: LayoutGraph
- the input graph
- localRoot: LayoutNode
- the root of the subtree that should be arranged by this method
- parentConnectorDirection: ParentConnectorDirection
- the direction specifier for the connector of the local root node to its parent node
Return Value
- SubtreeShape
- the combined shape of the whole subtree