See: Description
Interface | Description |
---|---|
GroupingSupport.IVisitor |
Visitor interface that can be used to traverse the descendants of a group node.
|
IDrawingDistanceCalculator |
This interface determines the minimum distances between elements that belong to the same layer.
|
IEdgeData |
This interface provides layout information about the edges of the graph during the layout.
|
IEdgeReverser |
This interface handles edges that should be reversed during the hierarchic layout process.
|
IIncrementalHintsFactory |
This interface provides factory methods for creating incremental hints for the hierarchic layout.
|
IItemFactory |
This interface is a factory for creating and destroying helper structures used in the graph during layout.
|
ILayer |
This interface describes a single layer in a hierarchic layout.
|
ILayerConstraint |
This interface describes a layering constraint.
|
ILayerConstraintFactory |
This interface provides methods for creating layering constraints.
|
ILayeredComponentsMerger |
This interface merges two
ILayers instances whose nodes reside in the same graph. |
ILayerer |
This interface is used by classes capable of generating a layer assignment.
|
ILayers |
This interface manages multiple
ILayer instances. |
ILayoutDataProvider | |
INodeData |
This interface provides layout information about the nodes of the graph during the layout.
|
INodePlacer |
This interface is responsible for the assignment of the x-(sequence) and preliminary y-coordinates of the nodes in a
hierarchic layout.
|
IPortAllocator |
This interface is responsible for assigning port coordinates to the adjacent edges of each node of the graph.
|
IPortConstraintOptimizer |
This interface serves as a callback for
HierarchicLayoutCore after the layering and sequencing phases. |
ISequenceConstraintFactory |
This interface specifies the general contract for factory classes that can be used to associate sequence constraints
with a graph.
|
ISequencer |
This interface is used by
HierarchicLayoutCore to calculate the order of the nodes within each
layer . |
Class | Description |
---|---|
AbstractPortConstraintOptimizer |
This class is an abstract implementation of the
IPortConstraintOptimizer interface that minimizes the effort
required to modify the port assignment after the sequencing phase of hierarchic layout algorithm. |
AbstractPortConstraintOptimizer.SameLayerData |
This static class provides information about the same-layer structures created by class
AbstractPortConstraintOptimizer . |
AsIsLayerer |
AsIsLayerer assigns nodes to layers by analyzing already existing node coordinates. |
AsIsSequencer |
This class calculates the sequence of the nodes within each layer using the nodes' coordinates.
|
AspectRatioComponentLayerer | |
BFSLayerer |
BFSLayerer uses a breadth first search for assigning layers to the nodes. |
ConstraintIncrementalLayerer |
This class is a
ILayerer implementation that observes relative and absolute layering constraints defined by the
layer constraint factory . |
DefaultDrawingDistanceCalculator |
This class is a default
IDrawingDistanceCalculator implementation that is used by HierarchicLayoutCore
to configure the INodePlacer . |
DefaultLayeredComponentsMerger |
A default implementation of a
ILayeredComponentsMerger that provides simple default behaviors. |
DefaultLayerSequencer |
This class is a
ISequencer implementation that performs the second phase of the Sugiyama algorithm. |
DefaultPortAllocator |
This class is a default
IPortAllocator implementation. |
EdgeLayoutDescriptor |
This class is used by
HierarchicLayoutCore during the various phases to provide routing details for the edges of
the graph. |
GivenLayersLayerer |
This layering algorithm implementation assigns nodes to layers given a mapping of nodes to layer IDs.
|
GivenSequenceSequencer |
This class is a
ISequencer implementation that determines the sequence of nodes of the same layer
based on a given comparator constraint. |
GroupingSupport |
This class is responsible for managing hierarchically grouped graphs.
|
HierarchicLayout |
This layout algorithm arranges graphs in a hierarchic fashion.
|
HierarchicLayoutCore |
This class arranges graphs in a hierarchic/layered fashion and supports complete re-layout as well as incremental graph
layout.
|
HierarchicLayoutData |
Specifies custom data for the
HierarchicLayout . |
IncrementalHintItemMapping |
Provides different ways to define a mapping from model items to incremental hints for use with
HierarchicLayoutData . |
MultiComponentLayerer | |
NodeLayoutDescriptor |
This class is used by
HierarchicLayoutCore during the various phases to provide the drawing details of the nodes
of the graph. |
PartitionGridLayoutStage |
This class implements a
layout stage that handles a given partition grid
structure. |
PortCandidateOptimizer |
This class is an implementation of the
IPortConstraintOptimizer interface that tries to assign the edges of the
graph to ports considering the specified PortCandidate s. |
RoutingStyle |
This class is used by
EdgeLayoutDescriptor to specify the routing style for different types of edges. |
SelfLoopCalculator |
This class calculates bend points for self-loops routed in orthogonal or octilinear fashion.
|
SelfLoopCalculatorData |
Specifies custom data for the
SelfLoopCalculator . |
SimplexNodePlacer |
This class is a
INodePlacer implementation based on rank assignment . |
SwimlaneDescriptor |
This class is used by
HierarchicLayoutCore during the various phases and models a swimlane structure. |
TopLevelGroupToSwimlaneStage |
This
layout stage can be used for automatically assigning SwimlaneDescriptor
instances to nodes by treating top-level group nodes as swimlanes. |
TopologicalLayerer |
This class implements the layering phase of the
HierarchicLayout (i.e., assignment of the nodes to layers). |
TypeBasedDrawingDistanceCalculator |
This class is a
IDrawingDistanceCalculator implementation that returns the minimum distances for each kind of
node pair based on their type as returned by Type . |
WeightedLayerer |
This class implements the layering phase of the
HierarchicLayout (i.e., the assignment of the nodes to layers). |
Enum | Description |
---|---|
ComponentArrangementPolicy | |
EdgeDataType | |
EdgeRoutingStyle |
A routing style constant specifying that the edges should be polyline.
|
GroupAlignmentPolicy |
A group layering alignment strategy which aligns groups and normal nodes that occupy the same layer to the top with
respect to their inner layers.
|
GroupCompactionPolicy |
A strategy specifying no horizontal group compaction.
|
LayeringStrategy | |
LayerType | |
LayoutMode | |
MergingPolicy | |
NodeDataType | |
NodeLabelMode | |
PortAssignmentMode | |
RankingPolicy | |
RecursiveEdgeStyle |
Routing specifier that routes edges between different group contents non-recursively.
|
WeightHeuristic |
A weight assignment specifier based on a median heuristic.
|
Provides hierarchic layout style algorithms.
In the hierarchic layout style, nodes are distributed into layers such that most of the edges point to the main layout direction, i.e., the layer of the edge's source is smaller than that of the target. The order of the nodes within the layers ensures that the number of edge crossings is as small as possible. Also, different edge routing styles i.e., polyline, octilinear, orthogonal are supported.
The main class is HierarchicLayoutCore
. However, users should use class HierarchicLayout
that offers a facade to this layouter.
The main steps of the HierarchicLayout
are performed by implementations of the following interfaces:
Furthermore, IIncrementalHintsFactory
provides the interface to determine which elements will be inserted incrementally into a given drawing of the input graph.
Default hierarchic layout
Hierarchic layout with swimlanes and polyline routing
Hierarchic layout with groups and octilinear routing
See the yFiles Developer's Guide section on Hierarchical Layout Style for descriptions of the yFiles hierarchical layout style algorithms.