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.
void handleNotification(Field *field) override
Handles field changes of the field field.
void activateAttachments() override
Updates internal state after changes of fields without field notifications.
PCLModule(int numImageInputs=0, int numImageOutputs=0, int numPCLInputs=0, int numPCLOutputs=0, bool createEnumAndNotify=false)
#define ML_MODULE_CLASS_HEADER(className)
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