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

◆ FromRGB()

void ColorHSV::FromRGB ( const Color3i & rgb)

Definition at line 102 of file color.cpp.

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

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

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

+ Here is the caller graph for this function: