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));
110
111 FloatT d = max_rgb - min_rgb;
112 s_ = max_rgb == 0 ? 0 : d / max_rgb;
113
114 if (max_rgb == min_rgb) {
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 }
125 }
126}
References Color3i::b_, Color3i::g_, h_, MAX, MIN, Color3i::r_, s_, and v_.
Referenced by ColorHSV(), and operator=().