documentationfor yFiles for HTML 3.0.0.1

Circular Layout

This chapter describes the major API changes to the CircularLayout introduced with yFiles for HTML 3.0 and how to migrate from the older version.

As with all major layout algorithms, the CircularLayout no longer inherits from MultiStageLayout, but implements ILayoutAlgorithm directly. The layout stages are now managed by a LayoutStageStack, which can be obtained via the layoutStages property; see Layout Stages and Multi-Stage Layouts for more details.

Renamed, Moved, and Removed Classes and Members

The following table lists the renamed, moved, and removed classes and members of the major classes of the CircularLayout. In addition to the changes listed here, the expert API was streamlined by removing some protected methods of CircularLayout.

Renamed, moved, and removed members of classes related to CircularLayout (classes are bold)
yFiles for HTML 2.6 yFiles for HTML 3.0 Remarks
CircularLayoutclass name unchanged
Properties in class CircularLayout
layoutStylepartitioningPolicy
singleCycleLayoutpartitionDescriptorSee also SingleCycleLayout
defaultEdgeLayoutDescriptoredgeDescriptor
balloonLayoutbackboneLayout
componentLayoutEnabledremoved
considerNodeLabelsremoved
exteriorEdgeLayoutDescriptorexteriorEdgeDescriptor
hideGroupsStageremoved
hideGroupsStageEnabledremoved
integratedNodeLabelingremoved
labelingremovedCan be accessed via layoutStages.
labelingEnabledremovedCan be enabled via layoutStages.
layoutOrientationremoved
nodeLabelingPolicyremoved
orientationLayoutremovedCan be accessed via layoutStages.
orientationLayoutEnabledremovedOrientationStage can be enabled via layoutStages.
parallelEdgeRouterEnabledremovedUse property Enabled on parallelEdgeRouter instead.
partitionStyleremovedPartition style can be set via partitionDescriptor
selfLoopRouterEnabledremovedUse property Enabled on selfLoopRouter instead.
subgraphLayoutremovedIf necessary, the SubgraphLayoutStage can be accessed and enabled via method get<T> of property layoutStages, but this may lead to overlaps.
subgraphLayoutEnabled
CircularLayoutDataCircularLayoutData<TNode,TEdge,TNodeLabel,TEdgeLabel>
Properties in class CircularLayoutData
circleIdscircleIdsResult
customGroupspartitions
nodeHalosnodeMargins
CircularLayoutEdgeLayoutDescriptorCircularLayoutEdgeDescriptor
CircularLayoutEdgeRoutingPolicyclass name unchanged
Properties in class CircularLayoutEdgeRoutingPolicy
markedExteriorremovedTo manually select which edges should be routed externally, use the exteriorEdges property instead.
ExteriorEdgeLayoutDescriptorCircularLayoutExteriorEdgeDescriptor
Properties in class CircularLayoutExteriorEdgeDescriptor
edgeToEdgeDistanceedgeDistance
SingleCycleLayoutremovedUse partitioningPolicy set to SINGLE_CYCLE instead.
Properties of former class SingleCycleLayout
nodeSequencerCircularLayoutData.nodeComparatorReplacement for the former INodeSequencer interface.

Changed Default Values and Behavior Changes

Node labels are now considered by default. To change this behavior, set the nodeLabelPlacement property to the desired value. It is now also easier to place the node labels with GenericLabeling by setting the value to GENERIC.

Edge labels are now considered by default. To change this behavior, set the edgeLabelPlacement property to the desired value. It is now also easier to place the edge labels with GenericLabeling by setting the value to GENERIC.

The default component arrangement style has been changed to PACKED_CIRCLE. The style can be specified via the ComponentLayout.style property. The ComponentLayout that is used by the CircularLayout is available via the componentLayout property.

Port placement now takes the specified port candidates into account. The ports are placed in a post-processing step by the PortPlacementStage. Port candidates can be specified via the properties on the sub-data CircularLayoutData.ports. See also the section Ports.

SingleCycleLayout

The class SingleCycleLayout is no longer available as a standalone layout algorithm. To achieve the same style, apply the CircularLayout and set partitioningPolicy to SINGLE_CYCLE instead.

Consequently, there is no property singleCycleLayout on the CircularLayout class anymore. It has been replaced by the new class PartitionDescriptor. This class offers the properties to configure the single-cycle layout style that were previously available in the removed SingleCycleLayout class. Furthermore, the unit of property initialAngle has been changed from radians to degrees.