16#ifndef QGSGLOBECHUNKEDENTITY_H
17#define QGSGLOBECHUNKEDENTITY_H
47class QgsGlobeMapUpdateJobFactory;
48class QgsTerrainTextureGenerator;
49class QgsLayerStyleWatcher;
51class QgsGlobeChunkLoader :
public QgsChunkLoader
56 void start()
override;
58 Qt3DCore::QEntity *createEntity( Qt3DCore::QEntity *parent )
override;
62 QgsTerrainTextureGenerator *mTextureGenerator;
70class QgsGlobeMapUpdateJob :
public QgsChunkQueueJob
74 QgsGlobeMapUpdateJob( QgsTerrainTextureGenerator *textureGenerator, QgsChunkNode *node );
75 void start()
override;
77 void cancel()
override;
80 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
84class QgsGlobeChunkLoaderFactory :
public QgsChunkLoaderFactory
88 QgsGlobeChunkLoaderFactory( Qgs3DMapSettings *mapSettings );
90 ~QgsGlobeChunkLoaderFactory()
override;
92 QgsChunkLoader *createChunkLoader( QgsChunkNode *node )
const override;
94 QgsChunkNode *createRootNode()
const override;
96 QVector<QgsChunkNode *> createChildren( QgsChunkNode *node )
const override;
99 Qgs3DMapSettings *mMapSettings =
nullptr;
100 std::unique_ptr<QgsTerrainTextureGenerator> mTextureGenerator;
101 QgsDistanceArea mDistanceArea;
102 QgsCoordinateTransform mGlobeCrsToLatLon;
111class _3D_EXPORT QgsGlobeEntity :
public QgsChunkedEntity
116 QgsGlobeEntity( Qgs3DMapSettings *mapSettings );
117 ~QgsGlobeEntity()
override;
119 QList<QgsRayCastHit> rayIntersection(
const QgsRay3D &ray,
const QgsRayCastContext &context )
const override;
122 void invalidateMapImages();
125 std::unique_ptr<QgsGlobeMapUpdateJobFactory> mUpdateJobFactory;
126 QObjectUniquePtr<QgsLayerStyleWatcher> mLayerWatcher =
nullptr;
Rendering context for preparation of 3D entities.
Base class for all map layer types.