QGIS API Documentation 3.99.0-Master (e9821da5c6b)
Loading...
Searching...
No Matches
qgsabstractterrainsettings.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsabstractterrainsettings.cpp
3 --------------------------------------
4 Date : August 2024
5 Copyright : (C) 2024 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
17
18#include "qgis.h"
19
20#include <QDomElement>
21#include <QString>
22
23using namespace Qt::StringLiterals;
24
26
30
32{
33 element.setAttribute( u"exaggeration"_s, mTerrainVerticalScale );
34 element.setAttribute( u"texture-size"_s, mMapTileResolution );
35 element.setAttribute( u"max-terrain-error"_s, mMaxTerrainScreenError );
36 element.setAttribute( u"max-ground-error"_s, mMaxTerrainGroundError );
37 element.setAttribute( u"elevation-offset"_s, mTerrainElevationOffset );
38}
39
41{
42 mTerrainVerticalScale = element.attribute( u"exaggeration"_s, u"1"_s ).toDouble();
43 mMapTileResolution = element.attribute( u"texture-size"_s, u"512"_s ).toInt();
44 mMaxTerrainScreenError = element.attribute( u"max-terrain-error"_s, u"3"_s ).toDouble();
45 mMaxTerrainGroundError = element.attribute( u"max-ground-error"_s, u"1"_s ).toDouble();
46 mTerrainElevationOffset = element.attribute( u"elevation-offset"_s, u"0.0"_s ).toDouble();
47}
48
50{
51 mTerrainVerticalScale = source->mTerrainVerticalScale;
52 mMapTileResolution = source->mMapTileResolution;
53 mMaxTerrainScreenError = source->mMaxTerrainScreenError;
54 mMaxTerrainGroundError = source->mMaxTerrainGroundError;
55 mTerrainElevationOffset = source->mTerrainElevationOffset;
56}
57
59{
60 return mMapTileResolution == other->mMapTileResolution
61 && qgsDoubleNear( mTerrainVerticalScale, other->mTerrainVerticalScale )
62 && qgsDoubleNear( mMaxTerrainScreenError, other->mMaxTerrainScreenError )
63 && qgsDoubleNear( mMaxTerrainGroundError, other->mMaxTerrainGroundError )
64 && qgsDoubleNear( mTerrainElevationOffset, other->mTerrainElevationOffset );
65}
Base class for all terrain settings classes.
void copyCommonProperties(const QgsAbstractTerrainSettings *source)
Copies common properties from a source object.
void writeCommonProperties(QDomElement &element, const QgsReadWriteContext &context) const
Writes common properties from the base class into an XML element.
bool equalsCommon(const QgsAbstractTerrainSettings *other) const
Returns true if common base class settings from other match this object.
virtual void resolveReferences(const QgsProject *project)
After reading settings from XML, resolves references to any layers in a project that have been read a...
void readCommonProperties(const QDomElement &element, const QgsReadWriteContext &context)
Reads common properties from the base class from the given DOM element.
virtual ~QgsAbstractTerrainSettings()
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition qgsproject.h:113
A container for the context for various read/write operations on objects.
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference).
Definition qgis.h:6924