16#ifndef QGSGLOBECHUNKEDENTITY_H
17#define QGSGLOBECHUNKEDENTITY_H
46class QgsGlobeMapUpdateJobFactory;
47class QgsTerrainTextureGenerator;
48class QgsLayerStyleWatcher;
50class QgsGlobeChunkLoader :
public QgsChunkLoader
55 void start()
override;
57 Qt3DCore::QEntity *createEntity( Qt3DCore::QEntity *parent )
override;
61 QgsTerrainTextureGenerator *mTextureGenerator;
69class QgsGlobeMapUpdateJob :
public QgsChunkQueueJob
73 QgsGlobeMapUpdateJob( QgsTerrainTextureGenerator *textureGenerator, QgsChunkNode *node );
74 void start()
override;
76 void cancel()
override;
79 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
83class QgsGlobeChunkLoaderFactory :
public QgsChunkLoaderFactory
87 QgsGlobeChunkLoaderFactory( Qgs3DMapSettings *mapSettings );
89 ~QgsGlobeChunkLoaderFactory()
override;
91 QgsChunkLoader *createChunkLoader( QgsChunkNode *node )
const override;
93 QgsChunkNode *createRootNode()
const override;
95 QVector<QgsChunkNode *> createChildren( QgsChunkNode *node )
const override;
98 Qgs3DMapSettings *mMapSettings =
nullptr;
99 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
100 QgsDistanceArea mDistanceArea;
101 QgsCoordinateTransform mGlobeCrsToLatLon;
102 double mRadiusX, mRadiusY, mRadiusZ;
110class _3D_EXPORT QgsGlobeEntity :
public QgsChunkedEntity
115 QgsGlobeEntity( Qgs3DMapSettings *mapSettings );
116 ~QgsGlobeEntity()
override;
118 QList<QgsRayCastHit> rayIntersection(
const QgsRay3D &ray,
const QgsRayCastContext &context )
const override;
121 void invalidateMapImages();
124 std::unique_ptr<QgsGlobeMapUpdateJobFactory> mUpdateJobFactory;
125 QObjectUniquePtr<QgsLayerStyleWatcher> mLayerWatcher =
nullptr;
Rendering context for preparation of 3D entities.
Base class for all map layer types.