qwt_color_map.h
Go to the documentation of this file.
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 #ifndef QWT_COLOR_MAP_H
00011 #define QWT_COLOR_MAP_H
00012 
00013 #include "qwt_global.h"
00014 #include "qwt_interval.h"
00015 #include <qcolor.h>
00016 #include <qvector.h>
00017 
00033 class QWT_EXPORT QwtColorMap
00034 {
00035 public:
00041     enum Format
00042     {
00044         RGB,
00045 
00056         Indexed
00057     };
00058 
00059     explicit QwtColorMap( Format = QwtColorMap::RGB );
00060     virtual ~QwtColorMap();
00061 
00062     void setFormat( Format );
00063     Format format() const;
00064 
00072     virtual QRgb rgb( const QwtInterval &interval,
00073         double value ) const = 0;
00074 
00075     virtual uint colorIndex( int numColors,
00076         const QwtInterval &interval, double value ) const;
00077 
00078     QColor color( const QwtInterval &, double value ) const;
00079     virtual QVector<QRgb> colorTable( int numColors ) const;
00080     virtual QVector<QRgb> colorTable256() const;
00081 
00082 private:
00083     Q_DISABLE_COPY(QwtColorMap)
00084 
00085     Format d_format;
00086 };
00087 
00095 class QWT_EXPORT QwtLinearColorMap: public QwtColorMap
00096 {
00097 public:
00102     enum Mode
00103     {
00105         FixedColors,
00106 
00108         ScaledColors
00109     };
00110 
00111     explicit QwtLinearColorMap( QwtColorMap::Format = QwtColorMap::RGB );
00112     QwtLinearColorMap( const QColor &from, const QColor &to,
00113         QwtColorMap::Format = QwtColorMap::RGB );
00114 
00115     virtual ~QwtLinearColorMap();
00116 
00117     void setMode( Mode );
00118     Mode mode() const;
00119 
00120     void setColorInterval( const QColor &color1, const QColor &color2 );
00121     void addColorStop( double value, const QColor& );
00122     QVector<double> colorStops() const;
00123 
00124     QColor color1() const;
00125     QColor color2() const;
00126 
00127     virtual QRgb rgb( const QwtInterval &, double value ) const;
00128     virtual uint colorIndex( int numColors,
00129         const QwtInterval &, double value ) const;
00130 
00131     class ColorStops;
00132 
00133 private:
00134     class PrivateData;
00135     PrivateData *d_data;
00136 };
00137 
00141 class QWT_EXPORT QwtAlphaColorMap: public QwtColorMap
00142 {
00143 public:
00144     explicit QwtAlphaColorMap( const QColor & = QColor( Qt::gray ) );
00145     virtual ~QwtAlphaColorMap();
00146 
00147     void setAlphaInterval( int alpha1, int alpha2 ); 
00148 
00149     int alpha1() const;
00150     int alpha2() const;
00151 
00152     void setColor( const QColor & );
00153     QColor color() const;
00154 
00155     virtual QRgb rgb( const QwtInterval &, double value ) const;
00156 
00157 private:
00158     class PrivateData;
00159     PrivateData *d_data;
00160 };
00161 
00173 class QWT_EXPORT QwtHueColorMap: public QwtColorMap
00174 {
00175 public:
00176     explicit QwtHueColorMap( QwtColorMap::Format = QwtColorMap::RGB );
00177     virtual ~QwtHueColorMap();
00178 
00179     void setHueInterval( int hue1, int hue2 ); // direction ?
00180     void setSaturation( int saturation );
00181     void setValue( int value );
00182     void setAlpha( int alpha ); 
00183 
00184     int hue1() const;
00185     int hue2() const;
00186     int saturation() const;
00187     int value() const;
00188     int alpha() const;
00189 
00190     virtual QRgb rgb( const QwtInterval &, double value ) const;
00191 
00192 private:
00193     class PrivateData;
00194     PrivateData *d_data;
00195 };
00196 
00206 class QWT_EXPORT QwtSaturationValueColorMap: public QwtColorMap
00207 {
00208 public:
00209     QwtSaturationValueColorMap();
00210     virtual ~QwtSaturationValueColorMap();
00211 
00212     void setHue( int hue );
00213     void setSaturationInterval( int sat1, int sat2 ); 
00214     void setValueInterval( int value1, int value2 );
00215     void setAlpha( int alpha ); 
00216 
00217     int hue() const;
00218     int saturation1() const;
00219     int saturation2() const;
00220     int value1() const;
00221     int value2() const;
00222     int alpha() const;
00223 
00224     virtual QRgb rgb( const QwtInterval &, double value ) const;
00225 
00226 private:
00227     class PrivateData;
00228     PrivateData *d_data;
00229 };
00230 
00239 inline QColor QwtColorMap::color(
00240     const QwtInterval &interval, double value ) const
00241 {
00242     return QColor::fromRgba( rgb( interval, value ) );
00243 }
00244 
00249 inline QwtColorMap::Format QwtColorMap::format() const
00250 {
00251     return d_format;
00252 }
00253 
00254 #endif


plotjuggler
Author(s): Davide Faconti
autogenerated on Fri Sep 1 2017 02:41:56