Purpose

The PCLPointMemberArithmetic allows the selection of fields/members of the points in the input point cloud which shall be processed. Operation1 determines one of many arithmetic operations to be applied to the field/member values. Some of these operations modify the values and/or produce results written to the result fields in Result1 and/or Result2.

Windows

Default Panel

../../../Projects/MLPCLSupport/Modules/mhelp/Images/Screenshots/PCLPointMemberArithmetic._default.png

Input Fields

inputPCLObject0

name: inputPCLObject0, type: MLBase

Connect the point cloud which shall be processed by the module.

Output Fields

outputPCLObject0

name: outputPCLObject0, type: MLBase

Provides the result pcl::PointCloud if there is any, otherwise it will contain NULL output data. Regardless of the parameter settings this module still does not provide indices at the output base object. This may change in future.

Parameter Fields

Field Index

0 (activate00): Bool Valid (result1IsValid): Bool
0 (constant100): Double Valid (result2IsValid): Bool
0 (constant200): Double  
E0 -> All (set0ForAll1): Trigger  
E0 -> All (set0ForAll2): Trigger  
Operation1: Enum  
Scalar Constant: Double  
Status: String  

Visible Fields

Status

name: status, type: String, persistent: no

see PCLModule.status

Scalar Constant

name: scalarConstant, type: Double, default: 0

Scalar value used in some, however, not in all, operations.

0 (activate00)

name: activate00, type: Bool, default: FALSE

Activates the manipulation of the first member of each point in a point cloud, typically this is the x alias data[0] member.

0 (constant100)

name: constant100, type: Double, default: 0

This is the first constant used by some operations to manipulate of the first member of each point in a point cloud if it is enabled by 0.

0 (constant200)

name: constant200, type: Double, default: 0

This is the second constant used by some operations to manipulate of the first member of each point in a point cloud if it is enabled by 0.

E0 -> All (set0ForAll1)

name: set0ForAll1, type: Trigger

Copies the value of entry 0 into all other fields of Constant1.

E0 -> All (set0ForAll2)

name: set0ForAll2, type: Trigger

Copies the value of entry 0 into all other fields of Constant2.

Operation1

name: operation1, type: Enum, default: NoOperation(Copy)

The operation to be applied to the members of the points of the point cloud. Divisions by zero are usually handled by using +/- FLOAT_MAX as result to avoid invalid operations.

Values:

Title Name Description
Set Scalar Constant SetScalarConstant For each activated member fields in all points: The member values are set to Scalar Constant.
Add Scalar Constant AddScalarConstant For each activated member fields in all points: Scalar Constant is added to the member values.
Add Constant1 AddConstant1 For each activated member fields in all points: The corresponding value of Constant1 is added to the member values.
Subtract Scalar Constant SubtractScalarConstant For each activated member fields in all points: Scalar Constant is subtracted from the member values.
Subtract Constant1 SubtractConstant1 For each activated member fields in all points: The corresponding value of Constant1 is subtracted from the member values.
Mult With Scalar Constant MultWithScalarConstant For each activated member fields in all points: The member values are multiplied with Scalar Constant.
Mult With Constant1 MultWithConstant1 For each activated member fields in all points: The member values are multiplied with their corresponding values of Constant1.
Divide By Scalar Constant DivideByScalarConstant For each activated member fields in all points: The member values are multiplied Scalar Constant.
Divide By Constant1 DivideByConstant1 For each activated member fields in all points: The member values are divided by their corresponding values of Constant1.
Mult With Constant1And Add Constant2 MultWithConstant1AndAddConstant2 For each activated member fields in all points: The member values are multiplied with their corresponding values from Constant1 and then the value from the corresponding Constant2 field is added.
Average Average For each activated member field the average in all points is calculated and written into the corresponding Result1 field.
Min Max To Result1And Result2 MinMaxToResult1AndResult2 For each activated member field the minimum and maximum value in all points is calculated; the minimum is written into the corresponding Result1 field, the maximum into the corresponding Result2 field.
Normalize Inside Of Min Max Range NormalizeInsideOfMinMaxRange

For all activated member values in all points: Scales the member values from their range to another range given in Constant1 and Constant2.

In the first step is does the same as MinMaxToResult1AndResult2: For each activated member field the minimum and maximum value in all points is calculated; the minimum is written into the corresponding Result1 field, the maximum into the corresponding Result2 field. In the second step it scales the value of the activated field relative to its found min/max range to [0,1]. In the third step it scales it from the [0,1] range to the range given by its corresponding meber values in Constant1 and Constant2.

No Operation(Copy) NoOperation(Copy)  

Valid (result1IsValid)

name: result1IsValid, type: Bool, persistent: no

Valid (result2IsValid)

name: result2IsValid, type: Bool, persistent: no