Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BinTo3ColorScale.cxx

Go to the documentation of this file.
00001 
00012 #include "BinTo3ColorScale.h"
00013 
00014 #include <cassert>
00015 
00016 BinTo3ColorScale::
00017 BinTo3ColorScale ( const char * name )
00018   : BinToColor ( name )
00019 {
00020 }
00021 
00022 BinTo3ColorScale::BinTo3ColorScale ( const BinTo3ColorScale & bin_to_color )
00023   : BinToColor ( bin_to_color )
00024 {
00025 }
00026 
00027 BinToColor * BinTo3ColorScale:: clone () const
00028 {
00029   return new BinTo3ColorScale ( *this );
00030 }
00031 
00032 void BinTo3ColorScale::doubleToColor ( double value, Color & color ) const
00033 {
00034    double r,g,b;   
00035    double dv = m_range.length ();
00036    double vmin = m_range.low ();
00037    double v = value;
00038    
00039    if (v < (vmin + 0.25 * dv)) {
00040       r = 0;
00041       g = 2* (v - vmin) / dv;
00042       b = 1 -  2*(v -vmin)/dv ; 
00043 
00044    } else if (v < (vmin + 0.5 * dv)) {
00045       r = 0;
00046       g = 2*(v - vmin) / dv;
00047       b = 1 - 2 * (v - vmin) / dv;
00048    } else if (v < (vmin + 0.75 * dv)) {
00049       r = 2 * (v - vmin - 0.5 * dv) / dv;
00050       g = 1 - 2* (v - vmin - 0.5*dv) / dv;
00051       b = 0;
00052    } else {
00053       r = 2 * (v - vmin - 0.5 * dv) / dv;
00054       g = 1  - 2 * (v - vmin - 0.5 * dv ) / dv;
00055       b = 0;
00056    }
00057    int red   = static_cast < int > ( r * 255. );
00058    int green = static_cast < int > ( g * 255. );
00059    int blue  = static_cast < int > ( b * 255. );
00060    
00061 
00062    assert ( red < 256 && green < 256 && blue < 256 );
00063    color.setColor ( red, green, blue );
00064 }
00065 
00066 
00067 
00068 
00069 
00070 
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 

Generated for HippoDraw-1.14.8.5 by doxygen 1.4.3