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.