24   delete mHeightMapGenerator;
 
   35   return qobject_cast<QgsRasterLayer *>( mLayer.
layer.data() );
 
   41   mTransformContext = context;
 
   50   cloned->mLayer = mLayer;
 
   51   cloned->mResolution = mResolution;
 
   52   cloned->mSkirtHeight = mSkirtHeight;
 
   53   cloned->updateGenerator();
 
   70   if ( mHeightMapGenerator )
 
   71     return mHeightMapGenerator->heightAt( x, y );
 
   78   elem.setAttribute( QStringLiteral( 
"layer" ), mLayer.
layerId );
 
   79   elem.setAttribute( QStringLiteral( 
"resolution" ), mResolution );
 
   80   elem.setAttribute( QStringLiteral( 
"skirt-height" ), mSkirtHeight );
 
   87   mLayer = 
QgsMapLayerRef( elem.attribute( QStringLiteral( 
"layer" ) ) );
 
   88   mResolution = elem.attribute( QStringLiteral( 
"resolution" ) ).toInt();
 
   89   mSkirtHeight = elem.attribute( QStringLiteral( 
"skirt-height" ) ).toFloat();
 
  106 void QgsDemTerrainGenerator::updateGenerator()
 
  113     te = terrainToMapTransform.transformBoundingBox( te );
 
  116     delete mHeightMapGenerator;
 
  117     mHeightMapGenerator = 
new QgsDemHeightMapGenerator( dem, 
mTerrainTilingScheme, mResolution, mTransformContext );
 
  123     delete mHeightMapGenerator;
 
  124     mHeightMapGenerator = 
nullptr;
 
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
float heightAt(double x, double y, const Qgs3DMapSettings &map) const override
Returns height at (x,y) in terrain's CRS.
~QgsDemTerrainGenerator() override
Type type() const override
What texture generator implementation is this.
void setCrs(const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context)
Sets CRS of the terrain.
void readXml(const QDomElement &elem) override
Read terrain generator's configuration from XML.
QgsTerrainGenerator * clone() const override
Makes a copy of the current instance.
QgsRectangle extent() const override
extent of the terrain in terrain's CRS
void resolveReferences(const QgsProject &project) override
After read of XML, resolve references to any layers that have been read as layer IDs.
QgsRasterLayer * layer() const
Returns raster layer with elevation model to be used for terrain generation.
void writeXml(QDomElement &elem) const override
Write terrain generator's configuration to XML.
QgsChunkLoader * createChunkLoader(QgsChunkNode *node) const override
void setLayer(QgsRasterLayer *layer)
Sets raster layer with elevation model to be used for terrain generation.
QgsDemTerrainGenerator()=default
Constructor for QgsDemTerrainGenerator.
virtual QgsRectangle extent() const
Returns the extent of the layer.
QgsCoordinateReferenceSystem crs
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Q_INVOKABLE QgsMapLayer * mapLayer(const QString &layerId) const
Retrieve a pointer to a registered layer by layer ID.
Represents a raster layer.
A rectangle specified with double values.
Type
Enumeration of the available terrain generators.
@ Dem
Terrain is built from raster layer with digital elevation model.
QgsTilingScheme mTerrainTilingScheme
Tiling scheme of the terrain.
QgsCoordinateReferenceSystem crs() const
Returns CRS of the terrain.
QgsTerrainEntity * mTerrain
void setTerrain(QgsTerrainEntity *t)
Sets terrain entity for the generator (does not transfer ownership)
QgsRectangle tileToExtent(int x, int y, int z) const
Returns map coordinates of the extent of a tile.
_LayerRef< QgsMapLayer > QgsMapLayerRef
const QgsCoordinateReferenceSystem & crs
QPointer< TYPE > layer
Weak pointer to map layer.
QString layerId
Original layer ID.