MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
geometrymultipliermaterial.cpp
Go to the documentation of this file.
1//=============================================================================================================
36//=============================================================================================================
37// INCLUDES
38//=============================================================================================================
39
41
42//=============================================================================================================
43// QT INCLUDES
44//=============================================================================================================
45
46#include <QUrl>
47#include <QColor>
48#include <Qt3DRender/QEffect>
49#include <Qt3DRender/qshaderprogram.h>
50#include <Qt3DRender/qparameter.h>
51#include <QFilterKey>
52
53//=============================================================================================================
54// EIGEN INCLUDES
55//=============================================================================================================
56
57//=============================================================================================================
58// USED NAMESPACES
59//=============================================================================================================
60
61using namespace DISP3DLIB;
62using namespace Qt3DRender;
63
64//=============================================================================================================
65// DEFINE GLOBAL METHODS
66//=============================================================================================================
67
68//=============================================================================================================
69// DEFINE MEMBER METHODS
70//=============================================================================================================
71
72GeometryMultiplierMaterial::GeometryMultiplierMaterial(bool bUseSortPolicy, Qt3DCore::QNode *parent)
73: AbstractPhongAlphaMaterial(bUseSortPolicy, parent)
74, m_pAmbientColor(new QParameter(QStringLiteral("ka"), QColor::fromRgbF(0.2f, 0.2f, 0.2f, 1.0f)))
75, m_pVertexGL3Shader(new QShaderProgram())
76, m_pVertexES2Shader(new QShaderProgram())
77{
78 init();
79 setShaderCode();
80 m_pEffect->addParameter(m_pAmbientColor);
81}
82
83//=============================================================================================================
84
85void GeometryMultiplierMaterial::setShaderCode()
86{
87 m_pVertexGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/engine/model/materials/shaders/gl3/instancedposition.vert"))));
88 m_pVertexGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/engine/model/materials/shaders/gl3/instancedposition.frag"))));
89
90 m_pVertexES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/engine/model/materials/shaders/es2/instancedposition.vert"))));
91 m_pVertexES2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/engine/model/materials/shaders/es2/instancedposition.frag"))));
92
93 addShaderToRenderPass(QStringLiteral("pVertexGL3RenderPass"), m_pVertexGL3Shader);
94 addShaderToRenderPass(QStringLiteral("pVertexGL2RenderPass"), m_pVertexES2Shader);
95 addShaderToRenderPass(QStringLiteral("pVertexES2RenderPass"), m_pVertexES2Shader);
96}
97
98//=============================================================================================================
99
101{
102 m_pAmbientColor->setValue(tColor);
103}
104
105//=============================================================================================================
106
GeometryMultiplierMaterial class declaration.
This abstract class is used as a base class for all materials that are using the phong alpha lightini...
virtual void addShaderToRenderPass(const QString &sObjectName, Qt3DRender::QShaderProgram *pShaderProgramm)
GeometryMultiplierMaterial(bool bUseSortPolicy=false, Qt3DCore::QNode *parent=nullptr)