16#ifndef QGSVECTORLAYERCHUNKLOADER_P_H
17#define QGSVECTORLAYERCHUNKLOADER_P_H
41class QgsFeature3DHandler;
48#include <QFutureWatcher>
58class QgsVectorLayerChunkLoaderFactory :
public QgsQuadtreeChunkLoaderFactory
67 virtual QgsChunkLoader *createChunkLoader( QgsChunkNode *node )
const override;
71 std::unique_ptr<QgsAbstract3DSymbol> mSymbol;
84class QgsVectorLayerChunkLoader :
public QgsChunkLoader
90 QgsVectorLayerChunkLoader(
const QgsVectorLayerChunkLoaderFactory *factory, QgsChunkNode *node );
91 ~QgsVectorLayerChunkLoader()
override;
93 virtual void cancel()
override;
94 virtual Qt3DCore::QEntity *createEntity( Qt3DCore::QEntity *parent )
override;
97 const QgsVectorLayerChunkLoaderFactory *mFactory;
98 std::unique_ptr<QgsFeature3DHandler> mHandler;
99 Qgs3DRenderContext mContext;
100 std::unique_ptr<QgsVectorLayerFeatureSource> mSource;
101 bool mCanceled =
false;
102 QFutureWatcher<void> *mFutureWatcher =
nullptr;
116class QgsVectorLayerChunkedEntity :
public QgsChunkedEntity
123 QVector<QgsRayCastingUtils::RayHit> rayIntersection(
const QgsRayCastingUtils::Ray3D &ray,
const QgsRayCastingUtils::RayCastContext &context )
const override;
125 ~QgsVectorLayerChunkedEntity();
127 void onTerrainElevationOffsetChanged(
float newOffset );
130 friend class QgsRuleBasedChunkedEntity;
132 static QVector<QgsRayCastingUtils::RayHit> rayIntersection(
const QList<QgsChunkNode *> &activeNodes,
const QMatrix4x4 &transformMatrix,
const QgsRayCastingUtils::Ray3D &ray,
const QgsRayCastingUtils::RayCastContext &context );
134 Qt3DCore::QTransform *mTransform =
nullptr;
Partial snapshot of vector layer's state (only the members necessary for access to features)
Represents a vector layer which manages a vector based data sets.