XMarkerShortestPath

MLModule

genre

Marker

author

Ola Friman

package

FMEwork/ReleaseMeVis

dll

MLXMarkerUtils

definition

MLXMarkerUtils.def

see also

TravelingSalesman, XMarkerListToCostGraph

keywords

dijkstra, marker, xmarker, shortest, optimal, path, route, sort, order

Purpose

The module XMarkerShortestPath performs a Dijsktra shortest path search on a graph where the vertices are defined by the XMarkers in an XMarkerList.

Details

The XMarkers in the input XMarkerList are used as vertices in a graph. The vertices are connected with edges if the spatial distances between the corresponding XMarkers lie between the max and min connection distances.

A weight equal to the squared spatial distance between the corresponding XMarkers is attached to each edge. The squared distance is chosen as weight to favor jumps between neighboring XMarkers and discourage larger jumps (i.e., it becomes cheaper to take two smaller steps than one large step).

The XMarkers closest to the given start and end points are supplied to a Dijkstra shortest path search and the output is an XMarkerList containing the XMarkers along the shortest path (ordered from start XMarker to end XMarker).

Windows

Default Panel

../../../Modules/ML/MLXMarkerUtils/mhelp/Images/Screenshots/XMarkerShortestPath._default.png

Input Fields

inputXMarkerList

name: inputXMarkerList, type: XMarkerList(MLBase)

The XMarkers in the input XMarkerList are used as vertices in a graph, see Details for more information.

For accessing this object via scripting, see the Scripting Reference: MLXMarkerListWrapper.

Output Fields

outputXMarkerList

name: outputXMarkerList, type: XMarkerList(MLBase)

The Dijkstra shortest path which is an XMarkerList containing the XMarkers along the shortest path (ordered from start XMarker to end XMarker), see Details for more information.

For accessing this object via scripting, see the Scripting Reference: MLXMarkerListWrapper.

Parameter Fields

Field Index

Add end point to list: Bool

Update: Trigger

Add start point to list: Bool

Auto update: Bool

Distance Exponent: Double

End Point: Vector3

Max Connection Distance: Float

Min Connection Distance: Float

Start Point: Vector3

Visible Fields

Update

name: updateButton, type: Trigger

If pressed, the module computes anew.

Auto update

name: autoUpdateToggle, type: Bool, default: FALSE

If checked, the module computes anew on any parameter or input change.

Start Point

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

Sets the starting point for the search for the shortest path.

End Point

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

Sets the ending point for the search for the shortest path.

Min Connection Distance

name: minConnectionDistance, type: Float, default: 0

Sets the minimum distance for computing neighboring markers.

Max Connection Distance

name: maxConnectionDistance, type: Float, default: 5

Sets the maximum distance for computing neighboring markers.

Distance Exponent

name: distanceExponent, type: Double, default: 1

Sets an explicit exponent for computing the distance weight.

Add end point to list

name: insertEndPoint, type: Bool, default: FALSE

If checked, the ending point is added as an XMarker to the list.

Add start point to list

name: insertStartPoint, type: Bool, default: FALSE

If checked, the starting point is added as an XMarker to the list.