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 
19 ML_START_NAMESPACE
20 
21 //----------------------------------------------------------------------------------
23 //----------------------------------------------------------------------------------
25 {
26 public:
29 
30 protected:
32  void activateAttachments() override;
33 
35  void handleNotification (Field* field) override;
36 
37 private:
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 
205 ML_END_NAMESPACE
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:62
Field to encapsulate a double value.
Definition: mlFields.h:806
Base class for all fields used in the ML.
Definition: mlField.h:73
Field to encapsulate an integer value.
Definition: mlFields.h:161
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:1000
Field to encapsulate a vector of 3 double values.
Definition: mlFields.h:1538
Field to encapsulate a vector of 4 double values.
Definition: mlFields.h:1650
#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.
unsigned int MLuint32
Definition: mlTypeDefs.h:191
pcl::PolygonMesh MLPolygonMesh
The basic polygon type of a pcl::PolygonMesh used in the PCL MeVisLab binding.
Definition: mlPCLTypes.h:111