Purpose

This module computes Dijkstra’s algorithm on the given cost image and finds the shortest path between the user-specific start and end points.

Usage

Connect a cost image (input0), set Start Point and End Point, and press Update.

Windows

Default Panel

../../../Projects/ShortestPath/Modules/mhelp/Images/Screenshots/ShortestPath._default.png

Input Fields

input0

name: input0, type: Image

The cost image. Negative values represent voxels that are ignored (masking).

Output Fields

output0

name: output0, type: Image

A mask image containing the shortest path.

outPathXMarkerList

name: outPathXMarkerList, type: MLBase

A marker list containing the positions along the shortest path. The markers are sorted from end to start point.

Parameter Fields

Field Index

Are outputs valid?: Bool Update: Trigger
Clear: Trigger  
End Point: Vector3  
Maximum Path Costs: Double  
Path Costs: Double  
Print Debug: Bool  
Should Use Edge Length Weighting: Bool  
Start Point: Vector3  

Visible Fields

Start Point

name: inStartPoint, type: Vector3, default: 0 0 0, deprecated name: startPoint

Start point for the path search.

End Point

name: inEndPoint, type: Vector3, default: 0 0 0, deprecated name: endPoint

End point for the path search.

Once Dijkstra’s algorithm has been computed for the start point, a path to the end point can be computed at low costs, so there is an auto-update in this field.

Maximum Path Costs

name: inMaximumPathCosts, type: Double, default: 0, deprecated name: maximumPathCosts

Maximal possible costs for a path. This parameter is used as an early-out for Dijkstra’s algorithm, i.e. paths exceeding the given value are ignored.

Should Use Edge Length Weighting

name: inUseEdgeWeighting, type: Bool, default: FALSE, deprecated name: edgeWeighting

If checked, the cost are weighted according to how the path crosses the voxel. Use this to avoid staircase effects.

If not checked, only the voxel values are used as costs.

Path Costs

name: outPathCosts, type: Double, persistent: no

The total costs of the output path. If no path can be found, the cost will be infinity (inf).

Are outputs valid?

name: outIsValid, type: Bool, persistent: no

Indicates that the output is valid. If false, update needs to be triggered.

Update

name: update, type: Trigger

Compute Dijkstra’s algorithm using the image and the start point.

Clear

name: clear, type: Trigger

Clear internal data and invalidate outputs.