16#ifndef QGSPOINTCLOUDLAYERCHUNKLOADER_P_H
17#define QGSPOINTCLOUDLAYERCHUNKLOADER_P_H
38#include <QFutureWatcher>
39#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 )
40#include <Qt3DRender/QGeometry>
41#include <Qt3DRender/QBuffer>
43#include <Qt3DCore/QGeometry>
44#include <Qt3DCore/QBuffer>
57class QgsPointCloudLayerChunkLoaderFactory :
public QgsChunkLoaderFactory
69 virtual QgsChunkLoader *createChunkLoader( QgsChunkNode *node )
const override;
70 virtual QgsChunkNode *createRootNode()
const override;
71 virtual QVector<QgsChunkNode *> createChildren( QgsChunkNode *node )
const override;
72 virtual int primitivesCount( QgsChunkNode *node )
const override;
76 std::unique_ptr<QgsPointCloud3DSymbol> mSymbol;
77 double mZValueScale = 1.0;
78 double mZValueOffset = 0;
79 int mPointBudget = 1000000;
80 bool mTriangulate =
false;
93class QgsPointCloudLayerChunkLoader :
public QgsChunkLoader
102 QgsPointCloudLayerChunkLoader(
const QgsPointCloudLayerChunkLoaderFactory *factory, QgsChunkNode *node, std::unique_ptr<QgsPointCloud3DSymbol> symbol,
const QgsCoordinateTransform &coordinateTransform,
double zValueScale,
double zValueOffset );
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;
126class QgsPointCloudLayerChunkedEntity :
public QgsChunkedEntity
134 ~QgsPointCloudLayerChunkedEntity();
Encapsulates the render context for a 3D point cloud rendering operation.
Represents a indexed point clouds data in octree.
A rectangle specified with double values.
Helper struct to store ray casting parameters.