16#ifndef QGSVECTORLAYERCHUNKLOADER_P_H
17#define QGSVECTORLAYERCHUNKLOADER_P_H
40class QgsFeature3DHandler;
47#include <QFutureWatcher>
57class QgsVectorLayerChunkLoaderFactory :
public QgsQuadtreeChunkLoaderFactory
66 virtual QgsChunkLoader *createChunkLoader( QgsChunkNode *node )
const override;
70 std::unique_ptr<QgsAbstract3DSymbol> mSymbol;
83class QgsVectorLayerChunkLoader :
public QgsChunkLoader
89 QgsVectorLayerChunkLoader(
const QgsVectorLayerChunkLoaderFactory *factory, QgsChunkNode *node );
90 ~QgsVectorLayerChunkLoader()
override;
92 virtual void cancel()
override;
93 virtual Qt3DCore::QEntity *createEntity( Qt3DCore::QEntity *parent )
override;
96 const QgsVectorLayerChunkLoaderFactory *mFactory;
97 std::unique_ptr<QgsFeature3DHandler> mHandler;
99 std::unique_ptr<QgsVectorLayerFeatureSource> mSource;
100 bool mCanceled =
false;
101 QFutureWatcher<void> *mFutureWatcher =
nullptr;
116class QgsVectorLayerChunkedEntity :
public QgsChunkedEntity
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,
const QgsVector3D &origin );
134 Qt3DCore::QTransform *mTransform =
nullptr;
136 bool applyTerrainOffset()
const;
Class for storage of 3D vectors similar to QVector3D, with the difference that it uses double precisi...
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.
Helper struct to store ray casting parameters.