QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
qgshillshaderenderer.h
Go to the documentation of this file.
1/***************************************************************************
2 qgshillshaderenderer.cpp
3 ---------------------------------
4 begin : May 2016
5 copyright : (C) 2016 by Nathan Woodrow
6 email : woodrow dot nathan at gmail dot com
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 QGSHILLSHADERENDERER_H
19#define QGSHILLSHADERENDERER_H
20
21
22#include "qgis_core.h"
23#include "qgis_sip.h"
24#include "qgsrasterrenderer.h"
25
26class QgsRasterBlock;
27class QgsRectangle;
29
30
36class CORE_EXPORT QgsHillshadeRenderer : public QgsRasterRenderer
37{
38 public:
39
47 QgsHillshadeRenderer( QgsRasterInterface *input, int band, double lightAzimuth, double lightAltitude );
48
49 QgsHillshadeRenderer *clone() const override SIP_FACTORY;
50 Qgis::RasterRendererFlags flags() const override;
51
58 static QgsRasterRenderer *create( const QDomElement &elem, QgsRasterInterface *input ) SIP_FACTORY;
59
60 void writeXml( QDomDocument &doc, QDomElement &parentElem ) const override;
61
62 QgsRasterBlock *block( int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback *feedback = nullptr ) override SIP_FACTORY;
63
64 QList<int> usesBands() const override;
65
66 void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props = QVariantMap() ) const override;
67
71 int band() const { return mBand; }
72
77 void setBand( int bandNo );
78
83 double azimuth() const { return mLightAzimuth; }
84
89 double altitude() const { return mLightAngle; }
90
95 double zFactor() const { return mZFactor; }
96
101 bool multiDirectional() const { return mMultiDirectional; }
102
108 void setAzimuth( double azimuth ) { mLightAzimuth = azimuth; }
109
115 void setAltitude( double altitude ) { mLightAngle = altitude; }
116
122 void setZFactor( double zfactor ) { mZFactor = zfactor; }
123
129 void setMultiDirectional( bool isMultiDirectional ) { mMultiDirectional = isMultiDirectional; }
130
131 private:
132 int mBand = 1;
133 double mZFactor = 1;
134 double mLightAngle = 45;
135 double mLightAzimuth = 315;
136 bool mMultiDirectional = false;
137
138};
139
140#endif // QGSHILLSHADERENDERER_H
A renderer for generating live hillshade models.
bool multiDirectional() const
Returns true if the renderer is using multi-directional hillshading.
void setZFactor(double zfactor)
Set the Z scaling factor of the result image.
double azimuth() const
Returns the direction of the light over the raster between 0-360.
int band() const
Returns the band used by the renderer.
void setAltitude(double altitude)
Set the altitude of the light source.
void setAzimuth(double azimuth)
Set the azimuth of the light source.
void setMultiDirectional(bool isMultiDirectional)
Sets whether to render using a multi-directional hillshade algorithm.
double altitude() const
Returns the angle of the light source over the raster.
double zFactor() const
Returns the Z scaling factor.
Feedback object tailored for raster block reading.
Raster data container.
Base class for processing filters like renderers, reprojector, resampler etc.
virtual void writeXml(QDomDocument &doc, QDomElement &parentElem) const
Write base class members to xml.
Raster renderer pipe that applies colors to a raster.
virtual Qgis::RasterRendererFlags flags() const
Returns flags which dictate renderer behavior.
QgsRasterBlock * block(int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback *feedback=nullptr) override=0
Read block of data using given extent and size.
virtual QList< int > usesBands() const
Returns a list of band numbers used by the renderer.
virtual void toSld(QDomDocument &doc, QDomElement &element, const QVariantMap &props=QVariantMap()) const
Used from subclasses to create SLD Rule elements following SLD v1.0 specs.
QgsRasterRenderer * clone() const override=0
Clone itself, create deep copy.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
#define SIP_FACTORY
Definition: qgis_sip.h:76