QGIS API Documentation
3.99.0-Master (26c88405ac0)
Loading...
Searching...
No Matches
src
core
tiledscene
qgstiledscenerendererregistry.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgstiledscenerendererregistry.cpp
3
---------------------
4
begin : August 2023
5
copyright : (C) 2023 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
#include "
qgstiledscenerendererregistry.h
"
16
17
#include "
qgstiledscenerenderer.h
"
18
19
// default renderers
20
#include "
qgstiledscenetexturerenderer.h
"
21
#include "
qgstiledscenewireframerenderer.h
"
22
23
QgsTiledSceneRendererRegistry::QgsTiledSceneRendererRegistry
()
24
{
25
// add default renderers
26
addRenderer
(
new
QgsTiledSceneRendererMetadata
( QStringLiteral(
"texture"
),
27
QObject::tr(
"Textured"
),
28
QgsTiledSceneTextureRenderer::create
) );
29
addRenderer
(
new
QgsTiledSceneRendererMetadata
( QStringLiteral(
"wireframe"
),
30
QObject::tr(
"Wireframe"
),
31
QgsTiledSceneWireframeRenderer::create
) );
32
}
33
34
QgsTiledSceneRendererRegistry::~QgsTiledSceneRendererRegistry
()
35
{
36
qDeleteAll( mRenderers );
37
}
38
39
bool
QgsTiledSceneRendererRegistry::addRenderer
(
QgsTiledSceneRendererAbstractMetadata
*metadata )
40
{
41
if
( !metadata || mRenderers.contains( metadata->
name
() ) )
42
return
false
;
43
44
mRenderers[metadata->
name
()] = metadata;
45
mRenderersOrder << metadata->
name
();
46
return
true
;
47
}
48
49
bool
QgsTiledSceneRendererRegistry::removeRenderer
(
const
QString &rendererName )
50
{
51
if
( !mRenderers.contains( rendererName ) )
52
return
false
;
53
54
delete
mRenderers[rendererName];
55
mRenderers.remove( rendererName );
56
mRenderersOrder.removeAll( rendererName );
57
return
true
;
58
}
59
60
QgsTiledSceneRendererAbstractMetadata
*
QgsTiledSceneRendererRegistry::rendererMetadata
(
const
QString &rendererName )
61
{
62
return
mRenderers.value( rendererName );
63
}
64
65
QStringList
QgsTiledSceneRendererRegistry::renderersList
()
const
66
{
67
QStringList renderers;
68
for
(
const
QString &renderer : mRenderersOrder )
69
{
70
QgsTiledSceneRendererAbstractMetadata
*r = mRenderers.value( renderer );
71
if
( r )
72
renderers << renderer;
73
}
74
return
renderers;
75
}
76
77
QgsTiledSceneRenderer
*
QgsTiledSceneRendererRegistry::defaultRenderer
(
const
QgsTiledSceneLayer
* )
78
{
79
return
new
QgsTiledSceneTextureRenderer
();
80
}
81
QgsTiledSceneLayer
Represents a map layer supporting display of tiled scene objects.
Definition
qgstiledscenelayer.h:36
QgsTiledSceneRendererAbstractMetadata
Stores metadata about one tiled scene renderer class.
Definition
qgstiledscenerendererregistry.h:45
QgsTiledSceneRendererAbstractMetadata::name
QString name() const
Returns the unique name of the renderer.
Definition
qgstiledscenerendererregistry.h:66
QgsTiledSceneRendererMetadata
Convenience metadata class that uses static functions to create tiled scene renderer and its widget.
Definition
qgstiledscenerendererregistry.h:125
QgsTiledSceneRendererRegistry::rendererMetadata
QgsTiledSceneRendererAbstractMetadata * rendererMetadata(const QString &rendererName)
Returns the metadata for a specified renderer.
Definition
qgstiledscenerendererregistry.cpp:60
QgsTiledSceneRendererRegistry::removeRenderer
bool removeRenderer(const QString &rendererName)
Removes a renderer from registry.
Definition
qgstiledscenerendererregistry.cpp:49
QgsTiledSceneRendererRegistry::defaultRenderer
static QgsTiledSceneRenderer * defaultRenderer(const QgsTiledSceneLayer *layer)
Returns a new default tiled scene renderer for a specified layer.
Definition
qgstiledscenerendererregistry.cpp:77
QgsTiledSceneRendererRegistry::renderersList
QStringList renderersList() const
Returns a list of available renderers.
Definition
qgstiledscenerendererregistry.cpp:65
QgsTiledSceneRendererRegistry::~QgsTiledSceneRendererRegistry
~QgsTiledSceneRendererRegistry()
Definition
qgstiledscenerendererregistry.cpp:34
QgsTiledSceneRendererRegistry::QgsTiledSceneRendererRegistry
QgsTiledSceneRendererRegistry()
Definition
qgstiledscenerendererregistry.cpp:23
QgsTiledSceneRendererRegistry::addRenderer
bool addRenderer(QgsTiledSceneRendererAbstractMetadata *metadata)
Adds a renderer to the registry.
Definition
qgstiledscenerendererregistry.cpp:39
QgsTiledSceneRenderer
Abstract base class for 2d tiled scene renderers.
Definition
qgstiledscenerenderer.h:119
QgsTiledSceneTextureRenderer
Renders tiled scene layers using textures.
Definition
qgstiledscenetexturerenderer.h:34
QgsTiledSceneTextureRenderer::create
static QgsTiledSceneRenderer * create(QDomElement &element, const QgsReadWriteContext &context)
Creates a textured renderer from an XML element.
Definition
qgstiledscenetexturerenderer.cpp:46
QgsTiledSceneWireframeRenderer::create
static QgsTiledSceneRenderer * create(QDomElement &element, const QgsReadWriteContext &context)
Creates a textured renderer from an XML element.
Definition
qgstiledscenewireframerenderer.cpp:50
qgstiledscenerenderer.h
qgstiledscenerendererregistry.h
qgstiledscenetexturerenderer.h
qgstiledscenewireframerenderer.h
Generated on
for QGIS API Documentation by
1.15.0