QGIS API Documentation 3.38.0-Grenoble (exported)
Loading...
Searching...
No Matches
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
115 double elevationFilterRangeSize() const { return mElevationFilterRangeSize; }
116
124 bool invertElevationFilter() const { return mInvertElevationFilter; }
125
126 public slots:
127
140 void setElevationRange( const QgsDoubleRange &range );
141
154 void setElevationFilterRangeSize( double size );
155
163 void setInvertElevationFilter( bool invert );
164
165 signals:
166
170 void changed();
171
184
185 private:
186
187 std::unique_ptr< QgsAbstractTerrainProvider > mTerrainProvider;
188 QgsDoubleRange mElevationRange;
189 double mElevationFilterRangeSize = -1;
190 bool mInvertElevationFilter = false;
191
192};
193
194
195#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.
double elevationFilterRangeSize() const
Returns the fixed size for elevation range filtering in the project, used when interactively filterin...
void changed()
Emitted when the elevation properties change.
bool invertElevationFilter() const
Returns true if the elevation range filter slider should be inverted for this project.
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