Finds the direct or indirect neighbors of a given set of nodes.
Remarks
- A direct neighbor of a node is directly connected by an edge to that node.
- An indirect neighbor of a node is directly connected to another direct or indirect neighbor of a node.
Examples
// set up the algorithm to find both predecessors and successors
const algorithm = new Neighborhood({
maximumDistance: 2,
traversalDirection: TraversalDirection.BOTH
})
// run the algorithm
const result = algorithm.run(graph)
// highlight the neighbors
for (const node of result.neighbors) {
graph.setStyle(node, highlightNodeStyle)
}
Type Details
- yfiles module
- view-layout-bridge
- yfiles-umd modules
- view-layout-bridge
- Legacy UMD name
- yfiles.analysis.Neighborhood
See Also
Constructors
Creates a new Neighborhood instance.
Parameters
A map of options to pass to the method.
- startNodes - ItemCollection<INode>
A collection of nodes from which to start the search. This option sets the startNodes property on the created object.
- maximumDistance - number
The maximum distance from the startNodes to consider. This option sets the maximumDistance property on the created object.
- traversalDirection - TraversalDirection
A value indicating whether to follow only incoming, only outgoing, both only incoming and only outgoing, or any edges independent of their direction. This option sets the traversalDirection property on the created object.
- subgraphNodes - ItemCollection<INode>
The collection of nodes which define a subset of the graph for the algorithms to work on. This option sets the subgraphNodes property on the created object.
- subgraphEdges - ItemCollection<IEdge>
The collection of edges which define a subset of the graph for the algorithms to work on. This option sets the subgraphEdges property on the created object.
Properties
Gets or sets the maximum distance from the startNodes to consider.
Remarks
This is the maximum number of edges that will be followed b the search. A value of 1
will only include direct neighbors of startNodes, while higher values will include indirect neighbors as well. A value of 0
will not limit the maximum search distance.
Default is 0
.
Gets or sets a collection of nodes from which to start the search.
Remarks
Gets or sets the collection of edges which define a subset of the graph for the algorithms to work on.
Remarks
If nothing is set, all edges of the graph will be processed.
If only the excludes are set all edges in the graph except those provided in the excludes are processed.
Note that edges which start or end at nodes which are not in the subgraphNodes are automatically not considered by the algorithm.
ItemCollection<T> instances may be shared among algorithm instances and will be (re-)evaluated upon (re-)execution of the algorithm.
Examples
Gets or sets the collection of nodes which define a subset of the graph for the algorithms to work on.
Remarks
If nothing is set, all nodes of the graph will be processed.
If only the excludes are set all nodes in the graph except those provided in the excludes are processed.
ItemCollection<T> instances may be shared among algorithm instances and will be (re-)evaluated upon (re-)execution of the algorithm.
Examples
Gets or sets a value indicating whether to follow only incoming, only outgoing, both only incoming and only outgoing, or any edges independent of their direction.
Remarks
Methods
Finds neighbors of a set of nodes.
Parameters
A map of options to pass to the method.
- graph - IGraph
- The input graph to run the algorithm on.
Returns
Throws
- Exception({ name: 'InvalidOperationError' })
- If the algorithm can't create a valid result due to an invalid graph structure or wrongly configured properties.
Examples
// set up the algorithm to find both predecessors and successors
const algorithm = new Neighborhood({
maximumDistance: 2,
traversalDirection: TraversalDirection.BOTH
})
// run the algorithm
const result = algorithm.run(graph)
// highlight the neighbors
for (const node of result.neighbors) {
graph.setStyle(node, highlightNodeStyle)
}