MeVisLab Toolbox Reference
mlPCLCompare.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#include "MLPCLSupportSystem.h"
16#include <mlPCLBaseObject.h>
17#include <mlPCLModule.h>
18
19ML_START_NAMESPACE
20
21//----------------------------------------------------------------------------------
23//----------------------------------------------------------------------------------
25{
26public:
30
31protected:
33 void activateAttachments() override;
34
36 void handleNotification (Field* field) override;
37
38private:
40 void _postIfNecessary(const std::string &report);
41
44 void _updateComparison(Field *field);
45
48 void _compare();
49
53 std::string _compareNonTyped(MLdouble epsilon,
54 const pcl::PCLHeader &header1,
55 const pcl::PCLHeader &header2,
56 MLPCLPointTypeEnumerators pointTypeEnum1,
57 MLPCLPointTypeEnumerators pointTypeEnum2,
58 uint32_t width1, uint32_t width2,
59 uint32_t height1, uint32_t height2,
60 bool isDense1, bool isDense2,
61 const Eigen::Vector4f &sorigin1,
62 const Eigen::Vector4f &sorigin2,
63 const Eigen::Quaternionf &sorientation1,
64 const Eigen::Quaternionf &sorientation2) const;
65
70 template <typename POINT_CLOUD_TYPE1, typename POINT_CLOUD_TYPE2>
71 void _updateComparisonT(const POINT_CLOUD_TYPE1 &inputPointCloud1,
72 const POINT_CLOUD_TYPE2 &inputPointCloud2);
73
76 template <typename POINT_CLOUD_TYPE0,
77 typename POINT_CLOUD_TYPE1>
78 std::string _comparePoints(const POINT_CLOUD_TYPE0 &inputPointCloud1,
79 const POINT_CLOUD_TYPE1 &inputPointCloud2,
80 double epsilon) const;
81
83 StringField *_reportFld;
84
87 BoolField *_postMLErrorFld;
88
90 DoubleField *_epsilonFld;
91
93 BoolField *_compareTypesFld;
95 BoolField *_compareNumPointsFld;
97 BoolField *_compareWidthsFld;
99 BoolField *_compareHeightFld;
101 BoolField *_compareHeaderSeqFld;
103 BoolField *_compareHeaderStampFld;
105 BoolField *_compareHeaderFrameIdFld;
107 BoolField *_compareIsDenseFld;
109 BoolField *_compareSensorOriginFld;
111 BoolField *_compareSensorOrientationFld;
113 BoolField *_comparePointsDataMemberFld;
115 BoolField *_comparePointsOtherMembersFld;
116
120 BoolField *_testPassedFld;
121
123 std::string _noDifferencesString;
124
126 std::string _lastReport;
127
130
131
133};
134
135ML_END_NAMESPACE
136
Project global and OS specific declarations.
#define MLPCLSUPPORT_EXPORT
If included by external modules, exported symbols are declared as import symbols.
Field to encapsulate a boolean value.
Definition mlFields.h:56
Field to encapsulate a double value.
Definition mlFields.h:494
Base class for all fields used in the ML.
Definition mlField.h:73
ML Module class to compare two PCL point clouds and optionally to post ML errors for testing purposes...
void handleNotification(Field *field) override
Handles field changes of the field field.
PCLCompare()
Creates a PCLCompare module with two input connectors for two PCLBaseObjectPtr's pointing to point cl...
void activateAttachments() override
Updates internal state after changes of fields without field notifications.
ML Module base class for algorithms from the Point Cloud Library (PCL).
Definition mlPCLModule.h:26
Field to encapsulate a string value.
Definition mlFields.h:553
#define ML_MODULE_CLASS_HEADER(className)
Similar to ML_CLASS_HEADER for the usage of derived classes from Module.
Base object containing pointers (as MLPCLObjectPtrsContainer) to objects from the Point Cloud Library...
ML Module base class for algorithms from the Point Cloud Library (PCL).
#define ML_PCL_TEST_INTERFACE(BASE_OBJECT_NAME)
Implements a dedicated interface for PCL related modules which is required in automatic tests.
double MLdouble
Definition mlTypeDefs.h:216
MLPCLPointTypeEnumerators
Enumerator for the precompiled point types of the Point Cloud Library.
Definition mlPCLTypes.h:35