16#ifndef QGSVECTORLAYERCHUNKLOADER_P_H
17#define QGSVECTORLAYERCHUNKLOADER_P_H
43class QgsFeature3DHandler;
50#include <QFutureWatcher>
60class QgsVectorLayerChunkLoaderFactory :
public QgsQuadtreeChunkLoaderFactory
66 QgsVectorLayerChunkLoaderFactory(
const Qgs3DRenderContext &context, QgsVectorLayer *vl, QgsAbstract3DSymbol *symbol,
double zMin,
double zMax,
int maxFeatures );
69 QgsChunkLoader *createChunkLoader( QgsChunkNode *node )
const override;
70 QgsChunkNode *createRootNode()
const override;
71 bool canCreateChildren( QgsChunkNode *node )
override;
72 QVector<QgsChunkNode *> createChildren( QgsChunkNode *node )
const override;
74 Qgs3DRenderContext mRenderContext;
75 QgsVectorLayer *mLayer;
76 std::unique_ptr<QgsAbstract3DSymbol> mSymbol;
78 mutable QHash< QString, bool > mNodesAreLeafs;
81 bool mIsGeocentric =
false;
84 QgsChunkNodeId mRootNodeId;
85 QgsCoordinateTransform mCrsToLatLon;
99class QgsVectorLayerChunkLoader :
public QgsChunkLoader
105 QgsVectorLayerChunkLoader(
const QgsVectorLayerChunkLoaderFactory *factory, QgsChunkNode *node );
106 ~QgsVectorLayerChunkLoader()
override;
108 void start()
override;
109 void cancel()
override;
110 Qt3DCore::QEntity *createEntity( Qt3DCore::QEntity *parent )
override;
113 const QgsVectorLayerChunkLoaderFactory *mFactory;
114 std::unique_ptr<QgsFeature3DHandler> mHandler;
115 Qgs3DRenderContext mRenderContext;
116 std::unique_ptr<QgsVectorLayerFeatureSource> mSource;
117 bool mCanceled =
false;
118 QFutureWatcher<void> *mFutureWatcher =
nullptr;
120 bool mNodeIsLeaf =
false;
134class QgsVectorLayerChunkedEntity :
public QgsAbstractFeatureBasedChunkedEntity
139 explicit QgsVectorLayerChunkedEntity( Qgs3DMapSettings *map, QgsVectorLayer *vl,
double zMin,
double zMax,
const QgsVectorLayer3DTilingSettings &tilingSettings, QgsAbstract3DSymbol *symbol );
141 ~QgsVectorLayerChunkedEntity()
override;
144 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.