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
19ML_START_NAMESPACE
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
201
203};
204
205ML_END_NAMESPACE
206
Project global and OS specific declarations.
#define MLPCLSUPPORT_EXPORT
If included by external modules, exported symbols are declared as import symbols.
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.
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.
unsigned int MLuint32
Definition mlTypeDefs.h:184
pcl::PolygonMesh MLPolygonMesh
The basic polygon type of a pcl::PolygonMesh used in the PCL MeVisLab binding.
Definition mlPCLTypes.h:111