MNE-CPP  0.1.9
A Framework for Electrophysiology
abstractmeshtreeitem.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef DISP3DLIB_ABSTRACTMESHTREEITEM_H
37 #define DISP3DLIB_ABSTRACTMESHTREEITEM_H
38 
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include "../../../../disp3D_global.h"
44 #include "../common/abstract3Dtreeitem.h"
45 #include "../common/types.h"
46 
47 //=============================================================================================================
48 // QT INCLUDES
49 //=============================================================================================================
50 
51 #include <Qt3DRender/QGeometryRenderer>
52 #include <QPointer>
53 
54 //=============================================================================================================
55 // EIGEN INCLUDES
56 //=============================================================================================================
57 
58 //=============================================================================================================
59 // FORWARD DECLARATIONS
60 //=============================================================================================================
61 
62 namespace Qt3DCore {
63  class QEntity;
64 }
65 
66 namespace Qt3DRender {
67  class QMaterial;
68 }
69 
70 //=============================================================================================================
71 // DEFINE NAMESPACE DISP3DLIB
72 //=============================================================================================================
73 
74 namespace DISP3DLIB
75 {
76 
77 //=============================================================================================================
78 // DISP3DLIB FORWARD DECLARATIONS
79 //=============================================================================================================
80 
81 class MetaTreeItem;
82 class CustomMesh;
83 
84 //=============================================================================================================
91 {
92  Q_OBJECT
93 
94 public:
95  typedef QSharedPointer<AbstractMeshTreeItem> SPtr;
96  typedef QSharedPointer<const AbstractMeshTreeItem> ConstSPtr;
98  //=========================================================================================================
106  explicit AbstractMeshTreeItem(Qt3DCore::QEntity* p3DEntityParent = Q_NULLPTR,
107  int iType = Data3DTreeModelItemTypes::AbstractMeshItem,
108  const QString& text = "Abstract Mesh Item");
109 
110  //=========================================================================================================
114  virtual void setData(const QVariant& value, int role = Qt::UserRole + 1);
115 
116  virtual void setMaterial(Qt3DRender::QMaterial *pMaterial);
117 
118  //=========================================================================================================
128  void setMeshData(const Eigen::MatrixX3f& tMatVert,
129  const Eigen::MatrixX3f& tMatNorm,
130  const Eigen::MatrixXi& tMatTris,
131  const Eigen::MatrixX4f &tMatColors,
132  Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType = Qt3DRender::QGeometryRenderer::Triangles);
133 
134  //=========================================================================================================
140  virtual QPointer<CustomMesh> getCustomMesh();
141 
142  //=========================================================================================================
150  virtual void setVertColor(const Eigen::MatrixX4f &vertColor);
151 
152 protected:
153  //=========================================================================================================
157  virtual void initItem();
158 
159  //=========================================================================================================
165  virtual void onSurfaceTessInnerChanged(const QVariant& fTessInner);
166 
167  //=========================================================================================================
173  virtual void onSurfaceTessOuterChanged(const QVariant& fTessOuter);
174 
175  //=========================================================================================================
181  virtual void onSurfaceTriangleScaleChanged(const QVariant& fTriangleScale);
182 
183  //=========================================================================================================
189  virtual void onColorChanged(const QVariant& color);
190 
191  //=========================================================================================================
197  virtual void onSurfaceMaterialChanged(const QVariant& sMaterial);
198 
199  QPointer<Qt3DRender::QMaterial> m_pMaterial;
200  QPointer<CustomMesh> m_pCustomMesh;
202 signals:
203 };
204 } //NAMESPACE DISP3DLIB
205 
206 #endif // DISP3DLIB_ABSTRACTMESHTREEITEM_H
QSharedPointer< const AbstractMeshTreeItem > ConstSPtr
Provides a generic mesh tree item.
QSharedPointer< AbstractMeshTreeItem > SPtr
Provides the basic tree item.
#define DISP3DSHARED_EXPORT
Definition: disp3D_global.h:55
QPointer< CustomMesh > m_pCustomMesh
QPointer< Qt3DRender::QMaterial > m_pMaterial