BinTo3ColorScale.cxx

Go to the documentation of this file.
00001 
00012 #include "BinTo3ColorScale.h"
00013 
00014 #include <cassert>
00015 
00016 namespace hippodraw {
00017 
00018 BinTo3ColorScale::
00019 BinTo3ColorScale ( const char * name )
00020   : BinToColor ( name )
00021 {
00022 }
00023 
00024 BinTo3ColorScale::BinTo3ColorScale ( const BinTo3ColorScale & bin_to_color )
00025   : BinToColor ( bin_to_color )
00026 {
00027 }
00028 
00029 BinToColor * BinTo3ColorScale:: clone () const
00030 {
00031   return new BinTo3ColorScale ( *this );
00032 }
00033 
00034 void BinTo3ColorScale::doubleToColor ( double value, Color & color ) const
00035 {
00036    double r,g,b;   
00037    double v = value;
00038    
00039    if (v < (m_vmin + 0.25 * m_dv)) {
00040       r = 0;
00041       g = 2* (v - m_vmin) / m_dv;
00042       b = 1 -  2*(v -m_vmin)/m_dv ; 
00043 
00044    } else if (v < (m_vmin + 0.5 * m_dv)) {
00045       r = 0;
00046       g = 2*(v - m_vmin) / m_dv;
00047       b = 1 - 2 * (v - m_vmin) / m_dv;
00048    } else if (v < (m_vmin + 0.75 * m_dv)) {
00049       r = 2 * (v - m_vmin - 0.5 * m_dv) / m_dv;
00050       g = 1 - 2* (v - m_vmin - 0.5*m_dv) / m_dv;
00051       b = 0;
00052    } else {
00053       r = 2 * (v - m_vmin - 0.5 * m_dv) / m_dv;
00054       g = 1  - 2 * (v - m_vmin - 0.5 * m_dv ) / m_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 } // namespace hippodraw
00067 

Generated for HippoDraw Class Library by doxygen