Represents a layout algorithm that arranges the connected components of a graph, allowing for the use of different layout styles and customization for component and edge arrangement.
An EdgeBundling instance defines if and how the edges of a graph should be bundled by an ILayoutAlgorithm, given that the algorithm supports edge bundling.
Represents a point on the path of an LayoutEdge, which can either correspond to a bend on the edge or to one of the two ports (source or target) of the edge.
This stage offers generic support for LayoutGrid structures so that a grid can be considered even when running a layout algorithm that natively does not support it.
This ILayoutGroupBoundsCalculator calculates the bounds of group nodes, allows to specify custom padding for each group node, and guarantees that their provided minimum sizes will be maintained.
LayoutAnchoringStage anchors the graph on an initial position based on either a single graph item or the alignment of the bounds of several items (but not the positions of the individual items).
Represents a directed graph structure that contains layout information for its elements and to which layout algorithms (ILayoutAlgorithm) can be applied.
Provides mappings between the copied and original graph items for layout graphs that are created as a copy of another graph using the createCopy method.
Helper class that provides unique identifiers for some general purpose DataKey<TValue> that are used for looking up data registered for the LayoutGraph and its items.
PlaceNodesAtBarycenterStage temporarily hides the affectedNodes, applies the specified core layout algorithm (if any) to the resulting graph and, finally, reinserts the hidden nodes by placing them on the barycenter of their neighbors using the specified node sizes.
This layout algorithm recursively traverses a hierarchically organized graph in a bottom-up fashion and applies a specified layout algorithm to the contents (direct children) of each group node.
ReverseEdgesStage selectively reverses edges in a graph, while keeping the layout and label positions of the reversed edges as close to the pre-reversal layout and positions as possible.
TemporaryGroupInsertionStage is useful if nodes should be treated by layout algorithms as if they were actually grouped without the need to manually create a grouped graph for the layout process.