QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
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  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
qgseptpointcloudindex.h
QgsTileDownloadManager
Tile download manager handles downloads of map tiles for the purpose of map rendering....
Definition: qgstiledownloadmanager.h:202
QgsPointCloudIndex::Remote
@ Remote
Remote means it's loaded through a protocol like HTTP.
Definition: qgspointcloudindex.h:171
qgspointcloudattribute.h
QgsPointCloudBlock
Base class for storing raw data from point cloud nodes.
Definition: qgspointcloudblock.h:38
qgsstatisticalsummary.h
QgsPointCloudRequest
Point cloud data request.
Definition: qgspointcloudrequest.h:39
IndexedPointCloudNode
Represents a indexed point cloud node in octree.
Definition: qgspointcloudindex.h:57
qgis_sip.h
QgsCoordinateReferenceSystem
This class represents a coordinate reference system (CRS).
Definition: qgscoordinatereferencesystem.h:211
qgspointcloudindex.h
QgsPointCloudBlockRequest
Base class for handling loading QgsPointCloudBlock asynchronously.
Definition: qgspointcloudblockrequest.h:36
QgsPointCloudIndex::AccessType
AccessType
The access type of the data, local is for local files and remote for remote files (over HTTP)
Definition: qgspointcloudindex.h:168