QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
materials
qgsnullmaterial3dhandler.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsnullmaterial3dhandler.cpp
3
--------------------------------------
4
Date : November 2020
5
Copyright : (C) 2020 by Nyall Dawson
6
Email : nyall dot dawson 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
#include "
qgsnullmaterial3dhandler.h
"
17
18
#include "
qgs3d.h
"
19
#include "
qgsmaterial.h
"
20
#include "
qgsunlitmaterial.h
"
21
22
#include <QMap>
23
#include <QString>
24
25
using namespace
Qt::StringLiterals;
26
27
28
QgsMaterial
*
QgsNullMaterial3DHandler::toMaterial
(
const
QgsAbstractMaterialSettings
*,
Qgis::MaterialRenderingTechnique
technique,
const
QgsMaterialContext
&context )
const
29
{
30
if
( context.
isHighlighted
() )
31
{
32
switch
( technique )
33
{
34
case
Qgis::MaterialRenderingTechnique::Triangles
:
35
case
Qgis::MaterialRenderingTechnique::TrianglesWithFixedTexture
:
36
case
Qgis::MaterialRenderingTechnique::TrianglesFromModel
:
37
case
Qgis::MaterialRenderingTechnique::TrianglesDataDefined
:
38
{
39
return
Qgs3D::createHighlightMaterial
();
40
}
41
case
Qgis::MaterialRenderingTechnique::InstancedPoints
:
42
{
43
Q_ASSERT(
false
);
44
return
nullptr
;
45
}
46
case
Qgis::MaterialRenderingTechnique::Lines
:
47
case
Qgis::MaterialRenderingTechnique::Points
:
48
case
Qgis::MaterialRenderingTechnique::Billboards
:
49
{
50
// Lines are single color and do not need the highlight material
51
// Billboards are not supported yet
52
break
;
53
}
54
}
55
}
56
57
return
nullptr
;
58
}
59
60
QMap<QString, QString>
QgsNullMaterial3DHandler::toExportParameters
(
const
QgsAbstractMaterialSettings
* )
const
61
{
62
QMap<QString, QString> parameters;
63
return
parameters;
64
}
65
66
bool
QgsNullMaterial3DHandler::updatePreviewScene
( Qt3DCore::QEntity *,
const
QgsAbstractMaterialSettings
*,
const
QgsMaterialContext
& )
const
67
{
68
return
true
;
69
}
Qgis::MaterialRenderingTechnique
MaterialRenderingTechnique
Material rendering techniques.
Definition
qgis.h:4453
Qgis::MaterialRenderingTechnique::Points
@ Points
Point based rendering, requires point data.
Definition
qgis.h:4457
Qgis::MaterialRenderingTechnique::Triangles
@ Triangles
Triangle based rendering (default).
Definition
qgis.h:4454
Qgis::MaterialRenderingTechnique::TrianglesFromModel
@ TrianglesFromModel
Triangle based rendering, using a model object source.
Definition
qgis.h:4459
Qgis::MaterialRenderingTechnique::Lines
@ Lines
Line based rendering, requires line data.
Definition
qgis.h:4455
Qgis::MaterialRenderingTechnique::Billboards
@ Billboards
Flat billboard rendering.
Definition
qgis.h:4461
Qgis::MaterialRenderingTechnique::TrianglesDataDefined
@ TrianglesDataDefined
Triangle based rendering with possibility of datadefined color.
Definition
qgis.h:4460
Qgis::MaterialRenderingTechnique::InstancedPoints
@ InstancedPoints
Instanced based rendering, requiring triangles and point data.
Definition
qgis.h:4456
Qgis::MaterialRenderingTechnique::TrianglesWithFixedTexture
@ TrianglesWithFixedTexture
Triangle based rendering, using a fixed, non-user-configurable texture (e.g. for terrain rendering).
Definition
qgis.h:4458
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
QgsAbstractMaterialSettings
Abstract base class for material settings.
Definition
qgsabstractmaterialsettings.h:42
QgsMaterialContext
Context settings for a material.
Definition
qgsmaterial3dhandler.h:56
QgsMaterialContext::isHighlighted
bool isHighlighted() const
Returns true if the material should represent a highlighted state.
Definition
qgsmaterial3dhandler.h:99
QgsMaterial
Base class for all materials used within QGIS 3D views.
Definition
qgsmaterial.h:40
QgsNullMaterial3DHandler::toExportParameters
QMap< QString, QString > toExportParameters(const QgsAbstractMaterialSettings *settings) const override
Returns the parameters to be exported to .mtl file.
Definition
qgsnullmaterial3dhandler.cpp:60
QgsNullMaterial3DHandler::toMaterial
QgsMaterial * toMaterial(const QgsAbstractMaterialSettings *settings, Qgis::MaterialRenderingTechnique technique, const QgsMaterialContext &context) const override
Creates a new QgsMaterial object representing the material settings.
Definition
qgsnullmaterial3dhandler.cpp:28
QgsNullMaterial3DHandler::updatePreviewScene
bool updatePreviewScene(Qt3DCore::QEntity *sceneRoot, const QgsAbstractMaterialSettings *settings, const QgsMaterialContext &context) const override
Updates an existing material preview scene with new material settings.
Definition
qgsnullmaterial3dhandler.cpp:66
qgs3d.h
qgsmaterial.h
qgsnullmaterial3dhandler.h
qgsunlitmaterial.h
Generated on
for QGIS API Documentation by
1.17.0