QGIS API Documentation  3.23.0-Master (eb871beae0)
qgsmeshspatialindex.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmeshspatialindex.h
3  ---------------------
4  begin : January 2019
5  copyright : (C) 2019 by Peter Petrik
6  email : zilolv at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSMESHSPATIALINDEX_H
17 #define QGSMESHSPATIALINDEX_H
18 
19 #include "qgis_sip.h"
20 
21 class QgsRectangle;
22 class QgsPointXY;
23 class QgsFeedback;
24 struct QgsMesh;
25 
26 #include "qgis_core.h"
27 #include <QList>
28 #include <QSharedDataPointer>
29 #include "qgsmeshdataprovider.h"
30 
31 class QgsMeshSpatialIndexData;
32 
49 class CORE_EXPORT QgsMeshSpatialIndex
50 {
51  public:
52 
57 
68  explicit QgsMeshSpatialIndex( const QgsMesh &mesh, QgsFeedback *feedback = nullptr, QgsMesh::ElementType elementType = QgsMesh::ElementType::Face );
69 
72 
75 
77  QgsMeshSpatialIndex &operator=( const QgsMeshSpatialIndex &other );
78 
85  QList<int> intersects( const QgsRectangle &rectangle ) const;
86 
94  QList<int> nearestNeighbor( const QgsPointXY &point, int neighbors ) const;
95 
101  QgsMesh::ElementType elementType() const;
102 
106  void addFace( int faceIndex, const QgsMesh &mesh );
107 
111  void removeFace( int faceIndex, const QgsMesh &mesh );
112 
113 
114  private:
115  QgsMesh::ElementType mElementType = QgsMesh::ElementType::Face;
116  QSharedDataPointer<QgsMeshSpatialIndexData> d;
117 };
118 
119 #endif //QGSMESHSPATIALINDEX_H
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:45
A spatial index for QgsMeshFace or QgsMeshEdge objects.
~QgsMeshSpatialIndex()
Destructor finalizes work with spatial index.
A class to represent a 2D point.
Definition: qgspointxy.h:59
A rectangle specified with double values.
Definition: qgsrectangle.h:42
Mesh - vertices, edges and faces.
ElementType
Defines type of mesh elements.