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;
102 virtual void fetchHierarchyPage( uint64_t offset, uint64_t byteSize )
const;
104 QByteArray fetchCopcStatisticsEvlrData();
106 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.
Base class for storing raw data from point cloud nodes.
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 QgsPointCloudBlock * nodeData(const IndexedPointCloudNode &n, const QgsPointCloudRequest &request)=0
Returns node data block.
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 QVariantMap originalMetadata() const =0
Returns the original metadata map.
Point cloud data request.
Class used to store statistics of a point cloud dataset.