18 #include <Qt3DRender/QGeometryRenderer>    31 FlatTerrainChunkLoader::FlatTerrainChunkLoader( QgsTerrainEntity *terrain, QgsChunkNode *node )
    32   : QgsTerrainTileLoader( terrain, node )
    38 Qt3DCore::QEntity *FlatTerrainChunkLoader::createEntity( Qt3DCore::QEntity *parent )
    40   QgsTerrainTileEntity *entity = 
new QgsTerrainTileEntity( mNode->tileId() );
    47   mTileGeometry = 
new Qt3DExtras::QPlaneGeometry;
    49   Qt3DRender::QGeometryRenderer *mesh = 
new Qt3DRender::QGeometryRenderer;
    50   mesh->setGeometry( mTileGeometry ); 
    51   entity->addComponent( mesh ); 
    60   Qt3DCore::QTransform *transform = 
nullptr;
    61   transform = 
new Qt3DCore::QTransform();
    62   entity->addComponent( transform );
    67   double half = side / 2;
    69   transform->setScale( side );
    70   transform->setTranslation( QVector3D( bbox.
xMin + half, 0, bbox.
zMin + half ) );
    72   entity->setEnabled( 
false );
    73   entity->setParent( parent );
    83   return new FlatTerrainChunkLoader( 
mTerrain, node );
    90   cloned->mExtent = mExtent;
    91   cloned->updateTilingScheme();
   114   QDomElement elemExtent = elem.ownerDocument().createElement( QStringLiteral( 
"extent" ) );
   115   elemExtent.setAttribute( QStringLiteral( 
"xmin" ), QString::number( r.
xMinimum() ) );
   116   elemExtent.setAttribute( QStringLiteral( 
"xmax" ), QString::number( r.
xMaximum() ) );
   117   elemExtent.setAttribute( QStringLiteral( 
"ymin" ), QString::number( r.
yMinimum() ) );
   118   elemExtent.setAttribute( QStringLiteral( 
"ymax" ), QString::number( r.
yMaximum() ) );
   125   QDomElement elemExtent = elem.firstChildElement( QStringLiteral( 
"extent" ) );
   126   double xmin = elemExtent.attribute( QStringLiteral( 
"xmin" ) ).toDouble();
   127   double xmax = elemExtent.attribute( QStringLiteral( 
"xmax" ) ).toDouble();
   128   double ymin = elemExtent.attribute( QStringLiteral( 
"ymin" ) ).toDouble();
   129   double ymax = elemExtent.attribute( QStringLiteral( 
"ymax" ) ).toDouble();
   139   updateTilingScheme();
   145   updateTilingScheme();
   148 void QgsFlatTerrainGenerator::updateTilingScheme()
   150   if ( mExtent.isNull() )
 3 Axis-aligned bounding box - in world coords. 
 
void rootChunkHeightRange(float &hMin, float &hMax) const override
Returns height range of the root chunk in world coordinates. 
 
3 Terrain generator that creates a simple square flat area. 
 
A rectangle specified with double values. 
 
void writeXml(QDomElement &elem) const override
Write terrain generator's configuration to XML. 
 
bool isTerrainShadingEnabled() const
Returns whether terrain shading is enabled. 
 
QgsPhongMaterialSettings terrainShadingMaterial() const
Returns terrain shading material. 
 
QgsCoordinateReferenceSystem crs() const
Returns CRS of the terrain. 
 
3 Definition of the world 
 
void readXml(const QDomElement &elem) override
Read terrain generator's configuration from XML. 
 
QgsChunkLoader * createChunkLoader(QgsChunkNode *node) const override SIP_FACTORY
 
QgsRectangle extent() const override
extent of the terrain in terrain's CRS 
 
QgsTerrainEntity * mTerrain
 
QgsTerrainGenerator * clone() const override SIP_FACTORY
Makes a copy of the current instance. 
 
double yMinimum() const
Returns the y minimum value (bottom side of rectangle). 
 
double xMaximum() const
Returns the x maximum value (right side of rectangle). 
 
Type type() const override
What texture generator implementation is this. 
 
Type
Enumeration of the available terrain generators. 
 
QgsTilingScheme mTerrainTilingScheme
Tiling scheme of the terrain. 
 
3 Base class for generators of terrain. 
 
This class represents a coordinate reference system (CRS). 
 
double xMinimum() const
Returns the x minimum value (left side of rectangle). 
 
void setCrs(const QgsCoordinateReferenceSystem &crs)
Sets CRS of the terrain. 
 
double yMaximum() const
Returns the y maximum value (top side of rectangle). 
 
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. 
 
The whole terrain is flat area. 
 
void setExtent(const QgsRectangle &extent)
Sets extent of the terrain. 
 
QgsRectangle extent() const override
extent of the terrain in terrain's CRS