QGIS API Documentation  master-3f58142
src/core/raster/qgsrastertransparency.h
Go to the documentation of this file.
00001 /* **************************************************************************
00002                 qgsrastertransparency.h -  description
00003                        -------------------
00004 begin                : Mon Nov 30 2007
00005 copyright            : (C) 2007 by Peter J. Ersts
00006 email                : ersts@amnh.org
00007 
00008 ****************************************************************************/
00009 
00010 /* **************************************************************************
00011  *                                                                         *
00012  *   This program is free software; you can redistribute it and/or modify  *
00013  *   it under the terms of the GNU General Public License as published by  *
00014  *   the Free Software Foundation; either version 2 of the License, or     *
00015  *   (at your option) any later version.                                   *
00016  *                                                                         *
00017  ***************************************************************************/
00018 #ifndef QGSRASTERTRANSPARENCY_H
00019 #define QGSRASTERTRANSPARENCY_H
00020 
00021 #include <QList>
00022 class QDomDocument;
00023 class QDomElement;
00024 
00029 class CORE_EXPORT QgsRasterTransparency
00030 {
00031 
00032   public:
00033     QgsRasterTransparency();
00034 
00035     //
00036     // Structs to hold transparent pixel vlaues
00037     //
00038     struct TransparentThreeValuePixel
00039     {
00040       double red;
00041       double green;
00042       double blue;
00043       double percentTransparent;
00044     };
00045 
00046     struct TransparentSingleValuePixel
00047     {
00048       double min;
00049       double max;
00050       double percentTransparent;
00051     };
00052 
00053     //
00054     // Initializer, Accessor and mutator for transparency tables.
00055     //
00057     QList<QgsRasterTransparency::TransparentSingleValuePixel> transparentSingleValuePixelList() const;
00058 
00060     QList<QgsRasterTransparency::TransparentThreeValuePixel> transparentThreeValuePixelList() const;
00061 
00063     void initializeTransparentPixelList( double );
00064 
00066     void initializeTransparentPixelList( double, double, double );
00067 
00069     void setTransparentSingleValuePixelList( QList<QgsRasterTransparency::TransparentSingleValuePixel> );
00070 
00072     void setTransparentThreeValuePixelList( QList<QgsRasterTransparency::TransparentThreeValuePixel> );
00073 
00075     int alphaValue( double, int theGlobalTransparency = 255 ) const;
00076 
00078     int alphaValue( double, double, double, int theGlobalTransparency = 255 ) const;
00079 
00081     //bool isEmpty( double nodataValue ) const;
00082     bool isEmpty( ) const;
00083 
00084     void writeXML( QDomDocument& doc, QDomElement& parentElem ) const;
00085 
00086     void readXML( const QDomElement& elem );
00087 
00088   private:
00090     QList<QgsRasterTransparency::TransparentThreeValuePixel> mTransparentThreeValuePixelList;
00091 
00093     QList<QgsRasterTransparency::TransparentSingleValuePixel> mTransparentSingleValuePixelList;
00094 
00095 };
00096 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines