16#ifndef QGSTERRAINENTITY_H
17#define QGSTERRAINENTITY_H
46class QgsTerrainTextureGenerator;
50class TerrainMapUpdateJobFactory;
51class QgsLayerStyleWatcher;
58class QgsTerrainEntity :
public QgsChunkedEntity
63 explicit QgsTerrainEntity( Qgs3DMapSettings *map, Qt3DCore::QNode *parent =
nullptr );
65 ~QgsTerrainEntity()
override;
68 QgsTerrainTextureGenerator *textureGenerator() {
return mTextureGenerator; }
71 Qt3DCore::QTransform *transform()
const {
return mTerrainTransform; }
73 float terrainElevationOffset()
const;
75 QList<QgsRayCastHit> rayIntersection(
const QgsRay3D &ray,
const QgsRayCastContext &context )
const override;
78 void onShowBoundingBoxesChanged();
79 void invalidateMapImages();
80 void onTerrainElevationOffsetChanged();
83 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
84 Qt3DCore::QTransform *mTerrainTransform =
nullptr;
86 std::unique_ptr<TerrainMapUpdateJobFactory> mUpdateJobFactory;
87 QObjectUniquePtr<QgsLayerStyleWatcher> mLayerWatcher;
92class TerrainMapUpdateJob :
public QgsChunkQueueJob
96 TerrainMapUpdateJob( QgsTerrainTextureGenerator *textureGenerator, QgsChunkNode *mNode );
98 void start()
override;
100 void cancel()
override;
103 void onTileReady(
int jobId,
const QImage &image );
106 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
Base class for all map layer types.
Base class for generators of terrain.