Search this API

Package y.layout

Provides essential classes and interfaces that constitute the infrastructure for automatic graph layout generation.


Interface Summary
EdgeLabelLayout EdgeLabelLayout defines the properties of one edge label from the perspective of a labeling algorithm.
EdgeLabelModel This interface defines the properties of the model associated with an EdgeLabelLayout.
EdgeLayout An EdgeLayout encapsulates the layout information for an edge.
GraphLayout The GraphLayout defines the layout information of a graph.
IntersectionCalculator An IntersectionCalculator is responsible for calculating the intersection point between an edge and the visual representation of its source or target node.
LabelLayout LabelLayout defines the properties of a label from the perspective of a labeling algorithm.
LabelLayoutConstants LabelLayoutConstants defines options relevant for the automatic labeling process.
LabelLayoutFactory LabelLayoutFactory provides methods to create, add and remove node/edge labels for LayoutGraphs.
LabelLayoutKeys LabelLayoutKeys are used for associating DataProviders that contain label-specific information for edge and node labels.
Layouter Layouter describes the general interface for algorithms that perform a layout process on a LayoutGraph.
LayoutOrientation LayoutOrientation provides specifiers that are used for defining which general orientation a layout should express.
LayoutStage A LayoutStage is a layout algorithm that represents a stage of a larger layout process.
NodeLabelLayout NodeLabelLayout defines the properties of one node label from the perspective of a labeling algorithm.
NodeLabelModel NodeLabelModel defines the properties of the model associated with a NodeLabelLayout.
NodeLayout A NodeLayout encapsulates the layout information for a node.
PartitionLayouter.InterEdgeRouter An PartitionLayouter.InterEdgeRouter is responsible for routing inter-edges.
PartitionLayouter.PartitionFinder A PartitionLayouter.PartitionFinder is responsible for partitioning the input graph.
PartitionLayouter.PartitionPlacer A PartitionLayouter.PartitionPlacer is responsible for arranging the graph partitions.
PortCandidateSet.CandidateMatcher A PortCandidateSet.CandidateMatcher retrieves the best matching entries from a PortCandidateSet.
PortCandidateSet.Entry This interface represents an entry of a PortCandidateSet and provides access to the actual PortCandidate instance and the maximum number of edges allowed to connect to it.
PortConstraintKeys PortConstraintKeys are used for associating DataProviders that contain constraints for the edges of the input graph.
ProfitModel A ProfitModel ranks LabelCandidates used for prioritizing certain label locations over others.

Class Summary
AbstractLayoutStage Abstract base class implementing LayoutStage that handles the management of the core layout algorithm.
BendConverter BendConverter replaces edge bends with dummy nodes for the core layout algorithm.
BufferedLayouter A BufferedLayouter is a hull algorithm that invokes its core layout algorithm on a copy of the input graph.
CanonicMultiStageLayouter An abstract base class for layout algorithms that provides services to simplify and decompose the input graph before it is passed to the core layout algorithm itself.
ComponentLayouter A ComponentLayouter arranges the connected components of a graph.
CompositeLayouter A CompositeLayouter allows for wrapping a core layout algorithm with multiple LayoutStages.
CompositeLayoutStage CompositeLayoutStage allows for combining multiple LayoutStages.
CopiedLayoutGraph A CopiedLayoutGraph is a LayoutGraph that serves as a copy of another graph with layout information.
CurveConnectionStyle The CurveConnectionStyle provides specifiers that define how edges routed using a curved style connect at the respective source and target node.
CurveFittingLayoutStage CurveFittingLayoutStage fits a piecewise cubic bezier curve to given arbitrary edge paths.
DefaultEdgeLayout DefaultEdgeLayout is the default implementation of the EdgeLayout interface.
DefaultGraphLayout DefaultGraphLayout is a default implementation of the GraphLayout interface.
DefaultLayoutGraph DefaultLayoutGraph is a default implementation of LayoutGraph which holds the complete layout information about the graph and its elements.
DefaultNodeLabelLayout DefaultNodeLabelLayout is a default implementation of NodeLabelLayout which holds layout information about a node label.
DefaultNodeLayout DefaultNodeLayout is the default implementation of the NodeLayout interface.
Direction Direction provides four main directions and some methods to work with them.
DiscreteEdgeLabelModel DiscreteEdgeLabelModel describes the placement of labels at some predefined positions along the edge.
DiscreteNodeLabelModel DiscreteNodeLabelModel allows placing labels at eight positions around a node and at nine positions inside the node.
EdgeBundleDescriptor An EdgeBundleDescriptor defines the bundling settings of an edge.
EdgeBundling An EdgeBundling instance defines if and how the edges of a graph should be bundled by a layout algorithm, given that the algorithm supports edge bundling.
EdgeLabelCandidate An EdgeLabelCandidate describes one valid placement for an edge label considering the label model.
EdgeLabelLayoutImpl EdgeLabelLayoutImpl is a default implementation of the EdgeLabelLayout interface.
EdgeLabelOrientationSupport EdgeLabelOrientationSupport provides orientation and mirroring support for layout algorithms with integrated edge labeling.
EdgeOppositeNodeLabelModel EdgeOppositeNodeLabelModel allows for placing node labels at the opposite side of the outgoing edges of a node.
EdgeReversalStage EdgeReversalStage 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.
FixNodeLayoutStage FixNodeLayoutStage fixes the initial position of either a single node or the alignment of the bounding box of several nodes (but not the positions of the individual nodes).
FreeEdgeLabelModel FreeEdgeLabelModel allows placing edge labels at any location.
FreeEdgeLabelModel.ModelParameter This model parameter encodes a label position within FreeEdgeLabelModel.
FreeNodeLabelModel FreeNodeLabelModel allows placing node labels at any desired position.
FreeNodeLabelModel.ModelParameter The model parameter that encodes a label position within FreeNodeLabelModel.
GivenCoordinatesStage GivenCoordinatesStage changes node locations and sizes as well as edge paths to user-specified values before invoking the core layout algorithm.
GraphLayoutLineWrapper GraphLayoutLineWrapper can line-wrap or column-wrap a graph layout.
HandleNaNCoordinatesStage A LayoutStage that temporarily removes all nodes and edges with NaN-coordinates.
KeepStrongPortConstraintsStage KeepStrongPortConstraintsStage ensures that layout algorithms that cannot handle port constraints keep the ports of edges with strong PortConstraints.
LabelCandidate A LabelCandidate describes one valid placement for a label considering the label model.
LabelLayoutData LabelLayoutData encapsulates layout information for a label.
LabelLayoutDataRefinement LabelLayoutDataRefinement improves the placement of edge labels.
LabelLayoutImpl LabelLayoutImpl is the default implementation of the LabelLayout interface.
LabelLayoutTranslator LabelLayoutTranslator automatically translates label layout information provided by the standard label layout classes EdgeLabelLayout and NodeLabelLayout to layout data of type LabelLayoutData that is accessible by the keys defined in class LabelLayoutKeys.
LabelRanking LabelRanking implements the ranking for edge and node labels.
LayoutGraph A LayoutGraph is a Graph with attached layout information that basically represents a drawing of a graph.
LayoutGraphCopyFactory An implementation of the GraphCopier.CopyFactory interface used by GraphCopier that can be used by implementations of LayoutGraph.
LayoutGraphCopyFactory.HierarchicGraphCopyFactory An implementation of the copy factory interface used by GraphCopier that can be used by implementations of LayoutGraph that are hierarchically grouped using GroupingKeys.
LayoutGraphWriter This class writes the basic layout and structure as well as existing grouping information of a LayoutGraph instance or a pair of Graph and GraphLayout instances in GML format.
LayoutMultiplexer A LayoutMultiplexer delegates its layout calls to a core layout algorithm that is dynamically chosen at runtime by inspecting the nodes of the input graph.
LayoutTool The LayoutTool provides several helper and utility functions for LayoutGraph and the layout algorithms.
MinNodeSizeStage MinNodeSizeStage enforces a given minimum width/height of the nodes of a graph during the layout process.
NodeHalo A NodeHalo specifies a rectangular area around a specific node.
NodeLabelCandidate A NodeLabelCandidate describes one valid placement for a node label considering the label model.
NodeLabelLayoutImpl NodeLabelLayoutImpl is a default implementation of the NodeLabelLayout interface.
NormalizingGraphElementOrderStage NormalizingGraphElementOrderStage normalizes the order of the elements within a graph to ensure the same order for multiple layout invocations.
OrientationLayouter OrientationLayouter is a LayoutStage that changes the orientation of the layout.
ParallelEdgeLayouter ParallelEdgeLayouter is a LayoutStage that routes parallel edges which connect the same pair of nodes in a graph.
PartitionLayouter PartitionLayouter provides a framework for layouts that are based on a divide and conquer approach.
PartitionLayouter.ChannelInterEdgeRouter PartitionLayouter.ChannelInterEdgeRouter routes inter-edges using ChannelEdgeRouter.
PartitionLayouter.ComponentPartitionPlacer PartitionLayouter.ComponentPartitionPlacer uses ComponentLayouter to place the partitions.
PartitionLayouter.EdgeBetweennessPartitionFinder PartitionLayouter.EdgeBetweennessPartitionFinder uses Groups.edgeBetweennessClustering(y.base.Graph, NodeMap, boolean, int, int, DataProvider) as strategy for finding graph partitions.
PartitionLayouter.OrthogonalInterEdgeRouter PartitionLayouter.OrthogonalInterEdgeRouter routes inter-edges using OrthogonalEdgeRouter.
PartitionLayouter.PolylineInterEdgeRouter PartitionLayouter.PolylineInterEdgeRouter routes inter-edges using EdgeRouter.
PlaceNodesAtBarycenterStage PlaceNodesAtBarycenterStage temporarily hides the affected nodes, 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.
PortCalculator A PortCalculator can be applied to move ports from the nodes' rectangular bounds to the actual outline.
PortCandidate This class represents a candidate port on which edges can be connected to their source and/or target node.
PortCandidateAssignmentStage The PortCandidateAssignmentStage assigns edges to the ports specified by PortConstraints or PortCandidates after calling the core layout algorithm.
PortCandidateSet This class associates PortCandidates with the nodes of a graph.
PortConstraint A PortConstraint represents a constraint for the source or target port of an edge path.
PortConstraintConfigurator The PortConstraintConfigurator provides the possibility to create PortConstraints according to the initial connecting side of an edge.
PortConstraintEnforcementStage The PortConstraintEnforcementStage enforces that a layout algorithm will not change the relative coordinates of ports that are associated with a strong/fixed PortConstraint.
PreferredPlacementDescriptor A PreferredPlacementDescriptor provides placement information for automatic edge labeling.
RemoveColinearBendsStage The RemoveColinearBendsStage removes all collinear bends found in a graph.
RotatedDiscreteEdgeLabelModel RotatedDiscreteEdgeLabelModel describes the placement of rotated labels at some predefined positions along the edge.
RotatedSliderEdgeLabelModel RotatedSliderEdgeLabelModel allows placement of labels at a set of continuous rotated positions along both sides of an edge or directly on the edge path.
SelfLoopLayouter A SelfLoopLayouter routes the self-loops (reflexive edges) of a graph.
SequentialLayouter A SequentialLayouter allows for chaining multiple layout algorithms.
SliderEdgeLabelModel SliderEdgeLabelModel allows placement of labels at a set of continuous positions along both sides of an edge or directly on the edge path.
SliderEdgeLabelModel.ModelParameter Encodes the model parameters for the two slider modes.
SubgraphLayouter A SubgraphLayouter is a LayoutStage that filters out all graph elements that are not part of a specific subgraph.
Swimlanes Swimlanes provides helper classes and methods to handle swimlanes.
Swimlanes.SwimlaneRepresentant A SwimlaneRepresentant represents the position and arrangement mode for a swimlane.
TemporaryGroupNodeInsertionStage TemporaryGroupNodeInsertionStage 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.

Package y.layout Description

Provides essential classes and interfaces that constitute the infrastructure for automatic graph layout generation.

There are many classes that provide layout information for the graph or elements of the graph, e.g., LayoutGraph, NodeLayout, EdgeLayout or LabelLayout. They contain sizes and locations of the elements.

This package contains the abstract base class for the major layout algorithms in yFiles: CanonicMultiStageLayouter. It supports adding LayoutStages to a layout algorithm that handle parts of the layout calculation. The LayoutStages that are added by default as well as some other LayoutStages are also provided by this package.

Aside from the layout information of the labels, there are some EdgeLabelModels and NodeLabelModels that define valid locations for a label. This information can be used by generic labeling algorithms (e.g. SALabeling). The label placement can also be configured using a PreferredPlacementDescriptor, which is considered during integrated labeling.

To force edges to connect to specific ports, classes like PortConstraint, PortCandidate and PortCandidateSet are provided.

Related Documentation

See the yFiles Developer's Guide chapter on Automatic Graph Layout for a complete discussion of the yFiles algorithms for graph layout, edge routing, and label placement.


© Copyright 2000-2021,
yWorks GmbH.
All rights reserved.