QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsprojectelevationproperties.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsprojectelevationproperties.h
3 ---------------
4 begin : February 2022
5 copyright : (C) 2022 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#ifndef QGSPROJECTELEVATIONPROPERTIES_H
18#define QGSPROJECTELEVATIONPROPERTIES_H
19
20#include "qgis_core.h"
21#include "qgsrange.h"
22#include "qgsunittypes.h"
23#include <memory>
24#include <QObject>
25
26class QDomElement;
28class QDomDocument;
30class QgsProject;
31
38class CORE_EXPORT QgsProjectElevationProperties : public QObject
39{
40 Q_OBJECT
41
42 public:
43
47 QgsProjectElevationProperties( QObject *parent SIP_TRANSFERTHIS = nullptr );
48
50
54 void reset();
55
59 void resolveReferences( const QgsProject *project );
60
65 bool readXml( const QDomElement &element, const QgsReadWriteContext &context );
66
71 QDomElement writeXml( QDomDocument &document, const QgsReadWriteContext &context ) const;
72
78 QgsAbstractTerrainProvider *terrainProvider();
79
87 void setTerrainProvider( QgsAbstractTerrainProvider *provider SIP_TRANSFER );
88
101 QgsDoubleRange elevationRange() const { return mElevationRange; }
102
103 public slots:
104
117 void setElevationRange( const QgsDoubleRange &range );
118
119 signals:
120
124 void changed();
125
138
139 private:
140
141 std::unique_ptr< QgsAbstractTerrainProvider > mTerrainProvider;
142 QgsDoubleRange mElevationRange;
143
144};
145
146
147#endif // QGSPROJECTELEVATIONPROPERTIES_H
Abstract base class for terrain providers.
QgsRange which stores a range of double values.
Definition: qgsrange.h:231
Contains elevation properties for a QgsProject.
QgsDoubleRange elevationRange() const
Returns the project's elevation range, which indicates the upper and lower elevation limits associate...
~QgsProjectElevationProperties() override
void elevationRangeChanged(const QgsDoubleRange &range)
Emitted when the project's elevation is changed.
void changed()
Emitted when the elevation properties change.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:107
The class is used as a container of context for various read/write operations on other objects.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_TRANSFER
Definition: qgis_sip.h:36