documentationfor yFiles for HTML 2.6

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 core layout algorithm and converts the edge routes as a post-processing step. Note that HierarchicLayout 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 CurveEdgeLayoutDescriptor class allows to individually configure settings for edges.

This stage is able to consider node and edge labels, see the respective properties considerNodeLabels and considerEdgeLabels. If edge labels are considered, the PreferredPlacementDescriptor 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., PortConstraints or PortCandidates. They are only respected if they are already respected by the core layout algorithm.

Default Values of Properties

affectedEdgesDpKeyAFFECTED_EDGES_DP_KEY
considerEdgeLabelstrueEdge labels are considered
considerNodeLabelstrueNode labels are considered
defaultEdgeLayoutDescriptorCurveEdgeLayoutDescriptor
scopeROUTE_ALL_EDGES

Type Details

yfiles module
router-other
yfiles-umd modules
layout-familytree, layout-multipage, layout-orthogonal-compact, layout, router-bus, router-other
Legacy UMD name
yfiles.router.CurveRoutingStage
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