documentationfor yFiles for HTML 3.0.0.3

CurveRoutingStage

CurveRoutingStage replaces polyline edge paths with curved segments using cubic bezier splines.

Inheritance Hierarchy
LayoutStageBase
CurveRoutingStage
Implemented Interfaces

Remarks

This layout stage provides a generic way to add curved edge paths for a layout with polyline routes. It first calls the coreLayout and converts the edge routes as a post-processing step. Note that HierarchicalLayout and EdgeRouter offer an integrated curve routing, making the usage of this layout stage unnecessary (see routing styles CURVED and CURVED).

A layout where this stage converted orthogonal edge paths to curved ones (the input is shown below).

The orthogonal input produced by the core layout on which the above curved example is based.

Using the scope, it is possible to select for which edges the path is converted to a curved one. This allows to only change a subset of edges. Furthermore, the CurveRoutingEdgeDescriptor class allows to individually configure settings for edges.

This stage is able to consider node and edge labels, see the respective properties nodeLabelPlacement and edgeLabelPlacement. If edge labels are considered, the EdgeLabelPreferredPlacement is respected too, such that the preferred placement remains correct if it is already correct after the core layout execution.

This stage also supports edge grouping such that edges that are correctly grouped by the core layout algorithm remain grouped in the curved layout result. However, it will not create new groupings. The same applies for other features like, e.g., LayoutPortCandidates. They are only respected if they are already respected by the coreLayout.

Default Values of Properties

defaultEdgeDescriptorCurveRoutingEdgeDescriptor
edgeLabelPlacementCONSIDEREdge labels are considered
nodeLabelPlacementCONSIDERNode labels are considered.

Type Details

yFiles module
algorithms
Curved segments can only be added to polyline edge routes. If the core layout algorithm creates straight-line edges, they will stay this way. Thus, this stage requires that the edges have proper polyline/orthogonal routes after the core layout was executed. It does not find new routes on its own.

Constructors

Properties

Methods

Constants