Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsidwinterpolator.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 QGSIDWINTERPOLATOR_H 19 : : #define QGSIDWINTERPOLATOR_H 20 : : 21 : : #include "qgsinterpolator.h" 22 : : #include "qgis_analysis.h" 23 : : 24 : : /** 25 : : * \ingroup analysis 26 : : * \class QgsIDWInterpolator 27 : : * \brief Inverse distance weight interpolator. 28 : : */ 29 : 0 : class ANALYSIS_EXPORT QgsIDWInterpolator: public QgsInterpolator 30 : : { 31 : : public: 32 : : 33 : : /** 34 : : * Constructor for QgsIDWInterpolator, with the specified \a layerData sources. 35 : : */ 36 : : QgsIDWInterpolator( const QList<QgsInterpolator::LayerData> &layerData ); 37 : : 38 : : int interpolatePoint( double x, double y, double &result SIP_OUT, QgsFeedback *feedback = nullptr ) override; 39 : : 40 : : /** 41 : : * Sets the distance \a coefficient, the parameter that sets how the values are 42 : : * weighted with distance. Smaller values mean sharper peaks at the data points. 43 : : * 44 : : * Point values are weighted by 1 / ( distance ^ coefficient ). 45 : : * 46 : : * \see distanceCoefficient() 47 : : * \since QGIS 3.0 48 : : */ 49 : : void setDistanceCoefficient( double coefficient ) { mDistanceCoefficient = coefficient;} 50 : : 51 : : /** 52 : : * Returns the distance coefficient, the parameter that sets how the values are 53 : : * weighted with distance. Smaller values mean sharper peaks at the data points. 54 : : * The default is a coefficient of 2. 55 : : * 56 : : * Point values are weighted by 1 / ( distance ^ coefficient ). 57 : : * 58 : : * \see setDistanceCoefficient() 59 : : * \since QGIS 3.0 60 : : */ 61 : : double distanceCoefficient() const { return mDistanceCoefficient; } 62 : : 63 : : private: 64 : : 65 : : QgsIDWInterpolator() = delete; 66 : : 67 : : double mDistanceCoefficient = 2.0; 68 : : }; 69 : : 70 : : #endif