ShortestPath

MLModule

author

Joachim Georgii

package

FMEwork/ReleaseMeVis

dll

MLShortestPath

definition

MLShortestPath.def

see also

XMarkerShortestPath, TravelingSalesman

keywords

Dijkstra, short, shortest, path

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.