QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
qgscategorized3drenderer.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgscategorized3drenderer.h
3
--------------------------------------
4
Date : November 2025
5
Copyright : (C) 2025 by Jean Felder
6
Email : jean dot felder at oslandia 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 QGSCATEGORIZED3DRENDERER_H
17
#define QGSCATEGORIZED3DRENDERER_H
18
19
#include <memory>
20
21
#include "qgis_3d.h"
22
#include "
qgis_sip.h
"
23
#include "
qgs3drendererregistry.h
"
24
#include "
qgsabstract3dsymbol.h
"
25
#include "
qgsabstractvectorlayer3drenderer.h
"
26
#include "
qgscolorramp.h
"
27
28
class
Qgs3DRenderContext
;
29
class
QgsFeature3DHandler;
30
class
QgsExpression
;
31
32
42
class
_3D_EXPORT
QgsCategorized3DRendererMetadata
:
public
Qgs3DRendererAbstractMetadata
43
{
44
public
:
45
QgsCategorized3DRendererMetadata
();
46
48
QgsAbstract3DRenderer
*
createRenderer
( QDomElement &elem,
const
QgsReadWriteContext
&context )
override
SIP_FACTORY
;
49
};
50
51
61
class
_3D_EXPORT
Qgs3DRendererCategory
62
{
63
public
:
64
Qgs3DRendererCategory
() =
default
;
65
75
Qgs3DRendererCategory
(
const
QVariant &
value
,
QgsAbstract3DSymbol
*
symbol
SIP_TRANSFER
,
bool
render =
true
);
76
77
Qgs3DRendererCategory
(
const
Qgs3DRendererCategory
&other );
78
Qgs3DRendererCategory
&
operator=
(
const
Qgs3DRendererCategory
&other );
79
87
const
QVariant
value
()
const
{
return
mValue; }
88
93
QgsAbstract3DSymbol
*
symbol
()
const
{
return
mSymbol.get(); }
94
99
bool
renderState
()
const
{
return
mRender; }
100
108
void
setValue(
const
QVariant &value );
109
117
void
setSymbol(
QgsAbstract3DSymbol
*symbol
SIP_TRANSFER
);
118
123
void
setRenderState(
bool
render );
124
125
private
:
126
QVariant mValue;
127
std::unique_ptr<QgsAbstract3DSymbol> mSymbol;
128
bool
mRender =
true
;
129
};
130
131
using
Qgs3DCategoryList
= QList<Qgs3DRendererCategory>;
132
133
145
class
_3D_EXPORT
QgsCategorized3DRenderer
:
public
QgsAbstractVectorLayer3DRenderer
146
{
147
public
:
148
using
Category
=
Qgs3DRendererCategory
;
149
using
Categories
=
Qgs3DCategoryList
;
150
152
QgsCategorized3DRenderer
(
const
QString &attributeName = QString(),
const
Qgs3DCategoryList
&
categories
=
Qgs3DCategoryList
() );
153
154
QString
type
()
const override
{
return
"categorized"
; }
155
QgsCategorized3DRenderer
*clone() const override
SIP_FACTORY
;
156
Qt3DCore
::QEntity *createEntity(
Qgs3DMapSettings
*mapSettings ) const override
SIP_SKIP
;
157
164
void
updateSymbols(
QgsAbstract3DSymbol
*symbol );
165
169
const
Qgs3DCategoryList
&
categories
()
const
{
return
mCategories; }
170
178
QString
classAttribute
()
const
{
return
mAttributeName; }
179
187
void
setClassAttribute( QString attributeName );
188
195
QgsAbstract3DSymbol
*sourceSymbol();
196
204
const
QgsAbstract3DSymbol
*sourceSymbol() const
SIP_SKIP
;
205
213
void
setSourceSymbol(
QgsAbstract3DSymbol
*symbol
SIP_TRANSFER
);
214
220
QgsColorRamp
*sourceColorRamp();
221
228
const
QgsColorRamp
*sourceColorRamp() const
SIP_SKIP
;
229
236
void
setSourceColorRamp(
QgsColorRamp
*ramp
SIP_TRANSFER
);
237
242
void
updateColorRamp(
QgsColorRamp
*ramp
SIP_TRANSFER
);
243
252
bool
updateCategoryValue(
int
catIndex, const QVariant &value );
253
262
bool
updateCategorySymbol(
int
catIndex,
QgsAbstract3DSymbol
*symbol
SIP_TRANSFER
);
263
274
bool
updateCategoryRenderState(
int
catIndex,
bool
render );
275
281
void
addCategory( const
Qgs3DRendererCategory
&category );
282
288
bool
deleteCategory(
int
catIndex );
289
295
void
deleteAllCategories();
296
300
bool
moveCategory(
int
from,
int
to );
301
310
static
Qgs3DCategoryList
createCategories( const QVariantList &values, const
QgsAbstract3DSymbol
*symbol,
QgsVectorLayer
*layer =
nullptr
, const QString &attributeName = QString() );
311
316
void
sortByValue( Qt::SortOrder order = Qt::AscendingOrder );
317
318
void
writeXml( QDomElement &elem, const
QgsReadWriteContext
&context ) const override;
319
void
readXml( const QDomElement &elem, const
QgsReadWriteContext
&context ) override;
320
321
private:
322
QString mAttributeName;
323
Qgs3DCategoryList
mCategories;
324
std::unique_ptr<
QgsColorRamp
> mSourceColorRamp;
325
std::unique_ptr<
QgsAbstract3DSymbol
> mSourceSymbol;
326
};
327
328
#endif
// QGSCATEGORIZED3DRENDERER_H
Qgs3DMapSettings
Definition of the world.
Definition
qgs3dmapsettings.h:59
Qgs3DRenderContext
Rendering context for preparation of 3D entities.
Definition
qgs3drendercontext.h:49
Qgs3DRendererAbstractMetadata::createRenderer
virtual QgsAbstract3DRenderer * createRenderer(QDomElement &elem, const QgsReadWriteContext &context)=0
Returns new instance of the renderer given the DOM element.
Qgs3DRendererAbstractMetadata::Qgs3DRendererAbstractMetadata
Qgs3DRendererAbstractMetadata(const QString &type)
Constructor of the base class.
Definition
qgs3drendererregistry.cpp:18
Qgs3DRendererCategory
Represents an individual category (class) from a QgsCategorized3DRenderer.
Definition
qgscategorized3drenderer.h:62
Qgs3DRendererCategory::Qgs3DRendererCategory
Qgs3DRendererCategory()=default
Qgs3DRendererCategory::value
const QVariant value() const
Returns the value corresponding to this category.
Definition
qgscategorized3drenderer.h:87
Qgs3DRendererCategory::renderState
bool renderState() const
Returns true if the category is currently enabled and should be rendered.
Definition
qgscategorized3drenderer.h:99
Qgs3DRendererCategory::operator=
Qgs3DRendererCategory & operator=(const Qgs3DRendererCategory &other)
Definition
qgscategorized3drenderer.cpp:64
Qgs3DRendererCategory::symbol
QgsAbstract3DSymbol * symbol() const
Returns the symbol which will be used to render this category.
Definition
qgscategorized3drenderer.h:93
QgsAbstract3DRenderer
Base class for all renderers that participate in 3D views.
Definition
qgsabstract3drenderer.h:50
QgsAbstract3DSymbol
Abstract base class for 3D symbols that are used by VectorLayer3DRenderer objects.
Definition
qgsabstract3dsymbol.h:48
QgsAbstractVectorLayer3DRenderer::QgsAbstractVectorLayer3DRenderer
QgsAbstractVectorLayer3DRenderer()
QgsCategorized3DRendererMetadata::QgsCategorized3DRendererMetadata
QgsCategorized3DRendererMetadata()
Definition
qgscategorized3drenderer.cpp:37
QgsCategorized3DRenderer
Categorized 3D renderer.
Definition
qgscategorized3drenderer.h:146
QgsCategorized3DRenderer::classAttribute
QString classAttribute() const
Returns the class attribute for the renderer, which is the field name or expression string from the l...
Definition
qgscategorized3drenderer.h:178
QgsCategorized3DRenderer::QgsCategorized3DRenderer
QgsCategorized3DRenderer(const QString &attributeName=QString(), const Qgs3DCategoryList &categories=Qgs3DCategoryList())
Construct renderer with the given categories.
Definition
qgscategorized3drenderer.cpp:100
QgsCategorized3DRenderer::categories
const Qgs3DCategoryList & categories() const
Returns a list of all categories recognized by the renderer.
Definition
qgscategorized3drenderer.h:169
QgsCategorized3DRenderer::type
QString type() const override
Returns unique identifier of the renderer class (used to identify subclass).
Definition
qgscategorized3drenderer.h:154
QgsCategorized3DRenderer::Category
Qgs3DRendererCategory Category
Definition
qgscategorized3drenderer.h:148
QgsCategorized3DRenderer::Categories
Qgs3DCategoryList Categories
Definition
qgscategorized3drenderer.h:149
QgsColorRamp
Abstract base class for color ramps.
Definition
qgscolorramp.h:30
QgsExpression
Handles parsing and evaluation of expressions (formerly called "search strings").
Definition
qgsexpression.h:197
QgsReadWriteContext
A container for the context for various read/write operations on objects.
Definition
qgsreadwritecontext.h:38
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
Qt3DCore
Definition
qgsabstract3drenderer.h:33
qgis_sip.h
SIP_SKIP
#define SIP_SKIP
Definition
qgis_sip.h:138
SIP_TRANSFER
#define SIP_TRANSFER
Definition
qgis_sip.h:35
SIP_FACTORY
#define SIP_FACTORY
Definition
qgis_sip.h:83
qgs3drendererregistry.h
qgsabstract3dsymbol.h
qgsabstractvectorlayer3drenderer.h
Qgs3DCategoryList
QList< Qgs3DRendererCategory > Qgs3DCategoryList
Definition
qgscategorized3drenderer.h:131
qgscolorramp.h
Generated on
for QGIS API Documentation by
1.17.0