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
 Main documentation file for ML users and developers.
 

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)   { ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(_CODE_FOR_0_ARGS, POINT_CLOUD_POINTERS, FUNC, ML_EMPTY_PARAM) }
 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.
 
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_CONST_REF(FUNC, POINT_CLOUD_POINTERS)   { ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(_CODE_FOR_0_ARGS_CONST_REF, POINT_CLOUD_POINTERS, FUNC, ML_EMPTY_PARAM) }
 Same as ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0 with the difference that FUNC should receive pcl objects as const &.
 
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_AND_CALL_FOR_SELECTED_TYPE(FUNC, POINT_CLOUD_POINTERS, ENUM_SELECTOR)   { ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(_CODE_FOR_0_ARGS_AND_CALL_FOR_SELECTED_TYPE, POINT_CLOUD_POINTERS, FUNC, ENUM_SELECTOR) }
 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.
 
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS(FUNC, POINT_CLOUD_POINTERS1, POINT_CLOUD_POINTERS2)
 Implements the function typed over for all supported PCL point types in the MeVisLab binding.
 
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF(FUNC, POINT_CLOUD_POINTERS1, POINT_CLOUD_POINTERS2)
 Same as ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS with the difference that FUNC should receive pcl objects as const &.
 
#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_TYPEml::PCLMakeLocalNonDeletingSharedConstPtr (const POINT_CLOUD_TYPE &pntCloud)
 Many pcl filters and classes require a boost shared pointer to the point cloud to be processed, which however, sometimes is not available, but only a constant reference.
 

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:
{ \
}
#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.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.

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()){
}
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS(FUNC, POINT_CLOUD_POINTERS1, POINT_CLOUD_POINTERS2)
Implements the function typed over for all supported PCL point types in the MeVisLab binding.

calls

template <typename POINT_CLOUD_TYPE1_PTR, typename POINT_CLOUD_TYPE2_PTR>

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:
{ \
}
#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...

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()){
}
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF(FUNC, POINT_CLOUD_POINTERS1, POINT_CLOUD_POINTERS2)
Same as ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS with the difference that FUNC should recei...

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, 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

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)
Implements the function FUNC for all supported PCL point types in the MeVisLab binding and calls FUNC...

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

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());
#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_AND_CALL_FOR_SELECTED_TYPE(FUNC, POINT_CLOUD_POINTERS, ENUM_SELECTOR)
Implements the function for all supported PCL point types in the MeVisLab binding and calls FUNC for ...

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

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)
Same as ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0 with the difference that FUNC should receive pcl obj...

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:\
{ \
PCLBaseObject::_checkRuntimeInterfaceResults(getClassTypeId(), \
getTypeId(), \
}

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(), \
}

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

Definition at line 313 of file mlPCLObjectPtrsContainer.h.