Path
Models the path between two vertices, which consists of a series of vertices connected by edges.
Extends
Methods
contains()
contains(
obj,doNotFuzzyMatchNodes?):boolean
Returns true if the path contains the given object (a node, group, port or edge), false otherwise.
Parameters
obj
Node/Port/Edge, or object id, of the element to test for.
doNotFuzzyMatchNodes?
boolean
By default, if you pass a node/group in to this method and the path passes through a port on that node/group, this method returns true. But if you set doNotFuzzyMatchNodes to true, then this method will return true only if the node/group itself is on the path.
Returns
boolean
True if Path contains the object, false otherwise.
deleteAll()
deleteAll():
void
Removes all vertices and edges in this path from the underlying Toolkit. This is an alias for deleteVertices, since deleting a vertex causes its edges to also be deleted.
Returns
void
deleteEdges()
deleteEdges():
void
Deletes, from the underlying model, all of the edges in this path.
Returns
void
deleteVertices()
deleteVertices():
void
Deletes, from the underlying model, all the nodes/groups in this path. As with the contains method, there is a special consideration here: if a path passes through ports on a node/group, then that node/group will be, for the purposes of this method, considered to be part of the path and it will be deleted. If you instead wish to delete only the ports in a path, use deletePorts. Note that this method will, of course, have the effect of also deleting all the edges, since the nodes/groups for those edges will no longer exist.
Returns
void
each()
each(
fn):void
Iterates through the path one step at a time. Each step consists of an object containing a vertex, and, for all entries except the first, an edge member, which supplies the Edge that links to the Vertex (which is why it is null for the first entry).
Parameters
fn
(i, p) => any
Function to call for each step.
Returns
void
eachEdge()
eachEdge(
fn):void
Invoke the given function on each edge in the dataset
Parameters
fn
(i, e) => void
Returns
void
Inherited from
eachGroup()
eachGroup(
fn):void
Invoke the given function on each group in the dataset
Parameters
fn
(i, e) => void
Returns
void
Inherited from
eachNode()
eachNode(
fn):void
Invoke the given function on each node in the dataset
Parameters
fn
(i, n) => void
Returns
void
Inherited from
eachVertex()
eachVertex(
fn):void
Invoke the given function on each vertex (node or group) in the dataset
Parameters
fn
(i, e) => void
Returns
void
Inherited from
exists()
exists():
boolean
Returns whether or not a given path exists.
Returns
boolean
True if path exists, false otherwise.
filter()
filter(
spec,includePartials?):any
Filter the dataset and return a filtered copy.
Parameters
spec
any
includePartials?
boolean
Returns
any
Inherited from
getAllEdgesFor()
getAllEdgesFor(
v):Edge[]
Gets all the edges in the path that are connected to the given vertex.
Parameters
v
Vertex to get edges for.
Returns
Edge[]
getCost()
getCost():
number
Gets the cost of the given path. Edges in VisuallyJs can have a cost associated with them (the default is 1), and so the cost of any given path is the sum of the cost of all of the edges in the path.
Returns
number
Total cost of the Path. Null if path does not exist.
getEdgeAt()
getEdgeAt(
idx):Edge
Gets the Edge at the given index in the Path.
Parameters
idx
number
Index of the Edge to retrieve. You can use negative numbers here: an index of -1 means get the last edge. An index of -2 means get the last but one. etc.
Returns
getEdgeCount()
getEdgeCount():
number
Counts the number of edges in the path. This may be zero, if the given path spec did not select a valid path in the model.
Returns
number
getNodeAt()
getNodeAt(
idx):Vertex
Gets the Vertex at the given index in the path.
Parameters
idx
number
Index of the vertex to retrieve.
Returns
vertex at the given index, or null if no vertex exists at the given index.
getVertex()
getVertex(
obj):Vertex
Retrieve the specified vertex from the path
Parameters
obj
Either a vertex ID or a node/group/port.
string | Vertex
Returns
A Vertex, if the given vertex is in the path, otherwise null.
getVertexCount()
getVertexCount():
number
Counts the number of vertices in the Path (including the start and end nodes/groups). Note that for the purposes of this calculation, a Port is considered a vertex, as is a Group.
Returns
number
getVertices()
getVertices():
Vertex[]
Get all the vertices in the path.
Returns
Vertex[]
isEmpty()
isEmpty():
boolean
Returns whether or not a given path is empty
Returns
boolean
True if path is empty, false otherwise.