BinTo3ColorScale.cxx
Go to the documentation of this file.
1 
12 #include "BinTo3ColorScale.h"
13 
14 #include <cassert>
15 
16 namespace hippodraw {
17 
19 BinTo3ColorScale ( const char * name )
20  : BinToColor ( name )
21 {
22 }
23 
25  : BinToColor ( bin_to_color )
26 {
27 }
28 
30 {
31  return new BinTo3ColorScale ( *this );
32 }
33 
34 void BinTo3ColorScale::doubleToColor ( double value, Color & color ) const
35 {
36  double r,g,b;
37  double v = value;
38 
39  if (v < (m_vmin + 0.25 * m_dv)) {
40  r = 0;
41  g = 2* (v - m_vmin) / m_dv;
42  b = 1 - 2*(v -m_vmin)/m_dv ;
43 
44  } else if (v < (m_vmin + 0.5 * m_dv)) {
45  r = 0;
46  g = 2*(v - m_vmin) / m_dv;
47  b = 1 - 2 * (v - m_vmin) / m_dv;
48  } else if (v < (m_vmin + 0.75 * m_dv)) {
49  r = 2 * (v - m_vmin - 0.5 * m_dv) / m_dv;
50  g = 1 - 2* (v - m_vmin - 0.5*m_dv) / m_dv;
51  b = 0;
52  } else {
53  r = 2 * (v - m_vmin - 0.5 * m_dv) / m_dv;
54  g = 1 - 2 * (v - m_vmin - 0.5 * m_dv ) / m_dv;
55  b = 0;
56  }
57  int red = static_cast < int > ( r * 255. );
58  int green = static_cast < int > ( g * 255. );
59  int blue = static_cast < int > ( b * 255. );
60 
61 
62  assert ( red < 256 && green < 256 && blue < 256 );
63  color.setColor ( red, green, blue );
64 }
65 
66 } // namespace hippodraw
67 

Generated for HippoDraw Class Library by doxygen