16#ifndef QGSGLOBECHUNKEDENTITY_H
17#define QGSGLOBECHUNKEDENTITY_H
45class QgsGlobeMapUpdateJobFactory;
46class QgsTerrainTextureGenerator;
48class QgsGlobeChunkLoader :
public QgsChunkLoader
53 void start()
override;
55 Qt3DCore::QEntity *createEntity( Qt3DCore::QEntity *parent )
override;
59 QgsTerrainTextureGenerator *mTextureGenerator;
67class QgsGlobeMapUpdateJob :
public QgsChunkQueueJob
71 QgsGlobeMapUpdateJob( QgsTerrainTextureGenerator *textureGenerator, QgsChunkNode *node );
72 void start()
override;
74 void cancel()
override;
77 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
81class QgsGlobeChunkLoaderFactory :
public QgsChunkLoaderFactory
85 QgsGlobeChunkLoaderFactory( Qgs3DMapSettings *mapSettings );
87 ~QgsGlobeChunkLoaderFactory()
override;
89 QgsChunkLoader *createChunkLoader( QgsChunkNode *node )
const override;
91 QgsChunkNode *createRootNode()
const override;
93 QVector<QgsChunkNode *> createChildren( QgsChunkNode *node )
const override;
96 Qgs3DMapSettings *mMapSettings =
nullptr;
97 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
98 QgsDistanceArea mDistanceArea;
99 QgsCoordinateTransform mGlobeCrsToLatLon;
100 double mRadiusX, mRadiusY, mRadiusZ;
108class _3D_EXPORT QgsGlobeEntity :
public QgsChunkedEntity
113 QgsGlobeEntity( Qgs3DMapSettings *mapSettings );
114 ~QgsGlobeEntity()
override;
116 QList<QgsRayCastHit> rayIntersection(
const QgsRay3D &ray,
const QgsRayCastContext &context )
const override;
119 void invalidateMapImages();
120 void onLayersChanged();
123 void connectToLayersRepaintRequest();
126 std::unique_ptr<QgsGlobeMapUpdateJobFactory> mUpdateJobFactory;
129 QList<QgsMapLayer *> mLayers;
Rendering context for preparation of 3D entities.
Base class for all map layer types.