Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
colorreps
BinToFullColorScale.cxx
Go to the documentation of this file.
1
12
#include "
BinToFullColorScale.h
"
13
14
#include <cassert>
15
16
namespace
hippodraw {
17
18
BinToFullColorScale::
19
BinToFullColorScale
(
const
char
* name )
20
:
BinToColor
( name )
21
{
22
}
23
24
BinToFullColorScale::
25
BinToFullColorScale
(
const
BinToFullColorScale
& bin_to_color )
26
:
BinToColor
( bin_to_color )
27
{
28
}
29
30
BinToColor
*
BinToFullColorScale:: clone
()
const
31
{
32
return
new
BinToFullColorScale
( *
this
);
33
}
34
35
void
36
BinToFullColorScale::
37
doubleToColor
(
double
value,
Color
& color )
const
38
{
39
double
r=1;
40
double
g=1;
41
double
b=1;
42
double
v = value;
43
44
if
(v < (
m_vmin
+ ( 0.1667 ) *
m_dv
)) {
45
r = 0;
46
g = 6 * (v -
m_vmin
) /
m_dv
;
47
48
}
else
if
(v < (
m_vmin
+ (0.3333) *
m_dv
)) {
49
r = 0;
50
b = 1 + 6 * (
m_vmin
+ (0.1667) *
m_dv
- v) /
m_dv
;
51
52
}
else
if
(v < (
m_vmin
+ (0.5) *
m_dv
)) {
53
r = 6 * (v -
m_vmin
- (0.3333) *
m_dv
) /
m_dv
;
54
b = 0;
55
56
}
else
if
(v < (
m_vmin
+ (0.6667) *
m_dv
) ) {
57
g = 1 + 6 * (
m_vmin
+ (0.5) *
m_dv
- v) /
m_dv
;
58
b = 0;
59
60
}
else
if
(v < (
m_vmin
+ (0.8333) *
m_dv
) ) {
61
g = 0;
62
b = 6 * (v-
m_vmin
- (0.6667)*
m_dv
) /
m_dv
;
63
64
}
else
if
(v < (
m_vmin
+
m_dv
)){
65
g=0;
66
r = 1 + 6 * (
m_vmin
+ (0.8333)*
m_dv
- v) /
m_dv
;
67
}
else
{
//this else is for guarding against numerical errors
68
g = 0;
69
r = 0;
70
}
71
72
73
int
red = static_cast <
int
> ( r * 255. );
74
int
green = static_cast <
int
> ( g * 255. );
75
int
blue = static_cast <
int
> ( b * 255. );
76
77
assert ( red < 256 && green < 256 && blue < 256 );
78
color.
setColor
( red, green, blue );
79
}
80
81
}
// namespace hippodraw
82
Generated for HippoDraw Class Library by