16#ifndef QGSPOINTCLOUDLAYERCHUNKLOADER_P_H 
   17#define QGSPOINTCLOUDLAYERCHUNKLOADER_P_H 
   39#include <QFutureWatcher> 
   40#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 
   41#include <Qt3DRender/QGeometry> 
   42#include <Qt3DRender/QBuffer> 
   44#include <Qt3DCore/QGeometry> 
   45#include <Qt3DCore/QBuffer> 
   47#include <Qt3DRender/QMaterial> 
   59class QgsPointCloudLayerChunkLoaderFactory : 
public QgsChunkLoaderFactory
 
   70                                          double zValueScale, 
double zValueOffset, 
int pointBudget );
 
   73    virtual QgsChunkLoader *createChunkLoader( QgsChunkNode *node ) 
const override;
 
   74    virtual QgsChunkNode *createRootNode() 
const override;
 
   75    virtual QVector<QgsChunkNode *> createChildren( QgsChunkNode *node ) 
const override;
 
   76    virtual int primitivesCount( QgsChunkNode *node ) 
const override;
 
   80    std::unique_ptr< QgsPointCloud3DSymbol > mSymbol;
 
   81    double mZValueScale = 1.0;
 
   82    double mZValueOffset = 0;
 
   83    int mPointBudget = 1000000;
 
   84    bool mTriangulate = 
false;
 
   97class QgsPointCloudLayerChunkLoader : 
public QgsChunkLoader
 
  107    QgsPointCloudLayerChunkLoader( 
const QgsPointCloudLayerChunkLoaderFactory *factory, QgsChunkNode *node, std::unique_ptr< QgsPointCloud3DSymbol > symbol,
 
  109    ~QgsPointCloudLayerChunkLoader() 
override;
 
  111    virtual void cancel() 
override;
 
  112    virtual Qt3DCore::QEntity *createEntity( Qt3DCore::QEntity *parent ) 
override;
 
  115    const QgsPointCloudLayerChunkLoaderFactory *mFactory;
 
  116    std::unique_ptr<QgsPointCloud3DSymbolHandler> mHandler;
 
  118    QFutureWatcher<void> *mFutureWatcher = 
nullptr;
 
  132class QgsPointCloudLayerChunkedEntity : 
public QgsChunkedEntity
 
  137        double zValueScale, 
double zValueOffset, 
int pointBudget );
 
  139    QVector<QgsRayCastingUtils::RayHit> rayIntersection( 
const QgsRayCastingUtils::Ray3D &ray, 
const QgsRayCastingUtils::RayCastContext &context ) 
const override;
 
  141    ~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.