PCLCloudDistances¶
- MLModule¶
genre
author
package
dll
definition
see also
inherits from
keywords
Purpose¶
PCLCloudDistances calculates distances between two point clouds connected to inputPCLObject0 and inputPCLObject1, respectively. Point positions as well as indexes into related points in the point clouds are also provided for easy use of this information in other modules, or in order to forward it via field connections.
Currently two well known distances are calculated, the Hausdorff (see https://en.wikipedia.org/wiki/Hausdorff_distance) and the minimum euclidean distance where two points, one in each point cloud, are searched with minimal distances. Note that for both distances the results are deterministically calculated, however not necessarily unique, because multiple solutions may exists depending on the point clouds fed into the module and on the order of points in them.
The complexity of PCLCloudDistances usually should be O(n*log(n)), however, it has not been investigated whether internally used k-d trees can degenerate for specific input point clouds and how that could influence the complexity.
Windows¶
Default Panel¶
Input Fields¶
inputPCLObject0¶
- name: inputPCLObject0, type: MLBase¶
The first of the two needed point clouds; must be valid and contain at least one point to make
Results Validvalid.
inputPCLObject1¶
- name: inputPCLObject1, type: MLBase¶
The second of the two needed point clouds; must be valid and contain at least one point to make
Results Validvalid.
Parameter Fields¶
Field Index¶
|
|
|
|
|
|
|
|
|
|
||
|
||
|
||
|
||
|
|
Visible Fields¶
Status¶
- name: status, type: String, persistent: no¶
see PCLModule.status
Input 0 to 1 (input0ToInput1Distance)¶
- name: input0ToInput1Distance, type: Float, persistent: no¶
The maximum possible distance of any point of
inputPCLObject0to the nearest point ofinputPCLObject1, valid only ifResults Validis on, otherwise -FLT_MAX.
Input 0 to 1 (input0ToInput1Index0)¶
- name: input0ToInput1Index0, type: Integer, persistent: no¶
The index of the (or a) farest point in
inputPCLObject0to a nearest one ininputPCLObject1(corresponding toInput 0 to 1), valid only ifResults Validis on, otherwise INT_MIN.
Input0To Input1Index1¶
- name: input0ToInput1Index1, type: Integer, persistent: no¶
The index of the (or one) nearest point in
inputPCLObject1to a the (or a) farest one ininputPCLObject0(corresponding toInput 0 to 1), valid only ifResults Validis on, otherwise INT_MIN.
Input 0 to 1 (input0ToInput1Position0)¶
- name: input0ToInput1Position0, type: Vector3, persistent: no¶
The position of the (or a) farest point in
inputPCLObject0to the (or a) nearest one ininputPCLObject1(corresponding toInput 0 to 1), valid only ifResults Validis on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Input0To Input1Position1¶
- name: input0ToInput1Position1, type: Vector3, persistent: no¶
The position of the (or a) nearest point in
inputPCLObject1to the (or a) farest one ininputPCLObject0(corresponding toInput 0 to 1), valid only ifResults Validis on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Input 1 To 0¶
- name: input1ToInput0Distance, type: Float, persistent: no¶
The maximum possible distance of any point of
inputPCLObject1to the (or a) nearest point ofinputPCLObject0, valid only ifResults Validis on, otherwise -FLT_MAX.
Input 1 to 0 (input1ToInput0Index0)¶
- name: input1ToInput0Index0, type: Integer, persistent: no¶
The index of the (or a) farest point in
inputPCLObject1to the (or a) nearest one ininputPCLObject0(corresponding toInput 1 To 0), or INT_32_MIN ifResults Validis off.
Input1To Input0Index1¶
- name: input1ToInput0Index1, type: Integer, persistent: no¶
The index of the (or a) nearest point in
inputPCLObject1to the (or a) farest one ininputPCLObject0(corresponding toInput 1 To 0), or INT_32_MIN ifResults Validis off.
Input 1 to 0 (input1ToInput0Position0)¶
- name: input1ToInput0Position0, type: Vector3, persistent: no¶
The position of the (or a) farest point in
inputPCLObject1to the (or a) nearest one ininputPCLObject0(corresponding toInput 1 To 0), valid only ifResults Validis on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Input1To Input0Position1¶
- name: input1ToInput0Position1, type: Vector3, persistent: no¶
The position of the (or a) nearest point in
inputPCLObject0to the (or a) farest one ininputPCLObject1(corresponding toInput 1 To 0), valid only ifResults Validis on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Hausdorff¶
- name: hausdorffDistance, type: Float, persistent: no¶
The Hausdorff distance of
inputPCLObject0andinputPCLObject0point clouds (which is the minimum ofInput 0 to 1andInput 0 to 1), see https://en.wikipedia.org/wiki/Hausdorff_distance , valid only ifResults Validis on, otherwise -FLT_MAX.
Input 01 Min (input01MinDistanceIndex0)¶
- name: input01MinDistanceIndex0, type: Integer, persistent: no¶
Index of a point of
inputPCLObject0representing one point from a pair with minimum possible distance betweeninputPCLObject0andinputPCLObject1; valid only ifResults Validis on, otherwise INT_32_MIN.
Input01Min Distance Index1¶
- name: input01MinDistanceIndex1, type: Integer, persistent: no¶
Index of a point of
inputPCLObject1representing one point from a pair with minimum possible distance betweeninputPCLObject0andinputPCLObject1; valid only ifResults Validis on, otherwise INT_32_MIN.
Input 01 Min (input01MinDistancePosition0)¶
- name: input01MinDistancePosition0, type: Vector3, persistent: no¶
Coordinates of the point with index
Input 01 Min, valid only ifResults Validis on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Input01Min Distance Position1¶
- name: input01MinDistancePosition1, type: Vector3, persistent: no¶
Coordinates of the point with index
Input01Min Distance Index1, valid only ifResults Validis on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Minimum¶
- name: minDistance, type: Float, persistent: no¶
The minimum possible distance between any point in
inputPCLObject0and any point ininputPCLObject1, valid only ifResults Validis on, otherwise -FLT_MAX.
Results Valid¶
- name: resultsValid, type: Bool, persistent: no¶
On after succeeded calculations, which means that output fields are valid, otherwise off.