QGIS API Documentation 3.34.0-Prizren (ffbdd678812)
Loading...
Searching...
No Matches
qgsremotecopcpointcloudindex.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsremotecopcpointcloudindex.h
3 --------------------
4 begin : March 2022
5 copyright : (C) 2022 by Belgacem Nedjima
6 email : belgacem dot nedjima at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSREMOTECOPCPOINTCLOUDINDEX_H
19#define QGSREMOTECOPCPOINTCLOUDINDEX_H
20
21#include <QObject>
22#include <QString>
23#include <QHash>
24#include <QStringList>
25#include <QVector>
26#include <QList>
27#include <QFile>
28#include <QUrl>
29#include <QSet>
30
31#include <sstream>
32
33#include "qgspointcloudindex.h"
35#include "qgslazinfo.h"
36
37#include "lazperf/header.hpp"
38#include "lazperf/vlr.hpp"
39
41#define SIP_NO_FILE
42
46
47class CORE_EXPORT QgsRemoteCopcPointCloudIndex: public QgsCopcPointCloudIndex
48{
49 Q_OBJECT
50 public:
51
52 explicit QgsRemoteCopcPointCloudIndex();
53 ~QgsRemoteCopcPointCloudIndex();
54
55 std::unique_ptr<QgsPointCloudIndex> clone() const override;
56
57 QList<IndexedPointCloudNode> nodeChildren( const IndexedPointCloudNode &n ) const override;
58
59 void load( const QString &url ) override;
60
61 std::unique_ptr<QgsPointCloudBlock> nodeData( const IndexedPointCloudNode &n, const QgsPointCloudRequest &request ) override;
62 QgsPointCloudBlockRequest *asyncNodeData( const IndexedPointCloudNode &n, const QgsPointCloudRequest &request ) override;
63
64 bool hasNode( const IndexedPointCloudNode &n ) const override;
65
66 bool isValid() const override;
67
68 QgsPointCloudIndex::AccessType accessType() const override { return QgsPointCloudIndex::Remote; }
69
74 void copyCommonProperties( QgsRemoteCopcPointCloudIndex *destination ) const;
75
76 protected:
77 virtual bool fetchNodeHierarchy( const IndexedPointCloudNode &nodeId ) const override;
78 virtual void fetchHierarchyPage( uint64_t offset, uint64_t byteSize ) const override;
79
80 QUrl mUrl;
81
82 mutable QSet<IndexedPointCloudNode> mHierarchyNodes;
83};
84
86
87#endif // QGSREMOTECOPCPOINTCLOUDINDEX_H
Represents a indexed point cloud node in octree.
This class represents a coordinate reference system (CRS).
Base class for handling loading QgsPointCloudBlock asynchronously from a remote COPC dataset.
Base class for handling loading QgsPointCloudBlock asynchronously.
AccessType
The access type of the data, local is for local files and remote for remote files (over HTTP)
@ Remote
Remote means it's loaded through a protocol like HTTP.
Point cloud data request.
Tile download manager handles downloads of map tiles for the purpose of map rendering.