MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
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#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
53#define QT_COMPATIBILITY_3D Qt3DRender
54#include <Qt3DRender/QGeometry>
55#include <Qt3DRender/QBuffer>
56#include <Qt3DRender/QAttribute>
57#else
58#define QT_COMPATIBILITY_3D Qt3DCore
59#include <Qt3DCore/QGeometry>
60#include <Qt3DCore/QBuffer>
61#include <Qt3DCore/QAttribute>
62#endif
63
64//=============================================================================================================
65// EIGEN INCLUDES
66//=============================================================================================================
67
68//=============================================================================================================
69// FORWARD DECLARATIONS
70//=============================================================================================================
71
72namespace Qt3DCore {
73 class QNode;
74}
75
76namespace QtCore {
77 class QVector3D;
78 class QMatrix4x4;
79}
80
81//=============================================================================================================
82// DEFINE NAMESPACE DISP3DLIB
83//=============================================================================================================
84
85namespace DISP3DLIB {
86
87//=============================================================================================================
88// DISP3DLIB FORWARD DECLARATIONS
89//=============================================================================================================
90
91//=============================================================================================================
99class DISP3DSHARED_EXPORT GeometryMultiplier : public Qt3DRender::QGeometryRenderer
100{
101 Q_OBJECT
102
103public:
104 typedef QSharedPointer<GeometryMultiplier> SPtr;
105 typedef QSharedPointer<const GeometryMultiplier> ConstSPtr;
107 //=========================================================================================================
111 explicit GeometryMultiplier(QSharedPointer<QT_COMPATIBILITY_3D::QGeometry> tGeometry,
112 Qt3DCore::QNode *tParent = nullptr);
113
114 //=========================================================================================================
119
120 //=========================================================================================================
124 GeometryMultiplier& operator =(const GeometryMultiplier& other) = delete;
125
126 //=========================================================================================================
131
132 //=========================================================================================================
139 void setTransforms(const QVector<QMatrix4x4> &tInstanceTansform);
140
141 //=========================================================================================================
147 void setColors(const QVector<QColor> &tInstanceColors);
148
149private:
150 //=========================================================================================================
154 void init();
155
156 //=========================================================================================================
163 QByteArray buildTransformBuffer(const QVector<QMatrix4x4> &tInstanceTransform);
164
165 //=========================================================================================================
172 QByteArray buildColorBuffer(const QVector<QColor> &tInstanceColor);
173
174 QSharedPointer<QT_COMPATIBILITY_3D::QGeometry> m_pGeometry;
175
176 QPointer<QT_COMPATIBILITY_3D::QBuffer> m_pTransformBuffer;
177
178 QPointer<QT_COMPATIBILITY_3D::QBuffer> m_pColorBuffer;
179
180 QPointer<QT_COMPATIBILITY_3D::QAttribute> m_pTransformAttribute;
181
182 QPointer<QT_COMPATIBILITY_3D::QAttribute> m_pColorAttribute;
183};
184
185//=============================================================================================================
186// INLINE DEFINITIONS
187//=============================================================================================================
188} // namespace DISP3DLIB
189
190#endif // DISP3DLIB_GEOMETRYMULTIPLIER_H
#define DISP3DSHARED_EXPORT
GeometryMultiplier(const GeometryMultiplier &other)=delete
QSharedPointer< GeometryMultiplier > SPtr
QSharedPointer< const GeometryMultiplier > ConstSPtr