QGIS API Documentation  2.99.0-Master (e077efd)
qgspalettedrasterrenderer.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgspalettedrasterrenderer.h
3  ---------------------------
4  begin : December 2011
5  copyright : (C) 2011 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 QGSPALETTEDRASTERRENDERER_H
19 #define QGSPALETTEDRASTERRENDERER_H
20 
21 #include <QVector>
22 
23 #include "qgsrasterrenderer.h"
24 
25 class QColor;
26 class QDomElement;
27 
32 {
33  public:
35  QgsPalettedRasterRenderer( QgsRasterInterface* input, int bandNumber, QColor* colorArray, int nColors, const QVector<QString>& labels = QVector<QString>() );
36  QgsPalettedRasterRenderer( QgsRasterInterface* input, int bandNumber, QRgb* colorArray, int nColors, const QVector<QString>& labels = QVector<QString>() );
38  QgsPalettedRasterRenderer * clone() const override;
39  static QgsRasterRenderer* create( const QDomElement& elem, QgsRasterInterface* input );
40 
41  QgsRasterBlock *block( int bandNo, const QgsRectangle & extent, int width, int height, QgsRasterBlockFeedback* feedback = nullptr ) override;
42 
44  int nColors() const { return mNColors; }
46  QColor* colors() const;
47 
51  QRgb* rgbArray() const;
52 
55  QString label( int idx ) const { return mLabels.value( idx ); }
56 
59  void setLabel( int idx, const QString& label );
60 
61  void writeXml( QDomDocument& doc, QDomElement& parentElem ) const override;
62 
63  void legendSymbologyItems( QList< QPair< QString, QColor > >& symbolItems ) const override;
64 
65  QList<int> usesBands() const override;
66 
67  private:
68  int mBand;
70  QRgb* mColors;
72  int mNColors;
74  QVector<QString> mLabels;
75 
77  const QgsPalettedRasterRenderer& operator=( const QgsPalettedRasterRenderer& );
78 };
79 
80 #endif // QGSPALETTEDRASTERRENDERER_H
A rectangle specified with double values.
Definition: qgsrectangle.h:35
Renderer for paletted raster images.
virtual QList< int > usesBands() const
Returns a list of band numbers used by the renderer.
int nColors() const
Returns number of colors.
Raster data container.
QString label(int idx) const
Return optional category label.
Base class for processing filters like renderers, reprojector, resampler etc.
QgsRasterRenderer * clone() const override=0
Clone itself, create deep copy.
virtual void legendSymbologyItems(QList< QPair< QString, QColor > > &symbolItems) const
Get symbology items if provided by renderer.
virtual void writeXml(QDomDocument &doc, QDomElement &parentElem) const
Write base class members to xml.
Feedback object tailored for raster block reading.
Raster renderer pipe that applies colors to a raster.
virtual 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.