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.
Input Fields¶
Output Fields¶
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.
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. |