MeVisLab Toolbox Reference
mlPCLInfo.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:
29
30protected:
32 void activateAttachments() override;
33
35 void handleNotification (Field* field) override;
36
37private:
39 void _resetOutputFields();
40
42 void _updateFieldStates();
43
45 void _updateHeaderFieldState(const pcl::PCLHeader &header);
46
48 void _updateWidthHeightIsDenseFieldState(MLuint32 width,
49 MLuint32 height,
50 bool isDense);
51
53 void _updateFieldStates(const MLPolygonMesh &inputPolygonMesh);
54
56 void _updateIndexFieldStates();
57
59 template <typename POINT_CLOUD_TYPE> void _updateFieldStatesT(const POINT_CLOUD_TYPE &inputPointCloud);
60
62 StringField *_pclObjectTypeFld;
63
65 IntField *_numberOfPointsFld;
66
68 IntField *_widthFld;
69
71 IntField *_heightFld;
72
74 IntField *_seqFld;
75
77 IntField *_stampFld;
78
80 StringField *_frameIdFld;
81
83 BoolField *_isOrganizedFld;
84
86 BoolField *_isDenseFld;
87
89 Vector4Field*_sensorOriginFld;
90
92 Vector4Field*_sensorOrientationFld;
93
96 Vector3Field*_boundingBoxV1Fld;
97 Vector3Field*_boundingBoxV2Fld;
99
101 DoubleField *_minimumFld;
102
104 DoubleField *_maximumFld;
105
107 DoubleField *_averageFld;
108
110 DoubleField *_sumFld;
111
113 DoubleField *_sumAbsoluteFld;
114
116 DoubleField *_medianFld;
117
119 IntField *_indexOfFirstPointFld;
120
122 IntField *_maxNumShownPointsFld;
123
125 BoolField *_showPointIndicesFld;
126
128 IntField *_numDecimalPlacesFld;
129
131 StringField *_pointsPrintFormatFld;
132
133 // PointCloud2 members:
135 IntField *_isBigEndianFld;
136
138 StringField *_fieldsFld;
139
141 IntField *_pointStepFld;
142
144 IntField *_rowStepFld;
145
147 IntField *_indexOfFirstVertexFld;
148
150 IntField *_maxNumShownVertexFld;
151
153 BoolField *_showVertexIndicesFld;
154
156 IntField *_numberOfVerticesFld;
157
159 StringField *_verticesFld;
160
161 // End of PointCloud2 members.
162
163 // Indices related fields.
165 IntField *_indexOfFirstIndexFld;
166
168 IntField *_maxNumShownIndexFld;
169
171 BoolField *_showIndexIndicesFld;
172
174 IntField *_numberOfIndicesFld;
175
177 StringField *_indicesFld;
178
179
181 StringField *_pointStructureFld;
182
184 StringField *_pointsFld;
185
188 IntField *_pointSliderStartMaximumFld;
189
192 IntField *_vertexSliderStartMaximumFld;
193
196 IntField *_indexSliderStartMaximumFld;
197
200
203};
204
206
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
Field to encapsulate an integer value.
Definition mlFields.h:126
ML Module class to display information about a connected point cloud.
Definition mlPCLInfo.h:25
PCLInfo()
Creates a PCLInfo module with one input connector for a PCLBaseObjectPtr.
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.
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
Field to encapsulate a vector of 3 double values.
Definition mlFields.h:1103
Field to encapsulate a vector of 4 double values.
Definition mlFields.h:1171
#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.
unsigned int MLuint32
Definition mlTypeDefs.h:185
pcl::PolygonMesh MLPolygonMesh
The basic polygon type of a pcl::PolygonMesh used in the PCL MeVisLab binding.
Definition mlPCLTypes.h:111