user data for this node
Optional
uxraw (possibly undefined) x coordinate for a node
Optional
uyraw (possibly undefined) y coordinate for a node
view of ux that throws if ux is undefined
view of uy that throws if uy is undefined
an iterator over the leaves of the graph
The leaves are defined as a set of nodes such that every node in the graph is an ancestor of one of the leaves, an no leaf is an ancestor of any other leaf. It is guaranteed to include every node with no children, but one node in a cycle may be chosen if there is no unique leaf for that cycle.
the current implementation will return a minimal leaf set as long as target cycles contain a node with a single child.
the number of links to a specific node
an iterator over every node in the graph
Be careful not to modify the graph structure while iterating as any
modification, including adding or removing links, can change the behavior
of iteration giving unexpected results. If you want to guarantee
consistent iteration, allocating an array first with [...graph.nodes()]
will
ensure consistent iteration.
the number of links from a specific node
an iterator over the roots of the graph
The roots are defined as a set of nodes such that every node in the graph is a descendant of one of the roots, an no root is a descendant of any other root. It is guaranteed to include every node with no parents, but one node in a cycle may be chosen if there is no unique root for that cycle.
the current implementation will return a minimal root set as long as source cycles contain a node with a single parent.
split a graph into connected components
splits an iterable over a single node in each connected component
Since each node behaves like a graph of its connected component, this is equivalent with returning a graph of each connected component.
compute a topological order of the graph
If the graph can't be represented in topological order, this will try to minimize the number of edge inversions. Optimally minimizing inversions is np-complete, so this will only be approximate.
You can optionally specify a Rank accessor that defines a numerical rank for every node. Nodes with a lower rank will come before nodes of a higher rank even if that requires more edge inversions. Nodes without a rank are unconstrained.
Optional
rank: Rank<NodeDatum, LinkDatum>Generated using TypeDoc
a node in a graph
Nodes provide all the same interfaces that Graphs do in terms of node properties and iteration. When called on a node, the nodes behaves as a graph of just its connected component. Therefore new nodes will always be acyclic, connected, and not multi.
In addition, nodes also expose properties of their immediate neighborhoods, iterators and counts of nodes they directly touch.
This is the immutable version of MutGraphNode.