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