QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
qgs3d.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgs3d.h
3
--------
4
begin : July 2020
5
copyright : (C) 2020 by Nyall Dawson
6
email : nyall dot dawson at gmail dot com
7
***************************************************************************/
8
9
/***************************************************************************
10
* *
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* *
16
***************************************************************************/
17
18
#ifndef QGS3D_H
19
#define QGS3D_H
20
21
#include <memory>
22
23
#include "
qgis.h
"
24
#include "qgis_3d.h"
25
#include "
qgis_sip.h
"
26
27
class
QgsMaterialRegistry
;
28
class
Qgs3DTerrainRegistry
;
29
class
QgsAbstractMaterial3DHandler
;
30
class
QgsAbstractMaterialSettings
;
31
class
QgsMaterial
;
32
class
QgsMaterialContext
;
33
class
QgsUnlitMaterial;
34
class
QgsExpressionContext
;
35
class
QgsSettingsEntryBool
;
36
template
<
class
T>
class
QgsSettingsEntryEnumFlag
;
37
38
#ifndef SIP_RUN
39
namespace
Qt3DCore
40
{
41
class
QGeometry;
42
}
43
44
namespace
Qt3DRender
45
{
46
class
QEffect;
47
}
48
#endif
49
56
class
_3D_EXPORT
Qgs3D
57
{
58
public
:
59
static
const
QgsSettingsEntryBool
*
settingMsaaEnabled
SIP_SKIP
;
60
static
const
QgsSettingsEntryEnumFlag<Qgis::TextureFilterQuality>
*
settingTextureFilterQuality
SIP_SKIP
;
61
static
const
QgsSettingsEntryEnumFlag<Qgis::ShadowQuality>
*
settingShadowQuality
SIP_SKIP
;
62
63
Qgs3D
(
const
Qgs3D
&other ) =
delete
;
64
Qgs3D
&
operator=
(
const
Qgs3D
&other ) =
delete
;
65
69
static
Qgs3D
*
instance
();
70
71
~Qgs3D
();
72
76
static
void
initialize
();
77
81
static
QgsMaterialRegistry
*
materialRegistry
();
82
86
static
Qgs3DTerrainRegistry
*
terrainRegistry
();
87
88
#ifndef SIP_RUN
96
static
QgsMaterial
*
toMaterial
(
const
QgsAbstractMaterialSettings
*settings,
Qgis::MaterialRenderingTechnique
technique,
const
QgsMaterialContext
&context );
97
104
static
QgsUnlitMaterial *
createHighlightMaterial
();
105
109
static
const
QgsAbstractMaterial3DHandler
*
handlerForMaterialSettings
(
const
QgsAbstractMaterialSettings
*settings );
110
111
// if you change this, also update the corresponding constant in shadows.inc.frag!
113
static
constexpr
int
NUM_SHADOW_CASCADES
= 4;
114
115
#endif
116
117
private
:
118
Qgs3D
();
119
120
#ifdef SIP_RUN
121
Qgs3D
(
const
Qgs3D
&other );
122
#endif
123
124
bool
mInitialized =
false
;
125
126
Qgs3DTerrainRegistry
*mTerrainRegistry =
nullptr
;
127
std::unique_ptr< QgsAbstractMaterial3DHandler > mNullMaterialHandler;
128
std::unique_ptr< QgsAbstractMaterial3DHandler > mPhongMaterialHandler;
129
std::unique_ptr< QgsAbstractMaterial3DHandler > mPhongTexturedMaterialHandler;
130
std::unique_ptr< QgsAbstractMaterial3DHandler > mSimpleLineMaterialHandler;
131
std::unique_ptr< QgsAbstractMaterial3DHandler > mGoochMaterialHandler;
132
std::unique_ptr< QgsAbstractMaterial3DHandler > mMetalRoughMaterialHandler;
133
std::unique_ptr< QgsAbstractMaterial3DHandler > mMetalRoughTexturedMaterialHandler;
134
std::unique_ptr< QgsAbstractMaterial3DHandler > mUnlitMaterialHandler;
135
};
136
137
#endif
// QGS3D_H
Qgis::MaterialRenderingTechnique
MaterialRenderingTechnique
Material rendering techniques.
Definition
qgis.h:4453
Qgs3DTerrainRegistry
Registry of available 3d terrain classes.
Definition
qgs3dterrainregistry.h:157
Qgs3D::initialize
static void initialize()
Initializes the 3D framework.
Definition
qgs3d.cpp:81
Qgs3D::terrainRegistry
static Qgs3DTerrainRegistry * terrainRegistry()
Returns the terrain registry, used for managing 3D terrains.
Definition
qgs3d.cpp:137
Qgs3D::settingTextureFilterQuality
static const QgsSettingsEntryEnumFlag< Qgis::TextureFilterQuality > * settingTextureFilterQuality
Definition
qgs3d.h:60
Qgs3D::toMaterial
static QgsMaterial * toMaterial(const QgsAbstractMaterialSettings *settings, Qgis::MaterialRenderingTechnique technique, const QgsMaterialContext &context)
Creates a new QgsMaterial object representing the material settings.
Definition
qgs3d.cpp:159
Qgs3D::settingMsaaEnabled
static const QgsSettingsEntryBool * settingMsaaEnabled
Definition
qgs3d.h:59
Qgs3D::materialRegistry
static QgsMaterialRegistry * materialRegistry()
Returns the material registry, used for managing 3D materials.
Definition
qgs3d.cpp:132
Qgs3D::instance
static Qgs3D * instance()
Returns a pointer to the singleton instance.
Definition
qgs3d.cpp:63
Qgs3D::createHighlightMaterial
static QgsUnlitMaterial * createHighlightMaterial()
Creates a new highlight material, consisting of an unlit material respecting the user's map highlight...
Definition
qgs3d.cpp:168
Qgs3D::handlerForMaterialSettings
static const QgsAbstractMaterial3DHandler * handlerForMaterialSettings(const QgsAbstractMaterialSettings *settings)
Returns the handler to use for a material settings.
Definition
qgs3d.cpp:142
Qgs3D::operator=
Qgs3D & operator=(const Qgs3D &other)=delete
Qgs3D::NUM_SHADOW_CASCADES
static constexpr int NUM_SHADOW_CASCADES
Number of shadow map cascades.
Definition
qgs3d.h:113
Qgs3D::Qgs3D
Qgs3D(const Qgs3D &other)=delete
Qgs3D::settingShadowQuality
static const QgsSettingsEntryEnumFlag< Qgis::ShadowQuality > * settingShadowQuality
Definition
qgs3d.h:61
QgsAbstractMaterial3DHandler
Abstract base class for material 3D handlers.
Definition
qgsmaterial3dhandler.h:160
QgsAbstractMaterialSettings
Abstract base class for material settings.
Definition
qgsabstractmaterialsettings.h:42
QgsExpressionContext
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Definition
qgsexpressioncontext.h:491
QgsMaterialContext
Context settings for a material.
Definition
qgsmaterial3dhandler.h:56
QgsMaterialRegistry
Registry of available 3d material settings classes.
Definition
qgsmaterialregistry.h:214
QgsMaterial
Base class for all materials used within QGIS 3D views.
Definition
qgsmaterial.h:40
QgsSettingsEntryBool
A boolean settings entry.
Definition
qgssettingsentryimpl.h:298
QgsSettingsEntryEnumFlag
A template class for enum and flag settings entry.
Definition
qgssettingsentryenumflag.h:40
Qt3DCore
Definition
qgsabstract3drenderer.h:33
Qt3DRender
Definition
qgs3d.h:45
qgis.h
qgis_sip.h
SIP_SKIP
#define SIP_SKIP
Definition
qgis_sip.h:138
Generated on
for QGIS API Documentation by
1.17.0