MNE-CPP  0.1.9
A Framework for Electrophysiology
geometrymultiplier.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef DISP3DLIB_GEOMETRYMULTIPLIER_H
37 #define DISP3DLIB_GEOMETRYMULTIPLIER_H
38 
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include "../../../disp3D_global.h"
44 
45 //=============================================================================================================
46 // QT INCLUDES
47 //=============================================================================================================
48 
49 #include <QSharedPointer>
50 #include <QPointer>
51 #include <Qt3DRender/QGeometryRenderer>
52 
53 //=============================================================================================================
54 // EIGEN INCLUDES
55 //=============================================================================================================
56 
57 //=============================================================================================================
58 // FORWARD DECLARATIONS
59 //=============================================================================================================
60 
61 namespace Qt3DRender {
62  class QGeometry;
63  class QBuffer;
64  class QAttribute;
65 }
66 
67 namespace Qt3DCore {
68  class QNode;
69 }
70 
71 namespace QtCore {
72  class QVector3D;
73  class QMatrix4x4;
74 }
75 
76 //=============================================================================================================
77 // DEFINE NAMESPACE DISP3DLIB
78 //=============================================================================================================
79 
80 namespace DISP3DLIB {
81 
82 //=============================================================================================================
83 // DISP3DLIB FORWARD DECLARATIONS
84 //=============================================================================================================
85 
86 //=============================================================================================================
94 class DISP3DSHARED_EXPORT GeometryMultiplier : public Qt3DRender::QGeometryRenderer
95 {
96  Q_OBJECT
97 
98 public:
99  typedef QSharedPointer<GeometryMultiplier> SPtr;
100  typedef QSharedPointer<const GeometryMultiplier> ConstSPtr;
102  //=========================================================================================================
106  explicit GeometryMultiplier(QSharedPointer<Qt3DRender::QGeometry> tGeometry,
107  Qt3DCore::QNode *tParent = nullptr);
108 
109  //=========================================================================================================
113  GeometryMultiplier(const GeometryMultiplier& other) = delete;
114 
115  //=========================================================================================================
119  GeometryMultiplier& operator =(const GeometryMultiplier& other) = delete;
120 
121  //=========================================================================================================
126 
127  //=========================================================================================================
134  void setTransforms(const QVector<QMatrix4x4> &tInstanceTansform);
135 
136  //=========================================================================================================
142  void setColors(const QVector<QColor> &tInstanceColors);
143 
144 private:
145  //=========================================================================================================
149  void init();
150 
151  //=========================================================================================================
158  QByteArray buildTransformBuffer(const QVector<QMatrix4x4> &tInstanceTransform);
159 
160  //=========================================================================================================
167  QByteArray buildColorBuffer(const QVector<QColor> &tInstanceColor);
168 
169  QSharedPointer<Qt3DRender::QGeometry> m_pGeometry;
170 
171  QPointer<Qt3DRender::QBuffer> m_pTransformBuffer;
172 
173  QPointer<Qt3DRender::QBuffer> m_pColorBuffer;
174 
175  QPointer<Qt3DRender::QAttribute> m_pTransformAttribute;
176 
177  QPointer<Qt3DRender::QAttribute> m_pColorAttribute;
178 };
179 
180 //=============================================================================================================
181 // INLINE DEFINITIONS
182 //=============================================================================================================
183 } // namespace DISP3DLIB
184 
185 #endif // DISP3DLIB_GEOMETRYMULTIPLIER_H
DISP3DLIB::GeometryMultiplier
Instaced based renderer.
Definition: geometrymultiplier.h:94
DISP3DLIB::GeometryMultiplier::SPtr
QSharedPointer< GeometryMultiplier > SPtr
Definition: geometrymultiplier.h:99
DISP3DLIB::GeometryMultiplier::ConstSPtr
QSharedPointer< const GeometryMultiplier > ConstSPtr
Definition: geometrymultiplier.h:100
DISP3DSHARED_EXPORT
#define DISP3DSHARED_EXPORT
Definition: disp3D_global.h:55