MNE-CPP  0.1.9
A Framework for Electrophysiology
abstractphongalphamaterial.h
Go to the documentation of this file.
1 //=============================================================================================================
35 #ifndef DISP3DLIB_ABSTRACTPHONGALPHAMATERIAL_H
36 #define DISP3DLIB_ABSTRACTPHONGALPHAMATERIAL_H
37 
38 //=============================================================================================================
39 // INCLUDES
40 //=============================================================================================================
41 
42 #include "../../../disp3D_global.h"
43 
44 //=============================================================================================================
45 // QT INCLUDES
46 //=============================================================================================================
47 
48 #include <QSharedPointer>
49 #include <QPointer>
50 #include <Qt3DRender/QMaterial>
51 
52 //=============================================================================================================
53 // EIGEN INCLUDES
54 //=============================================================================================================
55 
56 //=============================================================================================================
57 // FORWARD DECLARATIONS
58 //=============================================================================================================
59 
60 namespace Qt3DRender {
61  class QEffect;
62  class QParameter;
63  class QFilterKey;
64  class QShaderProgram;
65 }
66 
67 //=============================================================================================================
68 // DEFINE NAMESPACE DISP3DLIB
69 //=============================================================================================================
70 
71 namespace DISP3DLIB {
72 
73 //=============================================================================================================
74 // DISP3DLIB FORWARD DECLARATIONS
75 //=============================================================================================================
76 
77 //=============================================================================================================
84 class DISP3DSHARED_EXPORT AbstractPhongAlphaMaterial : public Qt3DRender::QMaterial
85 {
86  Q_OBJECT
87 
88 public:
89  typedef QSharedPointer<AbstractPhongAlphaMaterial> SPtr;
90  typedef QSharedPointer<const AbstractPhongAlphaMaterial> ConstSPtr;
92  //=========================================================================================================
99  explicit AbstractPhongAlphaMaterial(bool bUseSortPolicy, QNode *parent);
100 
101  //=========================================================================================================
105  virtual ~AbstractPhongAlphaMaterial() = default;
106 
107  //=========================================================================================================
113  virtual float alpha() const;
114 
115  //=========================================================================================================
121  virtual void setAlpha(float fAlpha);
122 
123 protected:
124 
125  //=========================================================================================================
130  virtual void init();
131 
132  //=========================================================================================================
137  virtual void setShaderCode() = 0;
138 
139  //=========================================================================================================
147  virtual void addShaderToRenderPass(const QString &sObjectName, Qt3DRender::QShaderProgram *pShaderProgramm);
148 
149  //=========================================================================================================
156  virtual void onAlphaChanged(const QVariant &fAlpha);
157 
158  QPointer<Qt3DRender::QEffect> m_pEffect;
160  QPointer<Qt3DRender::QParameter> m_pDiffuseParameter;
161  QPointer<Qt3DRender::QParameter> m_pSpecularParameter;
162  QPointer<Qt3DRender::QParameter> m_pShininessParameter;
163  QPointer<Qt3DRender::QParameter> m_pAlphaParameter;
165  QPointer<Qt3DRender::QFilterKey> m_pDrawFilterKey;
168 };
169 
170 //=============================================================================================================
171 // INLINE DEFINITIONS
172 //=============================================================================================================
173 } // namespace DISP3DLIB
174 
175 #endif // DISP3DLIB_ABSTRACTPHONGALPHAMATERIAL_H
QPointer< Qt3DRender::QParameter > m_pDiffuseParameter
QPointer< Qt3DRender::QParameter > m_pAlphaParameter
QSharedPointer< AbstractPhongAlphaMaterial > SPtr
#define DISP3DSHARED_EXPORT
Definition: disp3D_global.h:55
QPointer< Qt3DRender::QFilterKey > m_pDrawFilterKey
QPointer< Qt3DRender::QParameter > m_pSpecularParameter
QSharedPointer< const AbstractPhongAlphaMaterial > ConstSPtr
This abstract class is used as a base class for all materials that are using the phong alpha lightini...
QPointer< Qt3DRender::QParameter > m_pShininessParameter