16#ifndef QGSGLOBECHUNKEDENTITY_H
17#define QGSGLOBECHUNKEDENTITY_H
43class QgsGlobeMapUpdateJobFactory;
44class QgsTerrainTextureGenerator;
46class QgsGlobeChunkLoader :
public QgsChunkLoader
50 QgsGlobeChunkLoader( QgsChunkNode *node, QgsTerrainTextureGenerator *textureGenerator,
const QgsCoordinateTransform &globeCrsToLatLon );
51 void start()
override;
53 Qt3DCore::QEntity *createEntity( Qt3DCore::QEntity *parent )
override;
56 QgsTerrainTextureGenerator *mTextureGenerator;
57 QgsCoordinateTransform mGlobeCrsToLatLon;
64class QgsGlobeMapUpdateJob :
public QgsChunkQueueJob
68 QgsGlobeMapUpdateJob( QgsTerrainTextureGenerator *textureGenerator, QgsChunkNode *node );
69 void start()
override;
71 void cancel()
override;
74 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
78class QgsGlobeChunkLoaderFactory :
public QgsChunkLoaderFactory
82 QgsGlobeChunkLoaderFactory( Qgs3DMapSettings *mapSettings );
84 ~QgsGlobeChunkLoaderFactory()
override;
86 QgsChunkLoader *createChunkLoader( QgsChunkNode *node )
const override;
88 QgsChunkNode *createRootNode()
const override;
90 QVector<QgsChunkNode *> createChildren( QgsChunkNode *node )
const override;
93 Qgs3DMapSettings *mMapSettings =
nullptr;
94 QgsTerrainTextureGenerator *mTextureGenerator =
nullptr;
95 QgsDistanceArea mDistanceArea;
96 QgsCoordinateTransform mGlobeCrsToLatLon;
97 double mRadiusX, mRadiusY, mRadiusZ;
105class _3D_EXPORT QgsGlobeEntity :
public QgsChunkedEntity
110 QgsGlobeEntity( Qgs3DMapSettings *mapSettings );
111 ~QgsGlobeEntity()
override;
113 QList<QgsRayCastHit> rayIntersection(
const QgsRay3D &ray,
const QgsRayCastContext &context )
const override;
116 void invalidateMapImages();
117 void onLayersChanged();
120 void connectToLayersRepaintRequest();
123 std::unique_ptr<QgsGlobeMapUpdateJobFactory> mUpdateJobFactory;
126 QList<QgsMapLayer *> mLayers;
Base class for all map layer types.