QGIS API Documentation
3.99.0-Master (e9821da5c6b)
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
#include <QString>
20
21
using namespace
Qt::StringLiterals;
22
23
// default renderers
24
#include "
qgstiledscenetexturerenderer.h
"
25
#include "
qgstiledscenewireframerenderer.h
"
26
27
QgsTiledSceneRendererRegistry::QgsTiledSceneRendererRegistry
()
28
{
29
// add default renderers
30
addRenderer
(
new
QgsTiledSceneRendererMetadata
( u
"texture"
_s,
31
QObject::tr(
"Textured"
),
32
QgsTiledSceneTextureRenderer::create
) );
33
addRenderer
(
new
QgsTiledSceneRendererMetadata
( u
"wireframe"
_s,
34
QObject::tr(
"Wireframe"
),
35
QgsTiledSceneWireframeRenderer::create
) );
36
}
37
38
QgsTiledSceneRendererRegistry::~QgsTiledSceneRendererRegistry
()
39
{
40
qDeleteAll( mRenderers );
41
}
42
43
bool
QgsTiledSceneRendererRegistry::addRenderer
(
QgsTiledSceneRendererAbstractMetadata
*metadata )
44
{
45
if
( !metadata || mRenderers.contains( metadata->
name
() ) )
46
return
false
;
47
48
mRenderers[metadata->
name
()] = metadata;
49
mRenderersOrder << metadata->
name
();
50
return
true
;
51
}
52
53
bool
QgsTiledSceneRendererRegistry::removeRenderer
(
const
QString &rendererName )
54
{
55
if
( !mRenderers.contains( rendererName ) )
56
return
false
;
57
58
delete
mRenderers[rendererName];
59
mRenderers.remove( rendererName );
60
mRenderersOrder.removeAll( rendererName );
61
return
true
;
62
}
63
64
QgsTiledSceneRendererAbstractMetadata
*
QgsTiledSceneRendererRegistry::rendererMetadata
(
const
QString &rendererName )
65
{
66
return
mRenderers.value( rendererName );
67
}
68
69
QStringList
QgsTiledSceneRendererRegistry::renderersList
()
const
70
{
71
QStringList renderers;
72
for
(
const
QString &renderer : mRenderersOrder )
73
{
74
QgsTiledSceneRendererAbstractMetadata
*r = mRenderers.value( renderer );
75
if
( r )
76
renderers << renderer;
77
}
78
return
renderers;
79
}
80
81
QgsTiledSceneRenderer
*
QgsTiledSceneRendererRegistry::defaultRenderer
(
const
QgsTiledSceneLayer
* )
82
{
83
return
new
QgsTiledSceneTextureRenderer
();
84
}
85
QgsTiledSceneLayer
Represents a map layer supporting display of tiled scene objects.
Definition
qgstiledscenelayer.h:40
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:64
QgsTiledSceneRendererRegistry::removeRenderer
bool removeRenderer(const QString &rendererName)
Removes a renderer from registry.
Definition
qgstiledscenerendererregistry.cpp:53
QgsTiledSceneRendererRegistry::defaultRenderer
static QgsTiledSceneRenderer * defaultRenderer(const QgsTiledSceneLayer *layer)
Returns a new default tiled scene renderer for a specified layer.
Definition
qgstiledscenerendererregistry.cpp:81
QgsTiledSceneRendererRegistry::renderersList
QStringList renderersList() const
Returns a list of available renderers.
Definition
qgstiledscenerendererregistry.cpp:69
QgsTiledSceneRendererRegistry::~QgsTiledSceneRendererRegistry
~QgsTiledSceneRendererRegistry()
Definition
qgstiledscenerendererregistry.cpp:38
QgsTiledSceneRendererRegistry::QgsTiledSceneRendererRegistry
QgsTiledSceneRendererRegistry()
Definition
qgstiledscenerendererregistry.cpp:27
QgsTiledSceneRendererRegistry::addRenderer
bool addRenderer(QgsTiledSceneRendererAbstractMetadata *metadata)
Adds a renderer to the registry.
Definition
qgstiledscenerendererregistry.cpp:43
QgsTiledSceneRenderer
Abstract base class for 2d tiled scene renderers.
Definition
qgstiledscenerenderer.h:123
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:50
QgsTiledSceneWireframeRenderer::create
static QgsTiledSceneRenderer * create(QDomElement &element, const QgsReadWriteContext &context)
Creates a textured renderer from an XML element.
Definition
qgstiledscenewireframerenderer.cpp:54
qgstiledscenerenderer.h
qgstiledscenerendererregistry.h
qgstiledscenetexturerenderer.h
qgstiledscenewireframerenderer.h
Generated on
for QGIS API Documentation by
1.15.0