QGIS API Documentation  3.23.0-Master (eb871beae0)
qgsmeshcontours.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmeshcontours.h
3  -----------------
4  begin : September 25th, 2019
5  copyright : (C) 2018 by Peter Petrik
6  email : zilolv 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 QGSMESHCONTOURS_H
19 #define QGSMESHCONTOURS_H
20 
21 #include <QMap>
22 #include <QString>
23 #include <QStringList>
24 #include <QVector>
25 #include <QPair>
26 #include <QList>
27 #include <memory>
28 #include <limits>
29 
30 #include "qgsmeshdataprovider.h"
31 #include "qgsfeature.h"
32 #include "qgis_analysis.h"
33 #include "qgis_sip.h"
34 #include "qgstriangularmesh.h"
36 
37 class QgsMeshLayer;
38 class QgsPoint;
39 class QgsGeometry;
40 class QgsFeedback;
41 
50 class ANALYSIS_EXPORT QgsMeshContours
51 {
52  public:
53 
59  QgsMeshContours( QgsMeshLayer *layer );
60 
74  QgsMeshContours( const QgsTriangularMesh &triangularMesh,
75  const QgsMesh &nativeMesh,
76  const QVector<double> &datasetValues,
77  const QgsMeshDataBlock scalarActiveFaceFlagValues ) SIP_SKIP;
78 
79 
81 
92  QgsGeometry exportLines( const QgsMeshDatasetIndex &index,
93  double value,
95  QgsFeedback *feedback = nullptr );
96 
107  QgsGeometry exportLines( double value, QgsFeedback *feedback = nullptr ) SIP_SKIP;
108 
120  QgsGeometry exportPolygons( const QgsMeshDatasetIndex &index,
121  double min_value,
122  double max_value,
123  QgsMeshRendererScalarSettings::DataResamplingMethod method,
124  QgsFeedback *feedback = nullptr );
125 
137  QgsGeometry exportPolygons( double min_value, double max_value, QgsFeedback *feedback = nullptr ) SIP_SKIP;
138 
139 
140  private:
141  void populateCache(
142  const QgsMeshDatasetIndex &index,
143  QgsMeshRendererScalarSettings::DataResamplingMethod method );
144 
145  QgsMeshLayer *mMeshLayer = nullptr;
146 
147  // cached values for particular index & interpolation method & layer
148  QgsMeshDatasetIndex mCachedIndex;
149  QgsTriangularMesh mTriangularMesh;
150  QgsMesh mNativeMesh;
151  QVector<double> mDatasetValues;
152  QgsMeshDataBlock mScalarActiveFaceFlagValues;
153 };
154 
155 #endif // QGSMESHCONTOURS_H
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:45
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:125
Exporter of contours lines or polygons from a mesh layer.
QgsMeshDataBlock is a block of integers/doubles that can be used to retrieve: active flags (e....
QgsMeshDatasetIndex is index that identifies the dataset group (e.g.
Represents a mesh layer supporting display of data on structured or unstructured meshes.
Definition: qgsmeshlayer.h:97
Represents a mesh renderer settings for scalar datasets.
DataResamplingMethod
Resampling of value from dataset.
Point geometry type, with support for z-dimension and m-values.
Definition: qgspoint.h:49
Triangular/Derived Mesh is mesh with vertices in map coordinates.
#define SIP_SKIP
Definition: qgis_sip.h:126
Mesh - vertices, edges and faces.