CostGraphGenericCostPlugin

MLModule

author

Christian Schumann

package

FMEstable/ReleaseMeVis

dll

MLCostGraph

definition

MLCostGraph.def

see also

XMarkerListToCostGraph, CostGraphCheapestPath, CostGraphEdgeLengthCostPlugin

keywords

Dijkstra

Purpose

Plugin for edge cost computation for the XMarkerListToCostGraph module based on simple combination of selectable cost terms resulting from marker properties.

Usage

Connect to a XMarkerListToCostGraph module and adjust the parameters to your needs. There is no update mechanism in this module. The fields are treated like fields of the XMarkerListToCostGraph and trigger an update in that module if its onInputChangeBehavior is set to update. More complex costs can be modeled using additional instances and connecting them via the inEdgeCostsPlugin fields.

Tips

You should not deactivate filtering for large XMarkerLists as the resulting cost graph would have to many edges.

This plugin has a certain overhead due to all its options. It should be mainly used for prototyping. If you determined a suited cost term or a combination of multiple terms, you should implement your own, problem specific plugin.

Windows

Default Panel

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

Input Fields

inEdgeCostsPlugin

name: inEdgeCostsPlugin, type: MLBase

Costs plugin module to compute additional costs.

Output Fields

outEdgeCostsPlugin

name: outEdgeCostsPlugin, type: MLBase

This connector just carries the plugin itself.

Parameter Fields

Field Index

Additional Cost Combination Mode: Enum

Interval Start: Double

Combination Mode: Enum

Use Absolute of Property: Bool

Edge Property: Enum

Use Inverse of Power: Bool

Enable: Bool

Exponent: Double

Factor: Double

Filter Mode: Enum

Interval End: Double

Visible Fields

Enable

name: enable, type: Bool, default: TRUE

Enables this plugin. If disabled, plugins connected to costPlugin are still evaluated.

Edge Property

name: edgeProperty, type: Enum, default: Edge Length

Defines which edge property is the basis for filtering and cost computation. Each candidate edge contains two points and two vectors associated with these points. The edge is defined as the vector pointing from the first point to the second point.

Values:

Title

Name

Description

​Edge Length

​Edge Length

​The length of an edge is used as the basis for cost computation.

​Vector Length

​Vector Length

​The lengths of the vectors are used as the basis for cost computation.

​Vector X

​Vector X

​The x-components of the two vectors are used as the basis for cost computation.

​Vector Y

​Vector Y

​The y-components of the two vectors are used as the basis for cost computation.

​Vector Z

​Vector Z

​The z-components of the two vectors are used as the basis for cost computation.

​Vector dot Edge

​Vector dot Edge

​The dot products between the two vectors and the edge are used as the basis for cost computation.

​Vector dot Edge Normalized

​Vector dot Edge Normalized

​The dot products between the two normalized vectors and the normalized edge are used as the basis for cost computation.

​Vector dot Vector

​Vector dot Vector

​The dot product between the two vectors is used as the basis for cost computation.

​Vector dot Vector Normalized

​Vector dot Vector Normalized

​The dot product between the two normalized vectors is used as the basis for cost computation.

​Marker Type

​Marker Type

​The marker types are used as the basis for cost computation.

Combination Mode

name: edgePropertyCombinationMode, type: Enum, default: First

If there are more than one of the selected properties (e.g. Edge Property is VectorLength, VectorDotEdge), this defines how to select from them or how to combine them.

Values:

Title

Name

Description

​First

​First

​The first of the two is used as the basis for cost computation.

​Second

​Second

​The second of the two is used as the basis for cost computation.

​Min

​Min

​The smaller of the two is used as the basis for cost computation.

​Max

​Max

​The larger of the two is used as the basis for cost computation.

​Average

​Average

​The average of the two is used as the basis for cost computation.

​Multiply

​Multiply

​The product of the two is used as the basis for cost computation.

​First / Second

​First / Second

​The first divided by the second is used as the basis for cost computation.

​Second / First

​Second / First

​The second divided by the first is used as the basis for cost computation.

​Max / Min

​Max / Min

​The larger divided by the smaller is used as the basis for cost computation.

​Min / Max

​Min / Max

​The smaller divided by the larger is used as the basis for cost computation.

Filter Mode

name: filterMode, type: Enum, default: Include

Defines if and how edges are filtered based on the selected (and combined) edge property.

Values:

Title

Name

Description

​Include

​Include

​Edges are only used if the selected property is within the defined interval.

​Exclude

​Exclude

​Edges are only used if the selected property is outside the defined interval.

​None

​None

​All edges are used.

Interval Start

name: filterIntervalStart, type: Double, default: 0

Defines the start of the filtering interval.

Interval End

name: filterIntervalEnd, type: Double, default: 0

Defines the end of the filtering interval.

Use Absolute of Property

name: costAbsolute, type: Bool, default: FALSE

If true, the absolute of the property is used for cost computation.

Use Inverse of Power

name: costInverse, type: Bool, default: FALSE

If true, the inverse of the power is used in the cost computation.

Exponent

name: costExponent, type: Double, default: 2

Exponent for the cost computation.

Factor

name: costFactor, type: Double, default: 1

Factor for the cost computation.

Additional Cost Combination Mode

name: additionalCostCombinationMode, type: Enum, default: None

Defines if and how additional costs (from a connected plugin) are used.

Values:

Title

Name

Description

​None

​None

​No additional costs are used.

​Multiply

​Multiply

​Additional costs are multiplied with the costs of this module.

​Divide

​Divide

​The costs of this module are divided by the additional costs. If the additional costs are 0, the edge is rejected.

​Add

​Add

​Additional costs are added to the costs of this module.

​Subtract

​Subtract

​Additional costs are subtracted from the costs of this module.