MeVisLab Toolbox Reference
mlPCLToInventor.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 
16 #include <mlPCLModule.h>
17 
18 // Some forwards to internally used classes.
19 class SoIndexedFaceSet;
20 class SoLineSet;
21 class SoPointSet;
22 class SoVertexProperty;
23 
24 ML_START_NAMESPACE
25 
26 //----------------------------------------------------------------------------------
28 //----------------------------------------------------------------------------------
30 {
31 public:
34 
36  ~PCLToInventor() override;
37 
38 protected:
40  void activateAttachments() override;
41 
43  void handleNotification (Field* field) override;
44 
45 private:
47  void _update();
48 
50  template <typename POINT_CLOUD_TYPE> void _updateT(const POINT_CLOUD_TYPE &/*inputPointCloud*/);
51 
53  void _updateT(const MLPolygonMesh &inputPolygonMesh);
54 
56  SoVertexProperty* _soVertexProperty;
57 
59  SoNodeField *_soVertexPropertyOutput;
60 
61 
63  SoPointSet* _soPointSet;
64 
66  SoNodeField *_soPointSetOutput;
67 
68 
70  SoIndexedFaceSet* _soIndexedFaceSet;
71 
73  SoNodeField *_soIndexedFaceSetOutput;
74 
75 
77  SoLineSet* _soLineSet;
78 
80  SoNodeField *_soLineSetOutput;
81 
82 
85  EnumField *_data012DestinationFld;
86 
88  EnumField *_normalBindingFld;
89 
92  EnumField *_data_n012DestinationFld;
93 
95  EnumField *_materialBindingFld;
96 
101  EnumField *_usedValueFld;
102 
109  EnumField *_mapValueToFld;
110 
113  EnumField *_whereToStoreValueFld;
114 
118  BoolField *_scaleFromInputRangeFld;
119 
123  FloatField *_inputRangeMinFld;
124 
128  FloatField *_inputRangeMaxFld;
129 
132 
135 };
136 
137 ML_END_NAMESPACE
138 
Project global and OS specific declarations.
#define MLPCL_InventorAdapters_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 an enumerated value.
Definition: mlFields.h:363
Base class for all fields used in the ML.
Definition: mlField.h:73
Field to encapsulate a float value.
Definition: mlFields.h:627
ML Module base class for algorithms from the Point Cloud Library (PCL).
Definition: mlPCLModule.h:26
ML Module class to convert the input pcl classes to Inventor SoVertexProperty, SoPointSet,...
void activateAttachments() override
Updates internal state after changes of fields without field notifications.
void handleNotification(Field *field) override
Handles field changes of the field field.
~PCLToInventor() override
Destroy all contents and unreferences the internally used inventor nodes.
PCLToInventor()
Creates a PCLToInventor module with one input connector for a PCLBaseObjectPtr.
Field to encapsulate a pointer to an SoNode instance of OpenInventor.
Definition: mlFields.h:1327
#define ML_MODULE_CLASS_HEADER(className)
Like ML_CLASS_HEADER for the usage of derived classes from Module.
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.
pcl::PolygonMesh MLPolygonMesh
The basic polygon type of a pcl::PolygonMesh used in the PCL MeVisLab binding.
Definition: mlPCLTypes.h:111