Index
Enumerations
Interfaces
Types
Methods
Types
AStarResult
Type declaration
-
cost: number
The total cost of tranversing the path.
-
path: Array<Graph.Vertex<T>>
On success, contains the path of vertices.
-
status: Graph.AStarStatus
Whether the search was successful, timed out, or if there was no path found.
Edge
A weighted, directed connection between two vertices.
Type declaration
-
Readonly dst: Graph.Vertex<T>
The vertex at the destination of this edge.
-
Readonly src: Graph.Vertex<T>
The vertex at the source of this edge.
-
Readonly weight: number
The weight associated with this edge.
EdgeDescriptor
A descriptor for a graph edge. Used when adding edges to a graph.
Type declaration
-
dst: Graph.Vertex<T>
The destination vertex.
-
src: Graph.Vertex<T>
The source vertex.
-
Optional weight?: undefined | number
The weight of the edge.
Vertex
A node in the graph.
Type declaration
-
Readonly data: T
User data associated with the vertex.
-
Readonly edges
In: IterableIterator<Graph.Edge<T>> An iterable of all edges that have this vertex as its destination endpoint.
const vertex = graph.vertex('a'); for (const edgeIn of vertex.edgesIn) { console.log(`vertex "${edgeIn.dst.id}" has an edge coming in from a vertex "${edgeIn.src.id}"`); }
-
Readonly edges
Out: IterableIterator<Graph.Edge<T>> An iterable of all edges that have this vertex as its source endpoint.
const vertex = graph.vertex('a'); for (const edgeOut of vertex.edgesOut) { console.log(`vertex "${edgeOut.src.id}" has an edge going to a vertex "${edgeOut.dst.id}"`); }
-
Readonly id: string
The vertex's id.
-
Readonly neighbors: IterableIterator<Graph.Vertex<T>>
An iterable of all vertices that can be traversed to from this vertex.
const vertex = graph.vertex('a'); for (const neighbor of vertex.neighbors) { console.log(`vertex "${vertex.id}" shares an edge with "${neighbor.id}"); }
VertexDescriptor
A descriptor for a graph vertex. Used when adding vertices to a graph.
Type declaration
-
data: T
Any user data to be associated with this vertex
-
id: string
The id that can be used to lookup this vertex in the graph
VertexIdDescriptor
A descriptor for a graph vertex when no extra data will be associated with each vertex. Used when adding vertices to a graph.
Type declaration
-
id: string
The id that can be used to lookup this vertex in the graph
Methods
createAStarRunner
-
Introduced 3.1.55.2-34-ga9934ccd93
Create a "runner" for the A* algorithm around a
graph
, andstart
andend
vertices.The runner encapsulates the details of the graph and search, caches the results of A*, and provides a way to subscribe to potential changes in the path signifying that the results of [[Graph.AStarRunner.exec]] may have changed.
const graph = mpSdk.Graph.createDirectedGraph(); // ... setup graph vertices and edges const start = graph.vertex('start'); const end = graph.vertex('end'); const aStarRunner = mpSdk.Graph.createAStarRunner(graph, start, end); const result = aStarRunner.exec();
Type parameters
-
T
Parameters
-
graph: Graph.IDirectedGraph<T>
The graph to traverse
-
start: Graph.Vertex<T>
The start vertex.
-
end: Graph.Vertex<T>
The end vertex.
-
Optional options: Partial<Graph.SearchOptions<T>>
An optional
heuristic
function.
Returns Graph.IAStarRunner<T>
A runner for A* that can execute the search or be subscribed to.
-
createDirectedGraph
-
Introduced 3.1.55.2-34-ga9934ccd93
Create an empty graph data structure.
const graph = mpSdk.Graph.createDirectedGraph();
Type parameters
-
T
The type of any user data associated with each vertex in the graph.
Parameters
-
Optional onDispose: undefined | function
An optional callback to be called when IDirectedGraph.dispose is called
Returns Graph.IDirectedGraph<T>
-
The result of doing an A* search.