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

Classes

  ClassDescription
Public classAbstractLayoutStage
Partial LayoutStage implementation that handles the management of the core layouter part.
Public classBendConverter
This layout stage replaces bends with dummy nodes, calls the core layout algorithm and recreates the bends.
Public classBufferedLayouter
A hull layouter that invokes another layout algorithm on a copy of its input graph.
Public classCanonicMultiStageLayouter
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 routine itself.
Public classComponentLayouter
This layout stage arranges the connected components of a graph.
Public classCompositeLayouter
A layouter that allows to express a layout stage as a chain of more basic layout stages.
Public classCompositeLayoutStage
A composite layout stage that allows to express a layout stage as a chain of more basic layout stages.
Public classCopiedLayoutGraph
This is a LayoutGraph implementation that serves as a copy of another LayoutGraph or as copy of a combined GraphInterface and and GraphLayout interface implementation.
Public classDefaultEdgeLayout
This class is a default implementation of the EdgeLayout interface.
Public classDefaultGraphLayout
This class is a default implementation of the simple GraphLayout interface.
Public classDefaultLayoutGraph
This class is a default implementation of the abstract class LayoutGraph.
Public classDefaultNodeLabelLayout
This class is the default implementation for the NodeLabelLayout.
Public classDefaultNodeLayout
This class is a default implementation of the NodeLayout interface.
Public classDirection
Class that represents directions.
Public classDiscreteEdgeLabelLayoutModel
An edge label model that allows placement of labels at some positions along an edge.
Public classDiscreteNodeLabelLayoutModel
A node label model that allows placement of labels at eight positions around a node and at nine positions inside the node.
Public classEdgeLabelCandidate
A candidate position for edge labels
Public classEdgeLabelLayoutImpl
This class is an default implementation of the EdgeLabelLayout interface.
Public classEdgeLabelOrientationSupport
Helper for layouter with integrated edge labeling to support orientation and mirroring.
Public classEdgeOppositeNodeLabelLayoutModel
A node label model that sets the labels at the opposite side of the outgoing edges of a node.
Public classEdgeReversalStage
A layout stage that can be used to (selectively) reverse 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.
Public classFixNodeLayoutStage
Layout stage that can be used to fix the position of either a single node or the alignment of the bounding box of several nodes (but not the positions of the individual nodes).
Public classFreeEdgeLabelLayoutModel
An edge label model that allows placement of labels at a fixed offset from the source intersection point of the node.
Public classFreeEdgeLabelLayoutModel..::..ModelParameter
The model parameters for the FreeEdgeLabelModel.
Public classFreeNodeLabelLayoutModel
A node label model that allows placement of labels at a fixed offset relative to the node's upper-left corner.
Public classFreeNodeLabelLayoutModel..::..ModelParameter
The model parameter that encodes a node label position within FreeNodeLabelModel.
Public classGraphLayoutLineWrapper
A layout stage that can be used to "line-wrap" or "column-wrap" a graph layout.
Public classIntersectionCalculatorKeys
Public classLabelCandidate
Base class for candidate positions for labels.
Public classLabelLayoutData
This class encapsulates layout data for a label.
Public classLabelLayoutDataRefinement
A layout stage that improves the placement of edge labels.
Public classLabelLayoutImpl
This class is a default implementation of the LabelLayout interface.
Public classLabelLayoutKeys
This interface provides label-specific keys that can be used to add data providers to a layout graph.
Public classLabelLayoutTranslator
Layout stage that automatically translates label layout information provided by the standard label layout classes IEdgeLabelLayout and INodeLabelLayout to layout data of type LabelLayoutData that is accessible by the keys defined in class LabelLayoutKeys .
Public classLabelRanking
Implements the ranking for edge and node labels for Graph2D.
Public classLayouterKeys
Public classLayoutGraph
This class represents a drawing of a graph.
Public classLayoutGraphCopyFactory
An implementation of the copy factory interface used by GraphCopier that can be used by implementations of LayoutGraph .
Public classLayoutGraphCopyFactory..::..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 .
Public classLayoutMultiplexer
This class delegates its layout calls to a core layout algorithm that is dynamically chosen at runtime by inspecting the nodes of the input graph.
Public classLayoutTool
This class is a container for several helper and utility functions for the LayoutGraph class.
Public classMinNodeSizeStage
This layout stage enforces a given minimum width/height of the nodes of a graph during the layout process.
Public classNodeHalo
A NodeHalo object specifies a rectangular area around a specific node.
Public classNodeLabelCandidate
This class represents a candidate position for label associated to a node in a graph.
Public classNodeLabelLayoutImpl
This class is an default implementation of the NodeLabelLayout interface.
Public classNormalizingGraphElementOrderStage
Layout stage that can be used to normalize the order of the elements within a graph.
Public classOrientationLayouter
A layout stage that performs changes the orientation of the layout that another algorithm calculates.
Public classOrientationLayouter..::..Transformer
Class that provides a method for transferring a point to its final position.
Public classParallelEdgeLayouter
A layout algorithm that routes parallel edges (edges that connect the same pair of nodes) of a graph.
Public classPartitionLayouter
This layout stage provides a framework for layouts that are based on a divide and conquer approach.
Public classPartitionLayouter..::..ChannelInterEdgeRouter
InterEdgeRouter implementation that routes inter-edges using ChannelEdgeRouter .
Public classPartitionLayouter..::..ComponentPartitionPlacer
PartitionPlacer implementation that uses ComponentLayouter to place the partitions.
Public classPartitionLayouter..::..EdgeBetweennessPartitionFinder
PartitionFinder implementation that uses EdgeBetweennessClustering(Graph, INodeMap, Boolean, Int32, Int32, IDataProvider) as partition strategy.
Public classPartitionLayouter..::..OrthogonalInterEdgeRouter
InterEdgeRouter implementation that routes inter-edges using OrthogonalEdgeRouter .
Public classPartitionLayouter..::..PolylineInterEdgeRouter
InterEdgeRouter implementation that routes inter-edges using EdgeRouter .
Public classPortCalculator
This class implements a LayoutStage that can be used to adjust the final port assignments after a layout has been calculated.
Public classPortCandidate
This class represents a candidate for an edge's ports.
Public classPortCandidateSet
This class describes a set of possible PortCandidate s and their cardinality for a node-like entity.
Public classPortConstraint
This class represents a constraint for either a source or target port of an edge.
Public classPortConstraintConfigurator
Provides configuration services for the port constraints of a graph.
Public classPortConstraintEnforcementStage
This layout stage can be used to enforce that a layout algorithm will not change the relative coordinates of ports that are associated with a strong/fixed port constraint.
Public classPortConstraintKeys
This interface defines keys used to associate DataProviders that provide port constraints for all edges of the input graph.
Public classPreferredPlacementDescriptor
A descriptor that holds preferred placement information for automatic edge labeling.
Public classRemoveColinearBendsStage
This LayoutStage removes all collinear bends found in the graph.
Public classRotatedDiscreteEdgeLabelLayoutModel
An rotated edge label model that allows placement of rotated labels at some positions along an edge.
Public classRotatedSliderEdgeLabelLayoutModel
An edge label model that allows placement of labels at a set of continuous positions along both sides of an edge or directly on the edge path.
Public classSelfLoopLayouter
A layout algorithm that routes the self-loops (reflexive edges) of a graph.
Public classSequentialLayouter
This Layouter will take several ILayouter implementations and will run these layout algorithms one after the other in the order in which they were added.
Public classSliderEdgeLabelLayoutModel
An edge label model that allows placement of labels at a set of continuous positions along both sides of an edge or directly on the edge path.
Public classSliderEdgeLabelLayoutModel..::..ModelParameter
Encodes the model parameters for the two slider edge label models specified by Center and Side .
Public classSubgraphLayouter
A layout stage that filters out all graph elements that are not part of a subgraph that is induced by the selected nodes of the input graph.
Public classSwimlanes
Helper class for swimlanes.
Public classSwimlanes..::..SwimlaneRepresentant
Class that internally represents a swim lane.

Interfaces

  InterfaceDescription
Public interfaceIEdgeLabelLayout
This interface defines the properties of one edge label from the perspective of a labeling algorithm.
Public interfaceIEdgeLabelModel
This interface defines the properties of the model associated with an edge label layout.
Public interfaceIEdgeLayout
This interface encapsulates the layout information for an edge.
Public interfaceIGraphLayout
This interface defines the layout information of a graph.
Public interfaceIIntersectionCalculator
Interface implemented by classes that are responsible for calculating the intersection point between an Edge and the visual representation of its source or target node.
Public interfaceILabelLayout
This interface defines the properties of one label from the perspective of a labeling algorithm.
Public interfaceILayouter
This is a general interface for algorithms that perform a layout process on a given layout graph.
Public interfaceILayoutStage
Interface for a layouter that forms a stage of a larger layout process.
Public interfaceINodeLabelLayout
This interface defines the properties of one edge label from the perspective of a labeling algorithm.
Public interfaceINodeLabelModel
This interface defines the properties of the model associated with a node label layout.
Public interfaceINodeLayout
This interface describes the layout information for a node in the drawing of a graph.
Public interfaceIProfitModel
This is an interface for ranking LabelCandidates.
Public interfacePartitionLayouter..::..IInterEdgeRouter
Implementations of this interface are responsible for routing inter-edges.
Public interfacePartitionLayouter..::..IPartitionFinder
Implementations of this interface are responsible to partition the input graph.
Public interfacePartitionLayouter..::..IPartitionPlacer
Implementations of this interface are responsible for arranging the graph partitions.
Public interfacePortCandidateSet..::..ICandidateMatcher
The interface that is used by PortCandidateSet to retrieve PortCandidate s from.
Public interfacePortCandidateSet..::..IEntry
An interface that is returned by the find methods in PortCandidateSet..::..ICandidateMatcher and the Entries method.

Enumerations

  EnumerationDescription
Public enumerationComponentArrangementStyles
Public enumerationDiscreteEdgeLabelPosition
Public enumerationDiscreteNodeLabelPosition
Public enumerationEdgeFlow
Edge flow specifier used by method DetermineEdgeFlowDirection(LayoutGraph, IDataProvider) .
Public enumerationFixPointPolicy
Fix point calculation policy that results in the center of a given rectangle to be considered the fix point.
Public enumerationLabelAngleOnRightSideOffset
Angle offset specifier for edge labels whose descriptor IsRightOfEdge .
Public enumerationLabelAngleOnRightSideRotation
Angle interpretation specifier for edge labels whose descriptor IsRightOfEdge .
Public enumerationLabelAngleReference
Angle interpretation specifier for edge labels.
Public enumerationLabelPlacements
Public enumerationLabelSideReference
Side placement specifier for edge labels.
Public enumerationLayoutOrientation
Orientation specifier.
Public enumerationMirrorMask
Public enumerationNodeAlignment
Public enumerationPortDirection
Public enumerationPortSide
Weak constraint specifier.
Public enumerationRotatedDiscreteEdgeLabelPosition
Public enumerationRotatedSliderMode
Symbolic slider mode specifier.
Public enumerationRowAlignment
Public enumerationSelfloopStyle
Edge layout style modifier.
Public enumerationSliderMode
Symbolic slider mode specifier.
Public enumerationSliderRatio
Symbolic ratio specifier.
Public enumerationSwimlanesMode
Swim lane ordering mode specifier.

Remarks

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

The concept of layout stages is defined and several generically usable implementations thereof are provided.
Classes for labeling, the label models, and port constraints are also included.

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.