QGIS API Documentation 4.1.0-Master (5bf3c20f3c9)
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 { return u"hillshade"_s; }
49#endif
50
51 float mLightAzimuth;
52 float mLightAngle;
53 // Precalculate for speed:
54 float mCosZenithRad;
55 float mSinZenithRad;
56 float mAzimuthRad;
57
58
59#ifdef HAVE_OPENCL
60 private:
61 void addExtraRasterParams( std::vector<float> &params ) override;
62#endif
63};
64
65#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