QGIS API Documentation
4.3.0-Master (52aa6503bed)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
materials
qgsphongmaterial.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsphongmaterial.h
3
--------------------------------------
4
Date : April 2026
5
Copyright : (C) 2026 by Dominik Cindrić
6
Email : viper dot miniq at gmail dot com
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#ifndef QGSPHONGMATERIAL_H
17
#define QGSPHONGMATERIAL_H
18
19
#include "
qgis.h
"
20
#include "qgis_3d.h"
21
#include "
qgsmaterial.h
"
22
23
#include <QColor>
24
#include <QObject>
25
26
#define SIP_NO_FILE
27
28
class
QMatrix4x4;
29
30
31
namespace
Qt3DRender
32
{
33
class
QParameter;
34
class
QShaderProgram;
35
}
// namespace Qt3DRender
36
38
45
class
_3D_EXPORT QgsPhongMaterial :
public
QgsMaterial
46
{
47
Q_OBJECT
48
49
public
:
53
explicit
QgsPhongMaterial( Qt3DCore::QNode *parent =
nullptr
);
54
60
void
setInstancingEnabled(
bool
enabled,
Qgis::InstancedMaterialFlags
flags );
61
66
void
setInstancingMeshTransform(
const
QMatrix4x4 &transform );
67
68
~QgsPhongMaterial()
override
;
69
70
public
slots:
72
void
setAmbient(
const
QColor &ambient,
float
scaleFactor = 1 );
74
void
setDiffuse(
const
QColor &diffuse,
float
scaleFactor = 1 );
76
void
setSpecular(
const
QColor &specular,
float
scaleFactor = 1 );
77
void
setShininess(
float
shininess );
78
void
setOpacity(
float
opacity );
79
85
void
setDataDefinedEnabled(
bool
enabled );
86
87
private
:
88
void
init();
89
void
updateShaders();
90
91
Qt3DRender::QParameter *mAmbientParameter =
nullptr
;
92
Qt3DRender::QParameter *mDiffuseParameter =
nullptr
;
93
Qt3DRender::QParameter *mSpecularParameter =
nullptr
;
94
Qt3DRender::QParameter *mShininessParameter =
nullptr
;
95
Qt3DRender::QParameter *mOpacityParameter =
nullptr
;
96
Qt3DRender::QShaderProgram *mShaderProgram =
nullptr
;
97
bool
mDataDefinedEnabled =
false
;
98
bool
mInstanced =
false
;
99
Qgis::InstancedMaterialFlags
mInstanceFlags;
100
Qt3DRender::QParameter *mTransformParameter =
nullptr
;
101
Qt3DRender::QParameter *mNormalTransformParameter =
nullptr
;
102
};
103
105
106
#endif
// QGSPHONGMATERIAL_H
Qgis::InstancedMaterialFlags
QFlags< InstancedMaterialFlag > InstancedMaterialFlags
Definition
qgis.h:4488
QgsMaterial
Base class for all materials used within QGIS 3D views.
Definition
qgsmaterial.h:40
Qt3DRender
Definition
qgs3d.h:45
qgis.h
qgsmaterial.h
Generated on
for QGIS API Documentation by
1.17.0