XMarkerListMaxDistance

MLModule
genre Marker
author Frank Heckel
package FMEstable/ReleaseMeVis
dll MLXMarkerUtilsStable
definition MLXMarkerUtilsStable.def
see also DistanceFromXMarkerList
keywords xmarker, marker, distance, measurement, OpenMP, SSE

Purpose

The module XMarkerListMaxDistance computes the maximum distance between all markers of an XMarkerList and shows the maximal maximum distance and the according positions.

The module outputs an XMarkerList containing one vector that spans between the computed maximal positions.

Details

Note that, if multiple threads are used, the result is not deterministic, i.e., different markers at different positions might be returned if multiple configurations exist with the same maximum distance and these configurations are processed by different threads. In this case, the result depends on the order in which the threads are executed.

Windows

Default Panel

../../../Modules/ML/MLXMarkerUtilsStable/mhelp/Images/Screenshots/XMarkerListMaxDistance._default.png

Input Fields

inXMarkerList

name: inXMarkerList, type: MLBase

Output Fields

outXMarkerList

name: outXMarkerList, type: MLBase

Parameter Fields

Field Index

Auto update: Bool Position (p2): Vector3
calculationTime: Float Update: Trigger
Code Path: Enum Use Local Array: Bool
Marker 1: Integer  
Marker 2: Integer  
Maximum Distance in mm: Float  
Num Threads: Integer  
Position (p1): Vector3  

Visible Fields

Maximum Distance in mm

name: maxDistance, type: Float, persistent: no

Shows the computed maximal distance in mm.

Position (p1)

name: p1, type: Vector3, persistent: no

Shows the first computed point of the computed maximum distance.

Position (p2)

name: p2, type: Vector3, persistent: no

Shows the second computed point of the computed maximum distance.

Marker 1

name: i1, type: Integer, persistent: no

Index of the first marker corresponding to the maximum distance.

Marker 2

name: i2, type: Integer, persistent: no

Index of the first marker corresponding to the maximum distance.

Update

name: update, type: Trigger

If pressed, the module computes the maximal distance anew.

Auto update

name: autoUpdate, type: Bool, default: FALSE

If checked, the module computes anew when its input changes.

Num Threads

name: numThreads, type: Integer, default: 2

Sets the number of used threads.

It is recommended to use as many threads as the CPU can process in hardware.

Code Path

name: codePath, type: Enum, default: SSE2

Defines where the maximum distance should be computed.

If SSE2 is not available on the system, the module switches automatically to FPU.

Values:

Title Name Description
Fpu FPU  
Sse2 SSE2

Streaming SIMD Extensions 2 should be used as default.

SSE2 is supported on Intel CPUs since Pentium 4 and on AMD CPUs since Athlon64.

Use Local Array

name: useLocalArray, type: Bool, default: TRUE

If checked, the module can compute more efficient if in SSE2 mode.

The positions of the markers in the XMarkerList are copied to a temporary local array which uses some additional memory but results in faster computation because of less cache misses and because the SSE2 code path can access this array more efficient than the values in the XMarkerList.

Hidden Fields

calculationTime

name: calculationTime, type: Float, default: 0