QGIS API Documentation 3.41.0-Master (af5edcb665c)
Loading...
Searching...
No Matches
qgshillshadefilter.h
Go to the documentation of this file.
1/***************************************************************************
2 qgshillshadefilter.h - description
3 --------------------------------
4 begin : September 26th, 2011
5 copyright : (C) 2011 by Marco Hugentobler
6 email : marco dot hugentobler at sourcepole 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 QGSHILLSHADEFILTER_H
19#define QGSHILLSHADEFILTER_H
20
21#include "qgsderivativefilter.h"
22#include "qgis_analysis.h"
23
29class ANALYSIS_EXPORT QgsHillshadeFilter : public QgsDerivativeFilter
30{
31 public:
32 QgsHillshadeFilter( const QString &inputFile, const QString &outputFile, const QString &outputFormat, double lightAzimuth = 300, double lightAngle = 40 );
33
34 float processNineCellWindow( float *x11, float *x21, float *x31, float *x12, float *x22, float *x32, float *x13, float *x23, float *x33 ) override;
35
36 float lightAzimuth() const { return mLightAzimuth; }
37 void setLightAzimuth( float azimuth );
38 float lightAngle() const { return mLightAngle; }
39 void setLightAngle( float angle );
40
41 private:
42#ifdef HAVE_OPENCL
43
44 const QString openClProgramBaseName() const override
45 {
46 return QStringLiteral( "hillshade" );
47 }
48#endif
49
50 float mLightAzimuth;
51 float mLightAngle;
52 // Precalculate for speed:
53 float mCosZenithRad;
54 float mSinZenithRad;
55 float mAzimuthRad;
56
57
58#ifdef HAVE_OPENCL
59 private:
60 void addExtraRasterParams( std::vector<float> &params ) override;
61#endif
62};
63
64#endif // QGSHILLSHADEFILTER_H
Adds the ability to calculate derivatives in x- and y-directions.
float processNineCellWindow(float *x11, float *x21, float *x31, float *x12, float *x22, float *x32, float *x13, float *x23, float *x33) override=0
Calculates output value from nine input values.
A hillshade filter.
float lightAzimuth() const