MeVisLab Toolbox Reference
mlPCLTypesPrivate.h File Reference

Internal macro implementations for specific type instantiations. More...

Go to the source code of this file.

Macros

#define _CODE_FOR_0_ARGS(PC_PTR_CONTAINER, ML_PCL_TYPE_ARG, FUNC, MULTI_PURPOSE_ARG)    if (PC_PTR_CONTAINER.ML_PCL_TYPE_ARG){ FUNC(PC_PTR_CONTAINER.ML_PCL_TYPE_ARG); }
 Internal helper macro for ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0. More...
 
#define _CODE_FOR_0_ARGS_CONST_REF(PC_PTR_CONTAINER, ML_PCL_TYPE_ARG, FUNC, MULTI_PURPOSE_ARG)    if (PC_PTR_CONTAINER.ML_PCL_TYPE_ARG){ FUNC(*PC_PTR_CONTAINER.ML_PCL_TYPE_ARG); }
 Same as _CODE_FOR_0_ARGS with the difference that FUNC should receive pcl objects as const &. More...
 
#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. More...
 
#define _CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, PC_PTR2, FUNC, PC_PTR_CONTAINER2)    if (PC_PTR1 && PC_PTR2){ FUNC(PC_PTR1, PC_PTR2); }
 Internal helper macro for instantiating code on all point cloud pointer combinations in MLPCLObjectPtrsContainer. More...
 
#define _CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, PC_PTR2, FUNC, PC_PTR_CONTAINER2)    if (PC_PTR1 && PC_PTR2){ FUNC(*PC_PTR1, *PC_PTR2); }
 Same as _CODE_FOR_CROSS_IMPLEMENTATION with the difference that FUNC should receive pcl objects as const &. More...
 
#define _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(PC_PTR1, FUNC, POINT_CLOUD_POINTERS2)
 Internal helper macro for instantiating code on all point cloud pointer combinations in MLPCLObjectPtrsContainer. More...
 
#define _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_CONST_REF(PC_PTR1, FUNC, POINT_CLOUD_POINTERS2)
 Same as _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES with the difference that FUNC should receive pcl objects as const &. More...
 
#define _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS(PC_PTR_CONTAINER1, ML_PCL_TYPE_ARG, FUNC, POINT_CLOUD_POINTERS2)    _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(PC_PTR_CONTAINER1.ML_PCL_TYPE_ARG, FUNC, POINT_CLOUD_POINTERS2)
 Internal helper macro for instantiating code on all point cloud pointers in MLPCLObjectPtrsContainer. More...
 
#define _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF(PC_PTR_CONTAINER1, ML_PCL_TYPE_ARG, FUNC, POINT_CLOUD_POINTERS2)    _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_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 receive pcl objects as const &. More...
 

Functions

template<typename T >
void _MLPCLNoObjectDeleter (const T *)
 A dummy function passed to the creation of shared pointers which shall not delete the object passed to them; see makeLocalNonDeletingSharedConstPtr and use this only with extreme care! More...
 

Detailed Description

Internal macro implementations for specific type instantiations.

Author
"Wolf Spindler"
Date
2015-12-21

Internal macro implementations for specific type instantiations.

Definition in file mlPCLTypesPrivate.h.

Macro Definition Documentation

◆ _CODE_FOR_0_ARGS

#define _CODE_FOR_0_ARGS (   PC_PTR_CONTAINER,
  ML_PCL_TYPE_ARG,
  FUNC,
  MULTI_PURPOSE_ARG 
)     if (PC_PTR_CONTAINER.ML_PCL_TYPE_ARG){ FUNC(PC_PTR_CONTAINER.ML_PCL_TYPE_ARG); }

Internal helper macro for ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0.

Definition at line 17 of file mlPCLTypesPrivate.h.

◆ _CODE_FOR_0_ARGS_AND_CALL_FOR_SELECTED_TYPE

#define _CODE_FOR_0_ARGS_AND_CALL_FOR_SELECTED_TYPE (   PC_PTR_CONTAINER,
  ML_PCL_TYPE_ARG,
  FUNC,
  MULTI_PURPOSE_ARG 
)
Value:
{ \
const MLPCLPointTypeEnumerators enumOfType = getEnumeratorOfPCLPointType(PC_PTR_CONTAINER.ML_PCL_TYPE_ARG); \
if (enumOfType == MULTI_PURPOSE_ARG) { FUNC(PC_PTR_CONTAINER.ML_PCL_TYPE_ARG); } \
}
MLPCLPointTypeEnumerators
Enumerator for the precompiled point types of the Point Cloud Library.
Definition: mlPCLTypes.h:35
MLPCLPointTypeEnumerators getEnumeratorOfPCLPointType(const pcl::PointXYZ &)
Returns the enumerator for a specific point type.
Definition: mlPCLTypes.h:119

Internal helper macro for ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_AND_CALL_SELECTED.

Definition at line 25 of file mlPCLTypesPrivate.h.

◆ _CODE_FOR_0_ARGS_CONST_REF

#define _CODE_FOR_0_ARGS_CONST_REF (   PC_PTR_CONTAINER,
  ML_PCL_TYPE_ARG,
  FUNC,
  MULTI_PURPOSE_ARG 
)     if (PC_PTR_CONTAINER.ML_PCL_TYPE_ARG){ FUNC(*PC_PTR_CONTAINER.ML_PCL_TYPE_ARG); }

Same as _CODE_FOR_0_ARGS with the difference that FUNC should receive pcl objects as const &.

Definition at line 21 of file mlPCLTypesPrivate.h.

◆ _CODE_FOR_CROSS_IMPLEMENTATION

#define _CODE_FOR_CROSS_IMPLEMENTATION (   PC_PTR1,
  PC_PTR2,
  FUNC,
  PC_PTR_CONTAINER2 
)     if (PC_PTR1 && PC_PTR2){ FUNC(PC_PTR1, PC_PTR2); }

Internal helper macro for instantiating code on all point cloud pointer combinations in MLPCLObjectPtrsContainer.

Definition at line 33 of file mlPCLTypesPrivate.h.

◆ _CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF

#define _CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF (   PC_PTR1,
  PC_PTR2,
  FUNC,
  PC_PTR_CONTAINER2 
)     if (PC_PTR1 && PC_PTR2){ FUNC(*PC_PTR1, *PC_PTR2); }

Same as _CODE_FOR_CROSS_IMPLEMENTATION with the difference that FUNC should receive pcl objects as const &.

Definition at line 37 of file mlPCLTypesPrivate.h.

◆ _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES

#define _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES (   PC_PTR1,
  FUNC,
  POINT_CLOUD_POINTERS2 
)
Value:
_CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZ , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
_CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZLNormal , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
_CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZRGBNormal, FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
_CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZINormal , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG)
#define _CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, PC_PTR2, FUNC, PC_PTR_CONTAINER2)
Internal helper macro for instantiating code on all point cloud pointer combinations in MLPCLObjectPt...

Internal helper macro for instantiating code on all point cloud pointer combinations in MLPCLObjectPtrsContainer.

Definition at line 42 of file mlPCLTypesPrivate.h.

◆ _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_CONST_REF

#define _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_CONST_REF (   PC_PTR1,
  FUNC,
  POINT_CLOUD_POINTERS2 
)
Value:
_CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZ , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
_CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZLNormal , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
_CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZRGBNormal, FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
_CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZINormal , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG)
#define _CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, PC_PTR2, FUNC, PC_PTR_CONTAINER2)
Same as _CODE_FOR_CROSS_IMPLEMENTATION with the difference that FUNC should receive pcl objects as co...

Same as _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES with the difference that FUNC should receive pcl objects as const &.

Definition at line 49 of file mlPCLTypesPrivate.h.

◆ _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS

#define _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS (   PC_PTR_CONTAINER1,
  ML_PCL_TYPE_ARG,
  FUNC,
  POINT_CLOUD_POINTERS2 
)     _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(PC_PTR_CONTAINER1.ML_PCL_TYPE_ARG, FUNC, POINT_CLOUD_POINTERS2)

Internal helper macro for instantiating code on all point cloud pointers in MLPCLObjectPtrsContainer.

Definition at line 56 of file mlPCLTypesPrivate.h.

◆ _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF

#define _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF (   PC_PTR_CONTAINER1,
  ML_PCL_TYPE_ARG,
  FUNC,
  POINT_CLOUD_POINTERS2 
)     _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_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 receive pcl objects as const &.

Definition at line 60 of file mlPCLTypesPrivate.h.

Function Documentation

◆ _MLPCLNoObjectDeleter()

template<typename T >
void _MLPCLNoObjectDeleter ( const T )

A dummy function passed to the creation of shared pointers which shall not delete the object passed to them; see makeLocalNonDeletingSharedConstPtr and use this only with extreme care!

Definition at line 70 of file mlPCLTypesPrivate.h.