21 #ifndef HEATMAPCOLORGENERATOR_H
22 #define HEATMAPCOLORGENERATOR_H
33 RGB8(
unsigned char i) : R(i), G(i), B(i) {}
34 RGB8(
unsigned char r,
unsigned char g,
unsigned char b):R(r),G(g),B(b){}
39 inline RGB8 hsvToRGB(
double h,
46 h_frac = modf(h/60,&h_floor);
49 t = v*(1.0-s*(1.0-h_frac));
50 p *= 255; q *= 255; t *= 255; v *= 255;
51 switch (static_cast<int>(h_floor)) {
52 case 0:
return RGB8(v,t,p);
53 case 1:
return RGB8(q,v,p);
54 case 2:
return RGB8(p,v,t);
55 case 3:
return RGB8(p,q,v);
56 case 4:
return RGB8(t,p,v);
67 BlueToRed(
const T max,
const T min = T()) : m_max(max), m_min(min), m_invRange(1.0/(max-min)) {}
70 double val = (value-m_min)*m_invRange;
71 if (val < 0.0) val = 0.0;
72 if (val > 1.0) val = 1.0;
73 return detail::hsvToRGB(240.0*(1.0-val),1.0,0.2+0.3*val);
76 T min()
const {
return m_min; }
77 T max()
const {
return m_max; }
Definition: HeatmapColorGenerator.h:31
Definition: HeatmapColorGenerator.h:87
Definition: HeatmapColorGenerator.h:65