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
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,
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,
73
76 template <typename POINT_CLOUD_TYPE0,
77 typename POINT_CLOUD_TYPE1>
78 std::string _comparePoints(const POINT_CLOUD_TYPE0 &inputPointCloud1,
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
133};
134
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:58
Field to encapsulate a double value.
Definition mlFields.h:538
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:610
#define ML_MODULE_CLASS_HEADER(className)
Like 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.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
double MLdouble
Definition mlTypeDefs.h:217
MLPCLPointTypeEnumerators
Enumerator for the precompiled point types of the Point Cloud Library.
Definition mlPCLTypes.h:35