BinToColorMap.cxx

Go to the documentation of this file.
00001 
00012 #include "BinToColorMap.h"
00013 
00014 #include <cmath>
00015 using std :: string;
00016 
00017 #include <cassert>
00018 
00019 namespace hippodraw {
00020 
00021 BinToColorMap::BinToColorMap ( const char * name )
00022   : BinToColor ( name )
00023 {
00024   m_control_points.push_back ( .5 );
00025   calcGamma ( );
00026 }
00027 
00028 bool
00029 BinToColorMap::
00030 hasControlPoints () const
00031 {
00032   return true;
00033 }
00034 
00035 void
00036 BinToColorMap::
00037 setControlPoints ( const std::vector < double > & points )
00038 {
00039   m_control_points[0] = points[0];
00040   calcGamma ( );
00041 }
00042 
00043 void
00044 BinToColorMap::
00045 calcGamma ( )
00046 {
00047   double f = m_control_points[0];
00048   m_gamma = std::pow ( 100., ( f - 0.5) );
00049 }
00050 
00051 BinToColorMap::BinToColorMap( const BinToColorMap & bin_to_color )
00052   : BinToColor ( bin_to_color )
00053 
00054 {
00055   m_reds = bin_to_color.m_reds;
00056   m_greens = bin_to_color.m_greens;
00057   m_blues = bin_to_color.m_blues;
00058   m_control_points = bin_to_color.m_control_points;
00059   calcGamma ();
00060 }
00061 
00062 
00063 
00064 BinToColorMap::~BinToColorMap()
00065 {
00066 }
00067 
00068 void
00069 BinToColorMap::
00070 doubleToColor ( double value, Color & color ) const
00071 {
00072   double tmp = ( value - m_vmin ) / m_dv;
00073   int index = static_cast < int > (255. * std::pow( tmp, m_gamma) );
00074   assert ( index < 256 );
00075   color.setColor ( m_reds[index], m_greens[index], m_blues[index] );
00076 }
00077 
00078 } // namespace hippodraw
00079 

Generated for HippoDraw Class Library by doxygen