QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsremoteeptpointcloudindex.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsremoteeptpointcloudindex.h
3 --------------------
4 begin : March 2021
5 copyright : (C) 2021 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 QGSREMOTEEPTPOINTCLOUDINDEX_H
19#define QGSREMOTEEPTPOINTCLOUDINDEX_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 "qgspointcloudindex.h"
34#include "qgis_sip.h"
36
38#define SIP_NO_FILE
39
42
43class CORE_EXPORT QgsRemoteEptPointCloudIndex: public QgsEptPointCloudIndex
44{
45 Q_OBJECT
46 public:
47
48 explicit QgsRemoteEptPointCloudIndex();
49 ~QgsRemoteEptPointCloudIndex();
50
51 std::unique_ptr<QgsPointCloudIndex> clone() const override;
52
53 QList<IndexedPointCloudNode> nodeChildren( const IndexedPointCloudNode &n ) const override;
54
55 void load( const QString &fileName ) override;
56
57 std::unique_ptr<QgsPointCloudBlock> nodeData( const IndexedPointCloudNode &n, const QgsPointCloudRequest &request ) override;
58 QgsPointCloudBlockRequest *asyncNodeData( const IndexedPointCloudNode &n, const QgsPointCloudRequest &request ) override;
59
60 bool hasNode( const IndexedPointCloudNode &n ) const override;
61
62 bool isValid() const override;
63
64 QgsPointCloudIndex::AccessType accessType() const override { return QgsPointCloudIndex::Remote; }
65
70 void copyCommonProperties( QgsRemoteEptPointCloudIndex *destination ) const;
71
72 private:
73 bool loadNodeHierarchy( const IndexedPointCloudNode &nodeId ) const;
74
75 QString mUrlDirectoryPart;
76 QString mUrlFileNamePart;
77
78 QUrl mUrl;
79
81 mutable QSet<IndexedPointCloudNode> mHierarchyNodes;
82};
83
85
86#endif // QGSREMOTEEPTPOINTCLOUDINDEX_H
Represents a indexed point cloud node in octree.
This class represents a coordinate reference system (CRS).
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.