119#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(CODE, PTR_CONTAINER, FUNC, MULTI_PURPOSE_ARG) \
120 CODE(PTR_CONTAINER, pointCloudXYZ , FUNC, MULTI_PURPOSE_ARG) \
121 CODE(PTR_CONTAINER, pointCloudXYZLNormal , FUNC, MULTI_PURPOSE_ARG) \
122 CODE(PTR_CONTAINER, pointCloudXYZRGBNormal, FUNC, MULTI_PURPOSE_ARG) \
123 CODE(PTR_CONTAINER, pointCloudXYZINormal , FUNC, MULTI_PURPOSE_ARG)
141#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0(FUNC, POINT_CLOUD_POINTERS) \
142{ ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(_CODE_FOR_0_ARGS, POINT_CLOUD_POINTERS, FUNC, ML_EMPTY_PARAM) }
157#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_CONST_REF(FUNC, POINT_CLOUD_POINTERS) \
158{ ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(_CODE_FOR_0_ARGS_CONST_REF, POINT_CLOUD_POINTERS, FUNC, ML_EMPTY_PARAM) }
175#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES_0_AND_CALL_FOR_SELECTED_TYPE(FUNC, POINT_CLOUD_POINTERS, ENUM_SELECTOR) \
176{ ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(_CODE_FOR_0_ARGS_AND_CALL_FOR_SELECTED_TYPE, POINT_CLOUD_POINTERS, FUNC, ENUM_SELECTOR) }
196#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS(FUNC, POINT_CLOUD_POINTERS1, POINT_CLOUD_POINTERS2) \
198 ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(_ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS, POINT_CLOUD_POINTERS1, FUNC, POINT_CLOUD_POINTERS2) \
218#define ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF(FUNC, POINT_CLOUD_POINTERS1, POINT_CLOUD_POINTERS2) \
220 ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPES(_ML_IMPLEMENT_FOR_SUPPORTED_POINT_TYPE_COMBINATIONS_CONST_REF, POINT_CLOUD_POINTERS1, FUNC, POINT_CLOUD_POINTERS2) \
245template <
class MODULE_TYPE>
253 std::string statusString =
"";
294#if PCL_VERSION_COMPARE(<, 1, 12, 0)
295template <
typename POINT_CLOUD_TYPE>
302template <
typename POINT_CLOUD_TYPE>
313#define ML_PCL_TEST_INTERFACE_NO_OVERRIDE(BASE_OBJECT_NAME) \
315 virtual inline void selfTestPCLBaseClass(bool alsoCallDestroyClass=false) \
317 PCLBaseObject::_checkRuntimeInterfaceResults(getClassTypeId(), \
320 alsoCallDestroyClass); \
326#define ML_PCL_TEST_INTERFACE(BASE_OBJECT_NAME) \
328 inline void selfTestPCLBaseClass(bool alsoCallDestroyClass=false) override \
330 PCLBaseObject::_checkRuntimeInterfaceResults(getClassTypeId(), \
333 alsoCallDestroyClass); \
Project global and OS specific declarations.
#define MLPCLSUPPORT_EXPORT
If included by external modules, exported symbols are declared as import symbols.
Internal macro implementations for specific type instantiations.
Basic types used in the MeVislab binding of the Point Cloud Library(PCL).
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
std::shared_ptr< const POINT_CLOUD_TYPE > PCLMakeLocalNonDeletingSharedConstPtr(const POINT_CLOUD_TYPE &pntCloud)
Many pcl filters and classes require a boost shared pointer to the point cloud to be processed,...
pcl::PointCloud< pcl::PointXYZRGBNormal >::Ptr MLPointCloudXYZRGBNormalPtr
The basic pointer type of a point cloud type used in the PCL MeVisLab binding.
pcl::PointCloud< pcl::PointXYZLNormal >::Ptr MLPointCloudXYZLNormalPtr
The basic pointer type of a point cloud type used in the PCL MeVisLab binding.
pcl::PointCloud< pcl::PointXYZ >::Ptr MLPointCloudXYZPtr
The basic pointer type of a point cloud type used in the PCL MeVisLab binding.
std::string 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.
pcl::PolygonMesh::Ptr MLPolygonMeshPtr
The basic pointer type of a pcl::PolygonMesh in the PCL MeVisLab binding.
pcl::PointCloud< pcl::PointXYZINormal >::Ptr MLPointCloudXYZINormalPtr
The basic pointer type of a point cloud type used in the PCL MeVisLab binding.
A container with pointers from the PCL (Point Cloud Library) passed in BaseObjects between PCL module...
void setPCLObjectPointer(MLPointCloudXYZLNormalPtr pcPtr)
bool hasValidPCLObjectPointer() const
Returns true if at least one of all PCL object pointer is valid.
MLPCLObjectPtrsContainer(MLPointCloudXYZRGBNormalPtr pcPtr)
MLPCLObjectPtrsContainer()
Default constructor initializing all pointers to defaults.
void setPCLObjectPointer(MLPointCloudXYZRGBNormalPtr pcPtr)
MLPolygonMeshPtr polygonMesh
Pointer to a pcl::Polygon mesh, see pcl::Polygon for details.
void setPCLObjectPointer(MLPointCloudXYZPtr pcPtr)
Setting a new container object clearing all other ones.
bool hasValidPolygonMeshPointer() const
Returns true if at least one of all polygon mesh pointers is valid.
MLPCLObjectPtrsContainer(MLPointCloudXYZPtr pcPtr)
Specific constructor for the given object type setting all other objects to nullptr.
void getPCLObjectPointer(MLPointCloudXYZPtr &pcPtr) const
Method returning the cloud pointer matching the given pointer type.
void setPCLObjectPointer(MLPolygonMeshPtr pMeshPtr)
void getPCLObjectPointer(MLPointCloudXYZRGBNormalPtr &pcPtr) const
MLPCLObjectPtrsContainer(MLPointCloudXYZINormalPtr pcPtr)
MLPCLObjectPtrsContainer(MLPointCloudXYZLNormalPtr pcPtr)
void getPCLObjectPointer(MLPointCloudXYZINormalPtr &pcPtr) const
MLPointCloudXYZRGBNormalPtr pointCloudXYZRGBNormal
Cloud with four floats x,y,z,data[3], or alternatively data[0]-data[3], and a normal of four floats n...
std::string getScalarMemberNameAsString(size_t memberIdx) const
From the first valid member pointer the memberIdx'th scalar member is returned as string,...
void clearPCLObjectPointers()
Sets all pointers to nullptr.
bool hasValidPointCloudPointer() const
Returns true if at least one of all point cloud pointers is valid.
MLPCLObjectPtrsContainer(MLPolygonMeshPtr pMeshPtr)
std::string getScalarMemberValueAsString(size_t pointIdx, size_t memberIdx) const
From the first valid pointer return the memberIdx'th scalar member as string, regardless of its types...
void setPCLObjectPointer(MLPointCloudXYZINormalPtr pcPtr)
MLPointCloudXYZPtr pointCloudXYZ
Cloud with four floats x,y,z,data[3], or alternatively data[0]-data[3], data[3] should usually be 1,...
MLPointCloudXYZLNormalPtr pointCloudXYZLNormal
Cloud with four floats x,y,z,data[3], or alternatively data[0]-data[3], and a normal of four floats n...
void getPCLObjectPointer(MLPointCloudXYZLNormalPtr &pcPtr) const
MLPointCloudXYZINormalPtr pointCloudXYZINormal
Cloud with four floats x,y,z,data[3], or alternatively data[0]-data[3], and a normal of four floats n...