MeVisLab Toolbox Reference
mlPCLTypesPrivate.h
Go to the documentation of this file.
1
// Copyright (c) Fraunhofer MEVIS, Germany. All rights reserved.
2
// **InsertLicense** code author="Wolf Spindler"
3
//----------------------------------------------------------------------------------
5
12
//----------------------------------------------------------------------------------
13
#pragma once
14
15
// 0: ------------------------------------------
17
#define _CODE_FOR_0_ARGS(PC_PTR_CONTAINER, ML_PCL_TYPE_ARG, FUNC, MULTI_PURPOSE_ARG) \
18
if (PC_PTR_CONTAINER.ML_PCL_TYPE_ARG){ FUNC(PC_PTR_CONTAINER.ML_PCL_TYPE_ARG); }
19
21
#define _CODE_FOR_0_ARGS_CONST_REF(PC_PTR_CONTAINER, ML_PCL_TYPE_ARG, FUNC, MULTI_PURPOSE_ARG) \
22
if (PC_PTR_CONTAINER.ML_PCL_TYPE_ARG){ FUNC(*PC_PTR_CONTAINER.ML_PCL_TYPE_ARG); }
23
25
#define _CODE_FOR_0_ARGS_AND_CALL_FOR_SELECTED_TYPE(PC_PTR_CONTAINER, ML_PCL_TYPE_ARG, FUNC, MULTI_PURPOSE_ARG) \
26
{ \
27
const MLPCLPointTypeEnumerators enumOfType = getEnumeratorOfPCLPointType(PC_PTR_CONTAINER.ML_PCL_TYPE_ARG); \
28
if (enumOfType == MULTI_PURPOSE_ARG) { FUNC(PC_PTR_CONTAINER.ML_PCL_TYPE_ARG); } \
29
}
30
31
// Cross implementation: ------------------------------------------
33
#define _CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, PC_PTR2, FUNC, PC_PTR_CONTAINER2) \
34
if (PC_PTR1 && PC_PTR2){ FUNC(PC_PTR1, PC_PTR2); }
35
37
#define _CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, PC_PTR2, FUNC, PC_PTR_CONTAINER2) \
38
if (PC_PTR1 && PC_PTR2){ FUNC(*PC_PTR1, *PC_PTR2); }
39
41
// Adapt this if a new PCL point type is integrated in the MeVisLab binding.
42
#define _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(PC_PTR1, FUNC, POINT_CLOUD_POINTERS2) \
43
_CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZ , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
44
_CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZLNormal , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
45
_CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZRGBNormal, FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
46
_CODE_FOR_CROSS_IMPLEMENTATION(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZINormal , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG)
47
49
#define _ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_CONST_REF(PC_PTR1, FUNC, POINT_CLOUD_POINTERS2) \
50
_CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZ , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
51
_CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZLNormal , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
52
_CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZRGBNormal, FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG) \
53
_CODE_FOR_CROSS_IMPLEMENTATION_CONST_REF(PC_PTR1, POINT_CLOUD_POINTERS2.pointCloudXYZINormal , FUNC, POINT_CLOUD_POINTERS2.ML_PCL_TYPE_ARG)
54
56
#define _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS(PC_PTR_CONTAINER1, ML_PCL_TYPE_ARG, FUNC, POINT_CLOUD_POINTERS2) \
57
_ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(PC_PTR_CONTAINER1.ML_PCL_TYPE_ARG, FUNC, POINT_CLOUD_POINTERS2)
58
60
#define _ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF(PC_PTR_CONTAINER1, ML_PCL_TYPE_ARG, FUNC, POINT_CLOUD_POINTERS2) \
61
_ML_CROSS_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_CONST_REF(PC_PTR_CONTAINER1.ML_PCL_TYPE_ARG, FUNC, POINT_CLOUD_POINTERS2)
62
63
64
//----------------------------------------------------------------------------------
68
//----------------------------------------------------------------------------------
69
template
<
typename
T>
70
void
_MLPCLNoObjectDeleter
(
const
T
*){}
71
T
@ T
Definition:
SoKeyGrabber.h:71
_MLPCLNoObjectDeleter
void _MLPCLNoObjectDeleter(const T *)
A dummy function passed to the creation of shared pointers which shall not delete the object passed t...
Definition:
mlPCLTypesPrivate.h:70
FMEstable
PCL
Projects
MLPCLSupport
Sources
mlPCLTypesPrivate.h
Generated by
1.9.1