XMarkerListToCostGraph

MLModule

author

Christian Schumann

package

FMEstable/ReleaseMeVis

dll

MLCostGraph

definition

MLCostGraph.def

see also

XMarkerShortestPath, CostGraphCheapestPath, CostGraphGenericCostPlugin, CostGraphEdgeLengthCostPlugin, CostGraphClosestVertex

keywords

Dijkstra, shortest, path

Purpose

Creates a cost graph based on the given input XMarkerList. Each possible pair of markers is evaluated based on the connected edge cost plugin. According to filter criteria, certain pairs are rejected. The remaining pairs are added as edges to the cost map. The cost for the edge is computed by the edge cost plugin. The output cost graph contains a boost graph (adjacency list) and can be used by BoostCostMapShortestPath.

Usage

Connect the XMarkerList to inXMarkerList. Select and connect a suited edge cost plugin (e.g. CostGraphEdgeLengthCostPlugin, CostGraphGenericCostPlugin) to inCostPlugin and connect the output to a CostGraphCheapestPath module.

Details

The complexity of the computations carried out by this module is O(n^2) where n is the number of markers in the input XMarkerList. It also depends on the implementation of the used cost plugin. However, it has to be updated only once. The plugin modules typically have no update mechanism. Any change in their fields is treated by this modules like a change of its own fields.

Windows

Default Panel

../../../Projects/MLCostGraph/Modules/mhelp/Images/Screenshots/XMarkerListToCostGraph._default.png

Input Fields

inXMarkerList

name: inXMarkerList, type: XMarkerList(MLBase)

Base field containing an input XMarker list.

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

inCostPlugin

name: inCostPlugin, type: CostGraphEdgeCostPlugin(MLBase)

ShortestPathCostsPlugin module for edge cost computation

Output Fields

outCostGraph

name: outCostGraph, type: CostGraph(MLBase)

Base field containing the output boost graph.

Parameter Fields

Field Index

[]: Trigger

Status Message: String

Clear: Trigger

Update: Trigger

doNotClearOnFailedUpdate: Bool

Has Valid Output: Bool

Number of Edges: Integer

Number of Vertices: Integer

On Input Change Behavior: Enum

Status Code: Enum

Visible Fields

Update

name: update, type: Trigger

Initiates update of all output field values.

Clear

name: clear, type: Trigger

Clears all output field values to a clean initial state.

On Input Change Behavior

name: onInputChangeBehavior, type: Enum, default: Clear, deprecated name: shouldAutoUpdate,shouldUpdateAutomatically

Declares how the module should react if a value of an input field changes.

Values:

Title

Name

Deprecated Name

​Update

​Update

​TRUE

​Clear

​Clear

​FALSE

Status Code

name: statusCode, type: Enum, persistent: no

Reflects module’s status (successful or failed computations) as one of some predefined enumeration values.

Values:

Title

Name

​Ok

​Ok

​Invalid input object

​Invalid input object

​Invalid input parameter

​Invalid input parameter

​Internal error

​Internal error

Status Message

name: statusMessage, type: String, persistent: no

Gives additional, detailed information about status code as human-readable message.

Has Valid Output

name: hasValidOutput, type: Bool, persistent: no

Indicates validity of output field values (success of computation).

[]

name: updateDone, type: Trigger, persistent: no

Notifies that an update was performed (Check status interface fields to identify success or failure).

Number of Vertices

name: outNumVertices, type: Integer, persistent: no

Number of vertices in the resulting cost map.

Number of Edges

name: outNumEdges, type: Integer, persistent: no

Number of edges in the resulting cost map.

Hidden Fields

doNotClearOnFailedUpdate

name: doNotClearOnFailedUpdate, type: Bool, persistent: no

Prevents automated clear after update failed. This does not affect status fields. It enables the developer to analyze module’s state after failure.