QGIS API Documentation  3.4.15-Madeira (e83d02e274)
qgssinglebandpseudocolorrenderer.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgssinglebandpseudocolorrenderer.h
3  ----------------------------------
4  begin : January 2012
5  copyright : (C) 2012 by Marco Hugentobler
6  email : marco 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 QGSSINGLEBANDPSEUDOCOLORRENDERER_H
19 #define QGSSINGLEBANDPSEUDOCOLORRENDERER_H
20 
21 #include "qgis_core.h"
22 #include "qgis.h"
23 #include "qgscolorramp.h"
24 #include "qgscolorrampshader.h"
25 #include "qgsrasterrenderer.h"
26 #include "qgsrectangle.h"
27 
28 class QDomElement;
29 class QgsRasterShader;
30 
36 {
37 
38  public:
39 
41  QgsSingleBandPseudoColorRenderer( QgsRasterInterface *input, int band = -1, QgsRasterShader *shader SIP_TRANSFER = nullptr );
42 
47 
49 
50  static QgsRasterRenderer *create( const QDomElement &elem, QgsRasterInterface *input ) SIP_FACTORY;
51 
52  QgsRasterBlock *block( int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback *feedback = nullptr ) override SIP_FACTORY;
53 
55  void setShader( QgsRasterShader *shader SIP_TRANSFER );
56 
58  QgsRasterShader *shader() { return mShader.get(); }
59 
61  const QgsRasterShader *shader() const SIP_PYNAME( constShader ) { return mShader.get(); }
62 
72  void createShader( QgsColorRamp *colorRamp SIP_TRANSFER = nullptr,
75  int classes = 0,
76  bool clip = false,
77  const QgsRectangle &extent = QgsRectangle() );
78 
79  void writeXml( QDomDocument &doc, QDomElement &parentElem ) const override;
80 
81  void legendSymbologyItems( QList< QPair< QString, QColor > > &symbolItems SIP_OUT ) const override;
82 
83  QList<int> usesBands() const override;
84 
85  void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props = QgsStringMap() ) const override;
86 
91  int band() const { return mBand; }
92 
98  void setBand( int bandNo );
99 
100  double classificationMin() const { return mClassificationMin; }
101  double classificationMax() const { return mClassificationMax; }
102  void setClassificationMin( double min );
103  void setClassificationMax( double max );
104 
105  private:
106 #ifdef SIP_RUN
109 #endif
110 
111  std::unique_ptr< QgsRasterShader > mShader;
112  int mBand;
113 
114  // Minimum and maximum values used for automatic classification, these
115  // values are not used by renderer in rendering process
116  double mClassificationMin;
117  double mClassificationMax;
118 
119 };
120 
121 #endif // QGSSINGLEBANDPSEUDOCOLORRENDERER_H
A rectangle specified with double values.
Definition: qgsrectangle.h:40
Interface for all raster shaders.
virtual QList< int > usesBands() const
Returns a list of band numbers used by the renderer.
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.
Abstract base class for color ramps.
Definition: qgscolorramp.h:31
QgsRasterShader * shader()
Returns the raster shader.
QMap< QString, QString > QgsStringMap
Definition: qgis.h:577
Type
Supported methods for color interpolation.
virtual void toSld(QDomDocument &doc, QDomElement &element, const QgsStringMap &props=QgsStringMap()) const
Used from subclasses to create SLD Rule elements following SLD v1.0 specs.
Raster data container.
int band() const
Returns the band used by the renderer.
#define SIP_TRANSFER
Definition: qgis_sip.h:36
virtual void writeXml(QDomDocument &doc, QDomElement &parentElem) const
Write base class members to xml.
Raster renderer pipe for single band pseudocolor.
#define SIP_FACTORY
Definition: qgis_sip.h:69
Base class for processing filters like renderers, reprojector, resampler etc.
virtual void legendSymbologyItems(QList< QPair< QString, QColor > > &symbolItems) const
Gets symbology items if provided by renderer.
const QgsRasterRenderer & operator=(const QgsRasterRenderer &)=delete
QgsRasterRenderer cannot be copied. Use clone() instead.
Uses breaks from color palette.
#define SIP_OUT
Definition: qgis_sip.h:51
QgsRasterRenderer * clone() const override=0
Clone itself, create deep copy.
Interpolates the color between two class breaks linearly.
ClassificationMode
Classification modes used to create the color ramp shader.
Feedback object tailored for raster block reading.
Raster renderer pipe that applies colors to a raster.
#define SIP_PYNAME(name)
Definition: qgis_sip.h:74