QGIS API Documentation  master-3f58142
src/core/raster/qgsmultibandcolorrenderer.h
Go to the documentation of this file.
00001 /***************************************************************************
00002                          qgsmultibandcolorrenderer.h
00003                          ---------------------------
00004     begin                : December 2011
00005     copyright            : (C) 2011 by Marco Hugentobler
00006     email                : marco at sourcepole dot ch
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef QGSMULTIBANDCOLORRENDERER_H
00019 #define QGSMULTIBANDCOLORRENDERER_H
00020 
00021 #include "qgsrasterrenderer.h"
00022 
00023 class QgsContrastEnhancement;
00024 class QDomElement;
00025 
00029 class CORE_EXPORT QgsMultiBandColorRenderer: public QgsRasterRenderer
00030 {
00031   public:
00032     QgsMultiBandColorRenderer( QgsRasterInterface* input, int redBand, int greenBand, int blueBand,
00033                                QgsContrastEnhancement* redEnhancement = 0, QgsContrastEnhancement* greenEnhancement = 0,
00034                                QgsContrastEnhancement* blueEnhancement = 0 );
00035     ~QgsMultiBandColorRenderer();
00036     QgsRasterInterface * clone() const;
00037 
00038     static QgsRasterRenderer* create( const QDomElement& elem, QgsRasterInterface* input );
00039 
00040     QgsRasterBlock* block( int bandNo, QgsRectangle  const & extent, int width, int height );
00041 
00042     int redBand() const { return mRedBand; }
00043     void setRedBand( int band ) { mRedBand = band; }
00044     int greenBand() const { return mGreenBand; }
00045     void setGreenBand( int band ) { mGreenBand = band; }
00046     int blueBand() const { return mBlueBand; }
00047     void setBlueBand( int band ) { mBlueBand = band; }
00048 
00049     const QgsContrastEnhancement* redContrastEnhancement() const { return mRedContrastEnhancement; }
00051     void setRedContrastEnhancement( QgsContrastEnhancement* ce );
00052 
00053     const QgsContrastEnhancement* greenContrastEnhancement() const { return mGreenContrastEnhancement; }
00055     void setGreenContrastEnhancement( QgsContrastEnhancement* ce );
00056 
00057     const QgsContrastEnhancement* blueContrastEnhancement() const { return mBlueContrastEnhancement; }
00059     void setBlueContrastEnhancement( QgsContrastEnhancement* ce );
00060 
00061     void writeXML( QDomDocument& doc, QDomElement& parentElem ) const;
00062 
00063     QList<int> usesBands() const;
00064 
00065   private:
00066     int mRedBand;
00067     int mGreenBand;
00068     int mBlueBand;
00069 
00070     QgsContrastEnhancement* mRedContrastEnhancement;
00071     QgsContrastEnhancement* mGreenContrastEnhancement;
00072     QgsContrastEnhancement* mBlueContrastEnhancement;
00073 };
00074 
00075 #endif // QGSMULTIBANDCOLORRENDERER_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines