16#ifndef QGSTERRAINENTITY_H
17#define QGSTERRAINENTITY_H
43class QgsTerrainTextureGenerator;
47class TerrainMapUpdateJobFactory;
54class QgsTerrainEntity :
public QgsChunkedEntity
59 explicit QgsTerrainEntity( Qgs3DMapSettings *map, Qt3DCore::QNode *parent =
nullptr );
61 ~QgsTerrainEntity()
override;
64 QgsTerrainTextureGenerator *textureGenerator() {
return mTextureGenerator; }
67 Qt3DCore::QTransform *transform()
const {
return mTerrainTransform; }
69 float terrainElevationOffset()
const;
71 QList<QgsRayCastHit> rayIntersection(
const QgsRay3D &ray,
const QgsRayCastContext &context )
const override;
74 void onShowBoundingBoxesChanged();
75 void invalidateMapImages();
76 void onLayersChanged();
77 void onTerrainElevationOffsetChanged();
80 void connectToLayersRepaintRequest();
82 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
83 Qt3DCore::QTransform *mTerrainTransform =
nullptr;
85 std::unique_ptr<TerrainMapUpdateJobFactory> mUpdateJobFactory;
88 QList<QgsMapLayer *> mLayers;
93class TerrainMapUpdateJob :
public QgsChunkQueueJob
97 TerrainMapUpdateJob( QgsTerrainTextureGenerator *textureGenerator, QgsChunkNode *mNode );
99 void start()
override;
101 void cancel()
override;
104 void onTileReady(
int jobId,
const QImage &image );
107 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
Base class for all map layer types.
Base class for generators of terrain.