16#ifndef QGSVECTORLAYERCHUNKLOADER_P_H
17#define QGSVECTORLAYERCHUNKLOADER_P_H
44class QgsFeature3DHandler;
51#include <QFutureWatcher>
62class QgsVectorLayerChunkLoader :
public QgsQuadtreeChunkLoader
68 QgsVectorLayerChunkLoader(
const Qgs3DRenderContext &context, QgsVectorLayer *vl, QgsAbstract3DSymbol *symbol,
double zMin,
double zMax,
int maxFeatures );
70 QFuture<QgsChunkLoaderResult> loadChunk( QgsChunkNode *node )
override;
71 QgsChunkNode *createRootNode()
const override;
72 QFuture<QVector<QgsChunkNode *>> createChildren( QgsChunkNode *node )
override;
77 QHash< QString, bool > map;
83 std::shared_ptr<QgsFeature3DHandler> handler;
84 Qgs3DRenderContext renderCtx;
87 static void loadChunkInWorker(
88 QPromise<ChunkData> &promise,
89 std::shared_ptr<QgsFeature3DHandler> handler,
90 Qgs3DRenderContext renderCtx,
91 const std::unique_ptr<QgsVectorLayerFeatureSource> &source,
92 const QgsFeatureRequest &req,
95 const std::shared_ptr<NodeIsLeafMap> &nodesAreLeafs,
96 QgsCoordinateTransform layerToRenderCrs,
100 Qt3DCore::QEntity *createEntity( QgsChunkNode *node, ChunkData data, Qt3DCore::QEntity *parent );
102 Qgs3DRenderContext mRenderContext;
103 QgsVectorLayer *mLayer;
104 std::unique_ptr<QgsAbstract3DSymbol> mSymbol;
105 std::shared_ptr<NodeIsLeafMap> mNodesAreLeafs;
108 bool mIsGeocentric =
false;
111 QgsChunkNodeId mRootNodeId;
112 QgsCoordinateTransform mCrsToLatLon;
116 friend class QgsVectorLayerChunkedEntity;
130class QgsVectorLayerChunkedEntity :
public QgsAbstractFeatureBasedChunkedEntity
135 explicit QgsVectorLayerChunkedEntity( Qgs3DMapSettings *map, QgsVectorLayer *vl,
double zMin,
double zMax,
const QgsVectorLayer3DTilingSettings &tilingSettings, QgsAbstract3DSymbol *symbol );
137 ~QgsVectorLayerChunkedEntity()
override;
140 bool applyTerrainOffset()
const override;
Abstract base class for 3D symbols that are used by VectorLayer3DRenderer objects.
Defines configuration of how a vector layer gets tiled for 3D rendering.
Partial snapshot of vector layer's state (only the members necessary for access to features).
Represents a vector layer which manages a vector based dataset.