MNE-CPP  0.1.9
A Framework for Electrophysiology
gpuinterpolationitem.h
Go to the documentation of this file.
1  //=============================================================================================================
36 #ifndef DISP3DLIB_GPUINTERPOLATIONITEM_H
37 #define DISP3DLIB_GPUINTERPOLATIONITEM_H
38 
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include "../../../../disp3D_global.h"
44 #include "../common/abstract3Dtreeitem.h"
45 
46 //=============================================================================================================
47 // QT INCLUDES
48 //=============================================================================================================
49 
50 #include <QSharedPointer>
51 #include <QPointer>
52 
53 //=============================================================================================================
54 // EIGEN INCLUDES
55 //=============================================================================================================
56 
57 #include <Eigen/SparseCore>
58 
59 //=============================================================================================================
60 // FORWARD DECLARATIONS
61 //=============================================================================================================
62 
63 namespace Qt3DRender {
64  class QComputeCommand;
65  class QBuffer;
66  class QAttribute;
67 }
68 
69 //=============================================================================================================
70 // DEFINE NAMESPACE DISP3DLIB
71 //=============================================================================================================
72 
73 namespace DISP3DLIB {
74 
75 //=============================================================================================================
76 // DISP3DLIB FORWARD DECLARATIONS
77 //=============================================================================================================
78 
79 class CustomMesh;
80 class GpuInterpolationMaterial;
81 
82 //=============================================================================================================
90 {
91  Q_OBJECT
92 
93 public:
94  typedef QSharedPointer<GpuInterpolationItem> SPtr;
95  typedef QSharedPointer<const GpuInterpolationItem> ConstSPtr;
97  //=========================================================================================================
105  explicit GpuInterpolationItem(Qt3DCore::QEntity* p3DEntityParent = Q_NULLPTR,
106  int iType = Data3DTreeModelItemTypes::GpuInterpolationItem,
107  const QString& text = "3D Plot");
108 
109  //=========================================================================================================
114 
115  //=========================================================================================================
123  virtual void initData(const Eigen::MatrixX3f &matVertices,
124  const Eigen::MatrixX3f &matNormals,
125  const Eigen::MatrixX3i &matTriangles);
126 
127  //=========================================================================================================
133  virtual void setInterpolationMatrix(QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrix);
134 
135  //=========================================================================================================
141  virtual void addNewRtData(const Eigen::VectorXf &tSignalVec);
142 
143  //=========================================================================================================
149  virtual void setThresholds(const QVector3D& tVecThresholds);
150 
151  //=========================================================================================================
157  virtual void setColormapType(const QString& tColormapType);
158 
159 protected:
160  //=========================================================================================================
168  virtual QByteArray buildInterpolationMatrixBuffer(QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrix);
169 
170  //=========================================================================================================
178  virtual QByteArray buildZeroBuffer(const uint tSize);
179 
182  QPointer<GpuInterpolationMaterial> m_pGPUMaterial;
184  QPointer<CustomMesh> m_pCustomMesh;
185  QPointer<Qt3DRender::QComputeCommand> m_pComputeCommand;
187  QPointer<Qt3DRender::QBuffer> m_pInterpolationMatBuffer;
188  QPointer<Qt3DRender::QBuffer> m_pOutputColorBuffer;
189  QPointer<Qt3DRender::QBuffer> m_pSignalDataBuffer;
190 };
191 
192 //=============================================================================================================
193 // INLINE DEFINITIONS
194 //=============================================================================================================
195 } // namespace DISP3DLIB
196 
197 #endif // DISP3DLIB_GPUINTERPOLATIONITEM_H
QPointer< Qt3DRender::QBuffer > m_pInterpolationMatBuffer
QPointer< Qt3DRender::QBuffer > m_pOutputColorBuffer
This item is used for signal interpolation with GPU support.
Provides the basic tree item.
QPointer< GpuInterpolationMaterial > m_pGPUMaterial
#define DISP3DSHARED_EXPORT
Definition: disp3D_global.h:55
QSharedPointer< GpuInterpolationItem > SPtr
QPointer< CustomMesh > m_pCustomMesh
QPointer< Qt3DRender::QBuffer > m_pSignalDataBuffer
QSharedPointer< const GpuInterpolationItem > ConstSPtr
QPointer< Qt3DRender::QComputeCommand > m_pComputeCommand