27 return new QgsDemTerrainTileLoader(
mTerrain, node );
34 cloned->mExtent = mExtent;
35 cloned->mResolution = mResolution;
36 cloned->mSkirtHeight = mSkirtHeight;
37 cloned->updateGenerator();
54 if ( mHeightMapGenerator )
55 return mHeightMapGenerator->heightAt( x, y );
63 QDomElement elemExtent = elem.ownerDocument().createElement( QStringLiteral(
"extent" ) );
64 elemExtent.setAttribute( QStringLiteral(
"xmin" ), QString::number( r.
xMinimum() ) );
65 elemExtent.setAttribute( QStringLiteral(
"xmax" ), QString::number( r.
xMaximum() ) );
66 elemExtent.setAttribute( QStringLiteral(
"ymin" ), QString::number( r.
yMinimum() ) );
67 elemExtent.setAttribute( QStringLiteral(
"ymax" ), QString::number( r.
yMaximum() ) );
69 elem.setAttribute( QStringLiteral(
"resolution" ), mResolution );
70 elem.setAttribute( QStringLiteral(
"skirt-height" ), mSkirtHeight );
77 QDomElement elemExtent = elem.firstChildElement( QStringLiteral(
"extent" ) );
78 double xmin = elemExtent.attribute( QStringLiteral(
"xmin" ) ).toDouble();
79 double xmax = elemExtent.attribute( QStringLiteral(
"xmax" ) ).toDouble();
80 double ymin = elemExtent.attribute( QStringLiteral(
"ymin" ) ).toDouble();
81 double ymax = elemExtent.attribute( QStringLiteral(
"ymax" ) ).toDouble();
85 mResolution = elem.attribute( QStringLiteral(
"resolution" ) ).toInt();
86 mSkirtHeight = elem.attribute( QStringLiteral(
"skirt-height" ) ).toFloat();
94 mTransformContext = context;
104 void QgsOnlineTerrainGenerator::updateGenerator()
116 mHeightMapGenerator.reset(
new QgsDemHeightMapGenerator(
nullptr,
mTerrainTilingScheme, mResolution, mTransformContext ) );
A rectangle specified with double values.
3 Implementation of terrain generator that uses online resources to download heightmaps.
QgsCoordinateReferenceSystem crs() const
Returns CRS of the terrain.
3 Definition of the world
QgsRectangle extent() const override
extent of the terrain in terrain's CRS
void writeXml(QDomElement &elem) const override
Write terrain generator's configuration to XML.
void setCrs(const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context)
Sets CRS of the terrain.
QgsTerrainEntity * mTerrain
float heightAt(double x, double y, const Qgs3DMapSettings &map) const override
Returns height at (x,y) in terrain's CRS.
Contains information about the context in which a coordinate transform is executed.
Type type() const override
What texture generator implementation is this.
double yMinimum() const
Returns the y minimum value (bottom side of rectangle).
QgsOnlineTerrainGenerator()
Constructor for QgsOnlineTerrainGenerator.
QgsChunkLoader * createChunkLoader(QgsChunkNode *node) const override
double xMaximum() const
Returns the x maximum value (right side of rectangle).
void setExtent(const QgsRectangle &extent)
Sets extent of the terrain.
Type
Enumeration of the available terrain generators.
QgsTilingScheme mTerrainTilingScheme
Tiling scheme of the terrain.
3 Base class for generators of terrain.
QgsTerrainGenerator * clone() const override
Makes a copy of the current instance.
~QgsOnlineTerrainGenerator() override
This class represents a coordinate reference system (CRS).
void readXml(const QDomElement &elem) override
Read terrain generator's configuration from XML.
bool isNull() const
Test if the rectangle is null (all coordinates zero or after call to setMinimal()).
double xMinimum() const
Returns the x minimum value (left side of rectangle).
double yMaximum() const
Returns the y maximum value (top side of rectangle).
Terrain is built from downloaded tiles with digital elevation model.
3 The class encapsulates tiling scheme (just like with WMTS / TMS / XYZ layers).
QgsRectangle tileToExtent(int x, int y, int z) const
Returns map coordinates of the extent of a tile.