MeVisLab Toolbox Reference
mlPCLObjectPtrsContainer.h File Reference

A container with pointers from the PCL (Point Cloud Library) passed in BaseObjects between PCL modules. More...

#include "MLPCLSupportSystem.h"
#include <mlPCLTypes.h>
#include <mlPCLTypesPrivate.h>

Go to the source code of this file.

Classes

struct  ml::MLPCLObjectPtrsContainer
 A container with pointers from the PCL (Point Cloud Library) passed in BaseObjects between PCL modules. More...

Namespaces

namespace  ml
 Defines the class GetTileJob.

Macros

#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(CODE, PTR_CONTAINER, FUNC, MULTI_PURPOSE_ARG)
 Macro instantiating code on all point cloud pointers in MLPCLObjectPtrsContainer.
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0(FUNC, POINT_CLOUD_POINTERS)
 calls
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_CONST_REF(FUNC, POINT_CLOUD_POINTERS)
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_AND_CALL_FOR_SELECTED_TYPE(FUNC, POINT_CLOUD_POINTERS, ENUM_SELECTOR)
 calls
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS(FUNC, POINT_CLOUD_POINTERS1, POINT_CLOUD_POINTERS2)
 calls
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF(FUNC, POINT_CLOUD_POINTERS1, POINT_CLOUD_POINTERS2)
 calls
#define ML_PCL_TEST_INTERFACE_NO_OVERRIDE(BASE_OBJECT_NAME)
 Implements a dedicated interface for PCL related modules which is required in automatic tests.
#define ML_PCL_TEST_INTERFACE(BASE_OBJECT_NAME)
 Implements a dedicated interface for PCL related modules which is required in automatic tests.

Functions

template<class MODULE_TYPE>
std::string ml::callSameTyped_filterT (MODULE_TYPE &mod, const std::string &successfullCalledFilterMessage="", const std::string &noValidPointCloudMessage="No input point clouds", const std::string &noInput1PointCloudMessage="No input 1 point cloud", const std::string &noInput2PointCloudMessage="No input 2 point cloud", const std::string &differentPointCloudMessage="Input point clouds do not have same point type")
 Helper function to call.
template<typename POINT_CLOUD_TYPE>
std::shared_ptr< const POINT_CLOUD_TYPE > ml::PCLMakeLocalNonDeletingSharedConstPtr (const POINT_CLOUD_TYPE &pntCloud)

Detailed Description

A container with pointers from the PCL (Point Cloud Library) passed in BaseObjects between PCL modules.

Author
"Wolf Spindler"
Date
2015-12-17

A container with pointers from the PCL (Point Cloud Library) passed in BaseObjects between PCL modules.

Definition in file mlPCLObjectPtrsContainer.h.

Macro Definition Documentation

◆ ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS

#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS ( FUNC,
POINT_CLOUD_POINTERS1,
POINT_CLOUD_POINTERS2 )
Value:
{ \
ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(_ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS, POINT_CLOUD_POINTERS1, FUNC, POINT_CLOUD_POINTERS2) \
}
#define _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS(PC_PTR_CONTAINER1, ML_PCL_TYPE_ARG, FUNC, POINT_CLOUD_POINTERS2)
Internal helper macro for instantiating code on all point cloud pointers in MLPCLObjectPtrsContainer.

calls

Implements the function typed over for all supported PCL point types in the MeVisLab binding. For example

MLPCLObjectPtrsContainer inputPointCloudPtrs1 = getInputPCLObjectPtrsContainer(0);
MLPCLObjectPtrsContainer inputPointCloudPtrs2 = getInputPCLObjectPtrsContainer(1);
if (inputPointCloudPtrs1.hasValidPointCloudPointer() && inputPointCloudPtrs2.hasValidPointCloudPointer()){
ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS(_filterT, inputPointCloudPtrs1, inputPointCloudPtrs2);
}
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS(FUNC, POINT_CLOUD_POINTERS1, POINT_CLOUD_POINTERS2)
calls
template <typename POINT_CLOUD_TYPE1_PTR, typename POINT_CLOUD_TYPE2_PTR>
void PCLCopy::_filterT(POINT_CLOUD_TYPE1_PTR &inputPointCloud1, POINT_CLOUD_TYPE2_PTR &inputPointCloud2);

Definition at line 196 of file mlPCLObjectPtrsContainer.h.

◆ ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF

#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF ( FUNC,
POINT_CLOUD_POINTERS1,
POINT_CLOUD_POINTERS2 )
Value:
{ \
ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(_ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF, POINT_CLOUD_POINTERS1, FUNC, POINT_CLOUD_POINTERS2) \
}
#define _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF(PC_PTR_CONTAINER1, ML_PCL_TYPE_ARG, FUNC, POINT_CLOUD_POINTERS2)
Same as _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS with the difference that FUNC should rece...

calls

Same as ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS with the difference that FUNC should receive pcl objects as const &. For example

MLPCLObjectPtrsContainer inputPointCloudPtrs1 = getInputPCLObjectPtrsContainer(0);
MLPCLObjectPtrsContainer inputPointCloudPtrs2 = getInputPCLObjectPtrsContainer(1);
if (inputPointCloudPtrs1.hasValidPointCloudPointer() && inputPointCloudPtrs2.hasValidPointCloudPointer()){
ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF(_filterT, inputPointCloudPtrs1, inputPointCloudPtrs2);
}
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF(FUNC, POINT_CLOUD_POINTERS1, POINT_CLOUD_POINTERS2)
calls
template <typename POINT_CLOUD_TYPE1, typename POINT_CLOUD_TYPE2>
void PCLCopy::_filterT(const POINT_CLOUD_TYPE1 &inputPointCloud1, const POINT_CLOUD_TYPE2 &inputPointCloud2);

Definition at line 218 of file mlPCLObjectPtrsContainer.h.

◆ ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES

#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES ( CODE,
PTR_CONTAINER,
FUNC,
MULTI_PURPOSE_ARG )
Value:
CODE(PTR_CONTAINER, pointCloudXYZ , FUNC, MULTI_PURPOSE_ARG) \
CODE(PTR_CONTAINER, pointCloudXYZLNormal , FUNC, MULTI_PURPOSE_ARG) \
CODE(PTR_CONTAINER, pointCloudXYZRGBNormal, FUNC, MULTI_PURPOSE_ARG) \
CODE(PTR_CONTAINER, pointCloudXYZINormal , FUNC, MULTI_PURPOSE_ARG)

Macro instantiating code on all point cloud pointers in MLPCLObjectPtrsContainer.

Definition at line 119 of file mlPCLObjectPtrsContainer.h.

◆ ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0

#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0 ( FUNC,
POINT_CLOUD_POINTERS )
Value:
#define ML_EMPTY_PARAM
Macro that expands to nothing.
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(CODE, PTR_CONTAINER, FUNC, MULTI_PURPOSE_ARG)
Macro instantiating code on all point cloud pointers in MLPCLObjectPtrsContainer.
#define _CODE_FOR_0_ARGS(PC_PTR_CONTAINER, ML_PCL_TYPE_ARG, FUNC, MULTI_PURPOSE_ARG)
Internal helper macro for ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0.

calls

Implements the function FUNC for all supported PCL point types in the MeVisLab binding and calls FUNC for pointers in POINT_CLOUD_POINTERS which are non nullptr. For example

ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0(_filterT, getInputPCLObjectPtrsContainer(0));
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0(FUNC, POINT_CLOUD_POINTERS)
calls
template <typename POINT_CLOUD_TYPE_PTR> void PCLModuleName::_filterT(POINT_CLOUD_TYPE_PTR inputPointCloudPtr);

Definition at line 141 of file mlPCLObjectPtrsContainer.h.

◆ ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_AND_CALL_FOR_SELECTED_TYPE

#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_AND_CALL_FOR_SELECTED_TYPE ( FUNC,
POINT_CLOUD_POINTERS,
ENUM_SELECTOR )
Value:
#define _CODE_FOR_0_ARGS_AND_CALL_FOR_SELECTED_TYPE(PC_PTR_CONTAINER, ML_PCL_TYPE_ARG, FUNC, MULTI_PURPOSE_ARG)
Internal helper macro for ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_AND_CALL_SELECTED.

calls

Implements the function for all supported PCL point types in the MeVisLab binding and calls FUNC for the pointer defined by ENUM_SELECTOR, even if the pointer is nullptr. For example

MLPCLObjectPtrsContainer outputPointCloudPtrs = getOutputPCLObjectPtrsContainer(0);
MLPCLPointTypeEnumerators selectedEnum = static_cast<MLPCLPointTypeEnumerators>(_outputPointCloudTypeFld->getEnumValue());
ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_AND_CALL_FOR_SELECTED_TYPE(_updateT, outputPointCloudPtrs, selectedEnum);
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_AND_CALL_FOR_SELECTED_TYPE(FUNC, POINT_CLOUD_POINTERS, ENUM_SELECTOR)
calls
template <typename POINT_CLOUD_PTR_TYPE> void PCLModuleName::_updateT(const POINT_CLOUD_PTR_TYPE inputPointCloudPtr);

Definition at line 175 of file mlPCLObjectPtrsContainer.h.

◆ ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_CONST_REF

#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_CONST_REF ( FUNC,
POINT_CLOUD_POINTERS )
Value:
#define _CODE_FOR_0_ARGS_CONST_REF(PC_PTR_CONTAINER, ML_PCL_TYPE_ARG, FUNC, MULTI_PURPOSE_ARG)
Same as _CODE_FOR_0_ARGS with the difference that FUNC should receive pcl objects as const &.

Same as ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0 with the difference that FUNC should receive pcl objects as const &. For example

ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_CONST_REF(_filterT, getInputPCLObjectPtrsContainer(0));
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_CONST_REF(FUNC, POINT_CLOUD_POINTERS)

calls

template <typename POINT_CLOUD_TYPE> void PCLModuleName::_filterT(const POINT_CLOUD_TYPE &inputPointCloud);

Definition at line 157 of file mlPCLObjectPtrsContainer.h.

◆ ML_PCL_TEST_INTERFACE

#define ML_PCL_TEST_INTERFACE ( BASE_OBJECT_NAME)
Value:
public:\
inline void selfTestPCLBaseClass(bool alsoCallDestroyClass=false) override \
{ \
PCLBaseObject::_checkRuntimeInterfaceResults(getClassTypeId(), \
getTypeId(), \
getTypeIdName(), \
alsoCallDestroyClass); \
}

Implements a dedicated interface for PCL related modules which is required in automatic tests.

Definition at line 326 of file mlPCLObjectPtrsContainer.h.

◆ ML_PCL_TEST_INTERFACE_NO_OVERRIDE

#define ML_PCL_TEST_INTERFACE_NO_OVERRIDE ( BASE_OBJECT_NAME)
Value:
public:\
virtual inline void selfTestPCLBaseClass(bool alsoCallDestroyClass=false) \
{ \
PCLBaseObject::_checkRuntimeInterfaceResults(getClassTypeId(), \
getTypeId(), \
getTypeIdName(), \
alsoCallDestroyClass); \
}

Implements a dedicated interface for PCL related modules which is required in automatic tests.

Definition at line 313 of file mlPCLObjectPtrsContainer.h.