QGIS API Documentation  3.21.0-Master (909859188c)
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"
32 #include "qgspointcloudattribute.h"
33 #include "qgsstatisticalsummary.h"
34 #include "qgis_sip.h"
35 #include "qgseptpointcloudindex.h"
36 
38 #define SIP_NO_FILE
39 
42 
43 class CORE_EXPORT QgsRemoteEptPointCloudIndex: public QgsEptPointCloudIndex
44 {
45  Q_OBJECT
46  public:
47 
48  explicit QgsRemoteEptPointCloudIndex();
49  ~QgsRemoteEptPointCloudIndex();
50 
51  QList<IndexedPointCloudNode> nodeChildren( const IndexedPointCloudNode &n ) const override;
52 
53  void load( const QString &fileName ) override;
54 
55  QgsPointCloudBlock *nodeData( const IndexedPointCloudNode &n, const QgsPointCloudRequest &request ) override;
56  QgsPointCloudBlockRequest *asyncNodeData( const IndexedPointCloudNode &n, const QgsPointCloudRequest &request ) override;
57 
58  bool hasNode( const IndexedPointCloudNode &n ) const override;
59 
60  bool isValid() const override;
61 
62  QgsPointCloudIndex::AccessType accessType() const override { return QgsPointCloudIndex::Remote; }
63 
64  private:
65  bool loadNodeHierarchy( const IndexedPointCloudNode &nodeId ) const;
66 
67  QString mUrlDirectoryPart;
68  QString mUrlFileNamePart;
69 
70  QUrl mUrl;
71 
73  mutable QSet<IndexedPointCloudNode> mHierarchyNodes;
74 };
75 
77 
78 #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
Local means the source is a local file on the machine.
Point cloud data request.
Tile download manager handles downloads of map tiles for the purpose of map rendering.