Class CircularLayout

GoJS® Diagramming Components
version 3.0.16
by Northwoods Software®

Hierarchy (view full)

This layout positions nodes in a circular arrangement. There are several samples that use CircularLayout. The layout cannot guarantee that it provides optimal positioning of nodes when trying to minimize link crossings.

If you want to experiment interactively with most of the properties, try the Circular Layout sample. See samples that make use of CircularLayout in the samples index.

This layout makes use of a LayoutNetwork of CircularVertexes and CircularEdges that normally correspond to the Nodes and Links of the Diagram.

Index

Constructors

Accessors

  • This read-only property is the coordinates of the center of the laid-out ellipse immediately after the layout.

  • This read-only property is the effective spacing that may have been calculated by the layout.

  • This read-only property is the effective X radius that may have been calculated by the layout.

  • This read-only property is the effective Y radius that may have been calculated by the layout.

  • Gets or sets the ratio of the arrangement's height to its width (1 for a circle, >1 for a vertically elongated ellipse).

    This is 1 by default. The value must be a positive number.

    Modifying this value changes the height, but keeps the width and the radius constant.

  • Gets or sets the horizontal radius of the elliptical arrangement.

    The default value is NaN. NaN indicates that the spacing will determine the size of the ring. If spacing is also NaN, the effective spacing will be 6. If spacing is a number, the effective radius will be > radius if and only if the spacing between elements would otherwise be less than spacing. The specified value for radius will be ignored if arrangement === CircularArrangement.Packed. This property must always be positive or NaN.

  • Gets or sets the distance between nodes (if radius is NaN) or the minimum distance between nodes (if radius is a number).

    The default value is 6. The value may be NaN.

    If spacing is NaN, there is no minimum spacing, allowing nodes to overlap, unless radius is NaN, in which case the effective spacing will be 6 to determine an effective radius. If spacing is a number but radius isn't, the effective spacing will be spacing, and this will determine the effective radius. If both spacing and radius are numbers, the effective radius will be at least radius, but may be larger so that the minimum spacing between nodes is spacing.

  • Gets or sets the angle (in degrees, clockwise from the positive side of the X axis) of the first element.

    The default value is 0.

  • Gets or sets the absolute angle (in degrees) between the first and last node.

    The default value is 360. The value must be greater than zero and less than or equal to 360. If it is not in this range, it will be automatically set to 360.

    Whether the arrangement is clockwise or counterclockwise does not depend on the sign of this value. The direction can be controlled by setting direction. If 360 is the specified value, the actual value will be less to keep the first and last elements from overlapping, and the spacing between the first and last nodes will be determined the same way as for all other adjacent nodes.

Methods

  • Position each Node according to the Vertex position, and then position the Links.

    You should not call this method -- it is a "protected virtual" method.

    Returns void

  • Commit the position and routing of all edge links. This is called by commitLayout. This is only called if Layout.isRouting is true. Please read the Introduction page on Extensions for how to override methods and how to call this base method.

    Returns void

  • Commit the position of all vertex nodes. Please read the Introduction page on Extensions for how to override methods and how to call this base method.

    Returns void

Properties

deprecated

See CircularSorting.Forwards.

deprecated

See CircularSorting.Reverse.