18#ifndef QGSCOPCPOINTCLOUDINDEX_H 
   19#define QGSCOPCPOINTCLOUDINDEX_H 
   38#include "lazperf/vlr.hpp" 
   50    explicit QgsCopcPointCloudIndex();
 
   51    ~QgsCopcPointCloudIndex();
 
   53    std::unique_ptr<QgsPointCloudIndex> 
clone() 
const override;
 
   55    void load( 
const QString &fileName ) 
override;
 
  101    virtual void fetchHierarchyPage( uint64_t offset, uint64_t byteSize ) 
const;
 
  103    void populateHierarchy( 
const char *hierarchyPageData, uint64_t byteSize ) 
const;
 
  105    QByteArray fetchCopcStatisticsEvlrData();
 
  107    bool mIsValid = 
false;
 
  108    mutable std::ifstream mCopcFile;
 
  109    mutable lazperf::copc_info_vlr mCopcInfoVlr;
 
  110    mutable QHash<IndexedPointCloudNode, QPair<uint64_t, int32_t>> mHierarchyNodePos; 
 
  112    QVariantMap mOriginalMetadata;
 
  114    std::unique_ptr<QgsLazInfo> mLazInfo = 
nullptr;
 
Represents a indexed point cloud node in octree.
 
This class represents a coordinate reference system (CRS).
 
Class for extracting information contained in LAZ file such as the public header block and variable l...
 
Base class for handling loading QgsPointCloudBlock asynchronously.
 
Represents a indexed point clouds data in octree.
 
virtual QgsPointCloudBlockRequest * asyncNodeData(const IndexedPointCloudNode &n, const QgsPointCloudRequest &request)=0
Returns a handle responsible for loading a node data block.
 
virtual QList< IndexedPointCloudNode > nodeChildren(const IndexedPointCloudNode &n) const
Returns all children of node.
 
AccessType
The access type of the data, local is for local files and remote for remote files (over HTTP)
 
@ Local
Local means the source is a local file on the machine.
 
virtual qint64 pointCount() const =0
Returns the number of points in the point cloud.
 
void copyCommonProperties(QgsPointCloudIndex *destination) const
Copies common properties to the destination index.
 
virtual AccessType accessType() const =0
Returns the access type of the data If the access type is Remote, data will be fetched from an HTTP s...
 
virtual std::unique_ptr< QgsPointCloudIndex > clone() const =0
Returns a clone of the current point cloud index object.
 
virtual bool isValid() const =0
Returns whether index is loaded and valid.
 
virtual QgsCoordinateReferenceSystem crs() const =0
Returns the coordinate reference system of the point cloud index.
 
virtual bool hasNode(const IndexedPointCloudNode &n) const
Returns whether the octree contain given node.
 
virtual void load(const QString &fileName)=0
Loads the index from the file.
 
virtual bool hasStatisticsMetadata() const =0
Returns whether the dataset contains metadata of statistics.
 
virtual std::unique_ptr< QgsPointCloudBlock > nodeData(const IndexedPointCloudNode &n, const QgsPointCloudRequest &request)=0
Returns node data block.
 
virtual QVariantMap originalMetadata() const =0
Returns the original metadata map.
 
Point cloud data request.
 
Class used to store statistics of a point cloud dataset.