C

HierarchicalLayoutEdgeDescriptor

This class is used by HierarchicalLayout during the various phases to provide routing details for the edges of the graph.
Inheritance Hierarchy

Remarks

A HierarchicalLayoutEdgeDescriptor instance can be specified individually for single edges via property edgeDescriptors.

This class is designed as a class to allow future additions of new getter methods.

Default Values of Properties

NameDefaultDescription
minimumDistance10.0d
minimumFirstSegmentLength10.0d
minimumLastSegmentLength15.0d
minimumLength20.0d
minimumOctilinearSegmentLength20.0d
minimumSlope0.2
recursiveEdgePolicyRecursiveEdgePolicy.OFF
Edges are not routed recursively.

See Also

Developer's Guide

API

edgeDescriptors, HierarchicalLayoutNodeDescriptor

Members

No filters for this type

Constructors

Creates a new instance of a HierarchicalLayoutEdgeDescriptor with the default values.

Parameters

Properties

Gets or sets whether or not reversed edges or self-loops should be routed as back-loops.

When this option is enabled, back-loops attach to the same node sides as the other edges, i.e., for layout orientation top-to-bottom, they leave their source at the bottom and enter their target at the top.

This property only affects reversed edges and self-loops. It has no effect on other edges.

NodePortCandidates and EdgePortCandidates are still considered.
The back-loop routing considers the specified edgeDirectedness. This means that undirected edges (edges with a directedness value of 0) are never routed as back-loops because they have no dedicated source/target node. Furthermore, for edges with a negative directedness value the source and target are interchanged.
This setting is ignored for edges with recursiveEdgePolicy DIRECTED and UNDIRECTED, including edges where source or target are not inside a group node.
final

Property Value

true if back-loop routing is applied, false otherwise

Default Value

The default value is: false
There is no back-loop routing applied to reversed edges.

Sample Graphs

ShownSetting: Reverse edge with setting false

See Also

Developer's Guide
Gets or sets whether or not this edge is routed directly to a group node's border if it connects the group node with one of its descendants.
When enabled, the edge will connect to the inner side of the group node's border instead of leaving the group node and connect from outside.
Edges that are completely overlapped by their source or target may require special attention during visualization. They can disappear when edges are clipped at their source and target.
This only applies to edges that connect to a group node from inside this group node.
If enabled, LayoutPortCandidates assigned to the end of an edge that connects to a group are restricted to the two sides lying in the direction of the main flow. More precisely, for layout orientation TOP_TO_BOTTOM only side TOP and BOTTOM are allowed. In addition, an edge can only be routed directly if its two endpoints are not associated with port candidate sets.
final

Property Value

true if the edge is routed directly, false otherwise

Default Value

The default value is: false

Sample Graphs

ShownSetting: false

See Also

Developer's Guide
Gets or sets the preferred minimum distance to obstacles.
The minimum distance should be greater than 0.
final

Property Value

the minimum distance to obstacles

Throws

Exception ({ name: 'ArgumentError' })
if the minimum length is negative

Default Value

The default value is: 10.0d

Sample Graphs

ShownSetting: Minimum distance 15
Gets or sets the minimum length of the first segment of the edge path (at the source node).

The minimum length should be greater than 0.

If the value is 0.0d, the first segment does not need to be orthogonal.

The minimum first segment length may be violated for curved edge routes when using curve connection style ORGANIC.
The minimum first segment length is not considered for grouped edges if the routing style is POLYLINE. Consider switching to the octilinear or orthogonal style for such cases.
final

Property Value

the minimum length of the first segment

Throws

Exception ({ name: 'ArgumentError' })
if the minimum length of the first segment is negative

Default Value

The default value is: 10.0d

Sample Graphs

ShownSetting: Minimum first segment length 10
Gets or sets the minimum length of the last segment of the edge path (at the target node).

The minimum length should be greater than 0.

If the value is 0.0d, the last segment does not need to be orthogonal.

The minimum last segment length may be violated for curved edge routes when using curve connection style ORGANIC.
The minimum last segment length is not considered for grouped edges if the routing style is POLYLINE. Consider switching to the octilinear or orthogonal style for such cases.
final

Property Value

the minimum length of the last segment

Throws

Exception ({ name: 'ArgumentError' })
if the minimum length of the last segment is negative

Default Value

The default value is: 15.0d

Sample Graphs

ShownSetting: Minimum last segment length 10
Gets or sets the minimum length of an edge.

If this is used for polyline routing, it describes the minimum vertical length of the mid segment. If it is used for orthogonal routing, it describes the minimum length of the whole edge (i.e., the sum of the length of all segments).

The minimum length should be greater than 0.

The minimum length may be violated for curved edge routes.
final

Property Value

the minimum segment length.

Throws

Exception ({ name: 'ArgumentError' })
if the minimum length is negative

Default Value

The default value is: 20.0d

Sample Graphs

ShownSetting: Minimum segment length 15
Gets or sets the minimum length of octilinear segments for this edge.
The layout algorithm cannot always maintain the specified minimum length.
This option has an effect only if the routing style is OCTILINEAR.
final

Property Value

the minimum length of octilinear segment

Throws

Exception ({ name: 'ArgumentError' })
if the minimum length of the first segment is negative

Default Value

The default value is: 20.0d

Sample Graphs

ShownSetting: Minimum octilinear segment length 20

See Also

API
routingStyleDescriptor
Gets or sets the minimum slope that the mid segments of this edge should have, if the edge is routed polyline in vertical layouts.

In addition, this value influences the steepness for CURVED edges.

The minimum slope should be greater than 0. For the curved routing style, larger values lead to steeper curves. Steeper curves generally require more height but less width (vertical layout direction).

In many scenarios with curved routing style it is beneficial to keep the steepness value rather low (e.g. 0.1 to 0.2) - it emphasizes the curves as they appear to be rounder.
final

Property Value

the minimum slope

Throws

Exception ({ name: 'ArgumentError' })
if the given minimum slope is negative

Default Value

The default value is: 0.2

Sample Graphs

ShownSetting: Routing style polyline and minimum slope 0.25d
Gets or sets how edges in grouped graphs are routed between the content of different groups.
If also direct routing between groups and their content is enabled, such an edge may not be strictly recursive anymore. Edges may leave/enter group nodes left or right.
An edge that belongs to a grid component cannot be recursive at the same time.
Edge grouping is not supported for the recursive styles DIRECTED and UNDIRECTED. Any edge grouping information will be ignored, including automatic groupings.
conversionfinal

Property Value

one of the predefined recursive routing styles

Default Value

The default value is: RecursiveEdgePolicy.OFF
Edges are not routed recursively.

Sample Graphs

ShownSetting: OFF

See Also

Developer's Guide
Gets or sets the routing style descriptor for this edge.
final

Property Value

Throws

Exception ({ name: 'ArgumentError' })
if the given routing style is null

Default Value

The default value is: RoutingStyleDescriptor
An instance where all types of edges are routed orthogonal.

Sample Graphs

ShownSetting: Routing style orthogonal (default)

See Also

Developer's Guide

Methods

Creates a copy of this HierarchicalLayoutEdgeDescriptor instance.