Search API

- Preparing search index...
- The search index is not available

Show Summaries
GoJS® Diagramming Components
version 1.8.35 for JavaScript/HTML
by Northwoods Software®

## Class LayoutVertex

A vertex represents a Node in a LayoutNetwork, along with its bounds and focus and collections of LayoutEdges that come into and go out of the vertex. The node property may be null for vertexes that represent "dummy" nodes, when the layout wants to work with a network that is not isomorphic with the collection of Nodes and Links being laid out.

This holds layout-specific data for the node. For each kind of layout that uses a LayoutNetwork there is a subclass of LayoutVertex and a subclass of LayoutEdge:

- CircularLayout: CircularVertex and CircularEdge
- ForceDirectedLayout: ForceDirectedVertex and ForceDirectedEdge
- LayeredDigraphLayout: LayeredDigraphVertex and LayeredDigraphEdge
- TreeLayout: TreeVertex and TreeEdge

Modifying a LayoutNetwork or a LayoutVertex or a LayoutEdge does not invalidate the Layout or raise any changed events.

## Constructor Summary Details

Name | Description
--- | ---
LayoutVertex() | This constructs a vertex that does not know about any Node.

## Properties Summary Details

Name, Value Type | Description
--- | ---
bounds {Rect} | Gets or sets the bounds of this vertex, in document coordinates.More... Setting this property does not directly modify the position of any Node, but it will modify the value of centerX and centerY, as well as the subsidiary convenience properties x, y, width, and height.
centerX {number} | Gets or sets the center Point.x of this vertex, in document coordinates.More... This property depends on both bounds and focus. Setting this property does not modify the position of any Node, but it will modify the value of bounds.
centerY {number} | Gets or sets the center Point.y of this vertex, in document coordinates.More... This property depends on both bounds and focus. Setting this property does not modify the position of any Node, but it will modify the value of bounds.

data
{Object} 1.6

Gets or sets the data object in the model that should be associated with this vertex, if any.More... The value will be non-null if this vertex is virtualized, not represented by a real Node in the Diagram. Each data object should have a 'bounds' property that is a Rect or any JavaScript Object with 'x', 'y', 'width', and 'height' properties that are real numbers, and non-negative numbers for the width and the height. Setting this data property will also set the bounds and focus properties.

destinationEdges {Iterator.<E>} | This read-only property returns an iterator for all of the edges that go out of this vertex.
destinationVertexes {Iterator.<V>} | This read-only property returns an iterator for all of the vertexes that are connected with edges going out of this vertex.
edges {Iterator.<E>} | This read-only property returns an iterator for all of the edges that are connected with this vertex in either direction.
edgesCount {number} | This read-only property returns the total number of edges that are connected with this vertex in either direction.
focus {Point} | Gets or sets the offset of the focusX and focusY from the bounds position.More... Setting this property does not directly modify the position of any Node, but it does affect the value of centerX and centerY. The "focus" is normally the center of the Node's Part.locationObject.
focusX {number} | Gets or sets the relative X position of the "center" point, the focus.
focusY {number} | Gets or sets the relative Y position of the "center" point, the focus.
height {number} | Gets or sets the height of this vertex.More... This is always the vertical distance reserved for the node.
network {N} | Gets or sets the LayoutNetwork that owns this vertex.More... The default value is null. It is set automatically for you in LayoutNetwork.addVertex.
node {Node} | Gets or sets the Node associated with this vertex, if any.More... The value may be null if this vertex is a "dummy" vertex, not represented by a real Node in the Diagram. This property setter also sets the bounds and focus properties according to the value of the Node's actualBounds and its Part.locationObject's center point.
sourceEdges {Iterator.<E>} | This read-only property returns an iterator for all of the edges that come into this vertex.
sourceVertexes {Iterator.<V>} | This read-only property returns an iterator for all of the vertexes that are connected with edges coming into this vertex.
vertexes {Iterator.<V>} | This read-only property returns an iterator for all of the vertexes that are connected in either direction with this vertex.
width {number} | Gets or sets the width of this vertex.More... This is always the horizontal distance reserved for the node.
x {number} | Gets or sets the left point of this vertex.
y {number} | Gets or sets the top point of this vertex.

## Method Summary Details

Name, Return Type | Description
--- | ---

addDestinationEdge(edge)

Adds a LayoutEdge to the list of successors (the edge will be going out from this vertex).More... Calling this method does not modify the LayoutEdge.fromVertex of the LayoutEdge.

Parameters:
{E} edge

addSourceEdge(edge)

Adds a LayoutEdge to the list of predecessors (the edge will be coming into this vertex).More... Calling this method does not modify the LayoutEdge.toVertex of the LayoutEdge.

Parameters:
{E} edge

commit()

Moves the Node corresponding to this vertex so that its position is at the current bounds point.More...

To make the most common cases look right, the Node's Part.locationObject is centered. Thus iconic nodes will have the center of the icon be positioned according to the center of this vertex, ignoring any labels. Please read the Introduction page on Extensions for how to override methods and how to call this base method.

deleteDestinationEdge(edge)

Deletes a LayoutEdge from the list of successors (the edge was going out from this vertex).More... Calling this method does not modify the LayoutEdge.fromVertex of the LayoutEdge.

Parameters:
{E} edge

deleteSourceEdge(edge)

Deletes a LayoutEdge from the list of predecessors (the edge was coming into this vertex).More... Calling this method does not modify the LayoutEdge.toVertex of the LayoutEdge.

Parameters:
{E} edge

<static>
LayoutVertex.smartComparer(m, n)
{number}

This static function is used to compare the Part.text values of the nodes of the argument LayoutVertexes.More... If the text ends in a number, the values are compared as numbers rather than lexicographically. Naturally this comparison is significantly slower than LayoutVertex.standardComparer.

Parameters:
{LayoutVertex} m
{LayoutVertex} n

Returns:
{number} int -1, 0, or 1, depending on whether the comparison between M and N is less than, equal, or greater than.

<static>
LayoutVertex.standardComparer(m, n)
{number}

This static function is used to compare the Part.text values of the nodes of the argument LayoutVertexes.More... This just does a simple case-sensitive string comparison. Alternatively you may wish to use LayoutVertex.smartComparer or write your own comparison function.

Parameters:
{LayoutVertex} m
{LayoutVertex} n

Returns:
{number} int -1, 0, or 1, depending on whether the comparison between M and N is less than, equal, or greater than.