QGIS API Documentation 3.32.0-Lima (311a8cb8a6)
qgstininterpolator.h
Go to the documentation of this file.
1/***************************************************************************
2 qgstininterpolator.h
3 --------------------
4 begin : March 10, 2008
5 copyright : (C) 2008 by Marco Hugentobler
6 email : marco dot hugentobler at karto dot baug dot ethz dot ch
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 QGSTININTERPOLATOR_H
19#define QGSTININTERPOLATOR_H
20
21#include "qgsinterpolator.h"
22#include <QString>
23#include "qgis_analysis.h"
24
25class QgsFeatureSink;
28class QgsFeature;
29class QgsFeedback;
30class QgsFields;
31
37class ANALYSIS_EXPORT QgsTinInterpolator: public QgsInterpolator
38{
39 public:
40
43 {
46 };
47
53 QgsTinInterpolator( const QList<QgsInterpolator::LayerData> &inputData, TinInterpolation interpolation = Linear, QgsFeedback *feedback = nullptr );
54 ~QgsTinInterpolator() override;
55
56 int interpolatePoint( double x, double y, double &result SIP_OUT, QgsFeedback *feedback ) override;
57
65 static QgsFields triangulationFields();
66
76 void setTriangulationSink( QgsFeatureSink *sink );
77
78 private:
79 QgsTriangulation *mTriangulation = nullptr;
80 TriangleInterpolator *mTriangleInterpolator = nullptr;
81 bool mIsInitialized;
82 QgsFeedback *mFeedback = nullptr;
83
85 QgsFeatureSink *mTriangulationSink = nullptr;
87 TinInterpolation mInterpolation;
88
90 void initialize();
91
100 int insertData( const QgsFeature &f, QgsInterpolator::ValueSource source, int attr, SourceType type );
101
102 int addPointsFromGeometry( const QgsGeometry &g, ValueSource source, double attributeValue );
103};
104
105#endif
An interface for objects which accept features via addFeature(s) methods.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:45
Container of fields for a vector layer.
Definition: qgsfields.h:45
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:164
Interface class for interpolations.
virtual int interpolatePoint(double x, double y, double &result, QgsFeedback *feedback=nullptr)=0
Calculates interpolation value for map coordinates x, y.
ValueSource
Source for interpolated values from features.
Interpolation in a triangular irregular network.
TinInterpolation
Indicates the type of interpolation to be performed.
@ Linear
Linear interpolation.
@ CloughTocher
Clough-Tocher interpolation.
Interface for Triangulation classes.
This is an interface for interpolator classes for triangulations.
#define SIP_OUT
Definition: qgis_sip.h:58