FastLED 3.9.15
Loading...
Searching...
No Matches

◆ FromRGB()

void ColorHSV::FromRGB ( const Color3i & rgb)

Definition at line 101 of file color.cpp.

101 {
102 typedef double FloatT;
103 FloatT r = (FloatT) rgb.r_/255.f;
104 FloatT g = (FloatT) rgb.g_/255.f;
105 FloatT b = (FloatT) rgb.b_/255.f;
106 FloatT max_rgb = max(r, max(g, b));
107 FloatT min_rgb = min(r, min(g, b));
108 v_ = max_rgb;
109
110 FloatT d = max_rgb - min_rgb;
111 s_ = max_rgb == 0 ? 0 : d / max_rgb;
112
113 if (max_rgb == min_rgb) {
114 h_ = 0; // achromatic
115 } else {
116 if (max_rgb == r) {
117 h_ = (g - b) / d + (g < b ? 6 : 0);
118 } else if (max_rgb == g) {
119 h_ = (b - r) / d + 2;
120 } else if (max_rgb == b) {
121 h_ = (r - g) / d + 4;
122 }
123 h_ /= 6;
124 }
125}
uint8_t b_
Definition color.h:52
uint8_t g_
Definition color.h:52
uint8_t r_
Definition color.h:52
float v_
Definition color.h:98
float h_
Definition color.h:98
float s_
Definition color.h:98

References Color3i::b_, Color3i::g_, h_, Color3i::r_, s_, and v_.

Referenced by ColorHSV(), and operator=().

+ Here is the caller graph for this function: