QGIS API Documentation 3.99.0-Master (e9821da5c6b)
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 "qgis_analysis.h"
22#include "qgsderivativefilter.h"
23
24#include <QString>
25
26using namespace Qt::StringLiterals;
27
33class ANALYSIS_EXPORT QgsHillshadeFilter : public QgsDerivativeFilter
34{
35 public:
36 QgsHillshadeFilter( const QString &inputFile, const QString &outputFile, const QString &outputFormat, double lightAzimuth = 300, double lightAngle = 40 );
37
38 float processNineCellWindow( float *x11, float *x21, float *x31, float *x12, float *x22, float *x32, float *x13, float *x23, float *x33 ) override;
39
40 float lightAzimuth() const { return mLightAzimuth; }
41 void setLightAzimuth( float azimuth );
42 float lightAngle() const { return mLightAngle; }
43 void setLightAngle( float angle );
44
45 private:
46#ifdef HAVE_OPENCL
47
48 const QString openClProgramBaseName() const override
49 {
50 return u"hillshade"_s;
51 }
52#endif
53
54 float mLightAzimuth;
55 float mLightAngle;
56 // Precalculate for speed:
57 float mCosZenithRad;
58 float mSinZenithRad;
59 float mAzimuthRad;
60
61
62#ifdef HAVE_OPENCL
63 private:
64 void addExtraRasterParams( std::vector<float> &params ) override;
65#endif
66};
67
68#endif // QGSHILLSHADEFILTER_H
QgsDerivativeFilter(const QString &inputFile, const QString &outputFile, const QString &outputFormat)
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.
QgsHillshadeFilter(const QString &inputFile, const QString &outputFile, const QString &outputFormat, double lightAzimuth=300, double lightAngle=40)
float lightAzimuth() const