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 = fl::max(r, fl::max(g, b));
108 FloatT min_rgb = fl::min(r, fl::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}
FL_DISABLE_WARNING_PUSH U constexpr common_type_t< T, U > min(T a, U b) FL_NOEXCEPT
Definition math.h:71
constexpr common_type_t< T, U > max(T a, U b) FL_NOEXCEPT
Definition math.h:75
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_, fl::max(), fl::min(), Color3i::r_, s_, and v_.

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function: