16#ifndef QGSTILEDSCENECHUNKLOADER_P_H
17#define QGSTILEDSCENECHUNKLOADER_P_H
38#include <QFutureWatcher>
52class QgsTiledSceneChunkLoader :
public QgsChunkLoader
56 QgsTiledSceneChunkLoader(
57 const Qgs3DRenderContext &context,
const QgsTiledSceneIndex &index, QgsCoordinateReferenceSystem tileCrs, QgsCoordinateReferenceSystem layerCrs,
double zValueScale,
double zValueOffset
60 QFuture<QgsChunkLoaderResult> loadChunk( QgsChunkNode *node )
override;
61 QgsChunkNode *createRootNode()
const override;
62 QFuture<QVector<QgsChunkNode *>> createChildren( QgsChunkNode *node )
override;
64 QgsChunkNode *nodeForTile(
const QgsTiledSceneTile &t,
const QgsChunkNodeId &nodeId, QgsChunkNode *parent )
const;
65 QFuture<void> fetchHierarchyForNode(
long long nodeId );
68 QFuture<void> prepareChildren( QgsChunkNode *node );
70 QHash<long long, QFuture<void>> mRunningHierarchyFetches;
75 Qgs3DRenderContext mRenderContext;
76 QgsTiledSceneIndex mIndex;
77 double mZValueScale = 1.0;
78 double mZValueOffset = 0;
79 QgsCoordinateReferenceSystem mLayerCrs;
80 QgsCoordinateTransform mBoundsTransform;
95class QgsTiledSceneLayerChunkedEntity :
public QgsChunkedEntity
99 explicit QgsTiledSceneLayerChunkedEntity(
100 Qgs3DMapSettings *map,
101 const QgsTiledSceneIndex &index,
102 QgsCoordinateReferenceSystem tileCrs,
103 QgsCoordinateReferenceSystem layerCrs,
104 double maximumScreenError,
105 bool showBoundingBoxes,
110 ~QgsTiledSceneLayerChunkedEntity()
override;
112 QList<QgsRayCastHit> rayIntersection(
const QgsRay3D &ray,
const QgsRayCastContext &context )
const override;
115 mutable QgsTiledSceneIndex mIndex;