QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
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 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.
Base class for storing raw data from point cloud nodes.
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.