16 #ifndef QGSPOINTCLOUDLAYERCHUNKLOADER_P_H
17 #define QGSPOINTCLOUDLAYERCHUNKLOADER_P_H
39 #include <QFutureWatcher>
40 #include <Qt3DRender/QGeometry>
41 #include <Qt3DRender/QBuffer>
42 #include <Qt3DRender/QMaterial>
54 class QgsPointCloudLayerChunkLoaderFactory :
public QgsChunkLoaderFactory
65 double zValueScale,
double zValueOffset,
int pointBudget );
68 virtual QgsChunkLoader *createChunkLoader( QgsChunkNode *node )
const override;
69 virtual QgsChunkNode *createRootNode()
const override;
70 virtual QVector<QgsChunkNode *> createChildren( QgsChunkNode *node )
const override;
71 virtual int primitivesCount( QgsChunkNode *node )
const override;
75 std::unique_ptr< QgsPointCloud3DSymbol > mSymbol;
76 double mZValueScale = 1.0;
77 double mZValueOffset = 0;
78 int mPointBudget = 1000000;
79 bool mTriangulate =
false;
91 class QgsPointCloudLayerChunkLoader :
public QgsChunkLoader
101 QgsPointCloudLayerChunkLoader(
const QgsPointCloudLayerChunkLoaderFactory *factory, QgsChunkNode *node, std::unique_ptr< QgsPointCloud3DSymbol > symbol,
103 ~QgsPointCloudLayerChunkLoader()
override;
105 virtual void cancel()
override;
106 virtual Qt3DCore::QEntity *createEntity( Qt3DCore::QEntity *parent )
override;
109 const QgsPointCloudLayerChunkLoaderFactory *mFactory;
110 std::unique_ptr<QgsPointCloud3DSymbolHandler> mHandler;
112 QFutureWatcher<void> *mFutureWatcher =
nullptr;
126 class QgsPointCloudLayerChunkedEntity :
public QgsChunkedEntity
131 double zValueScale,
double zValueOffset,
int pointBudget );
133 ~QgsPointCloudLayerChunkedEntity();
138 #endif // QGSPOINTCLOUDLAYERCHUNKLOADER_P_H