// Create a HSV color rgb24 CreateHSVColor(float hue, float saturation, float value) { float r, g, b; rgb24 color; hsvToRGB(hue, saturation, value, &r, &g, &b); color = (u32)(r * MAX_COLOR_VALUE)<<16; color = color | ((u32)(g * MAX_COLOR_VALUE) <<8); color = color | (u32)(b * MAX_COLOR_VALUE) ; //color = color <<16; return color; }
void ColorT<T>::set( ColorModel cm, const Vec3f &v ) { switch( cm ) { case CM_HSV: { Colorf rgb = hsvToRGB( v ); r = CHANTRAIT<T>::convert( rgb.r ); g = CHANTRAIT<T>::convert( rgb.g ); b = CHANTRAIT<T>::convert( rgb.b ); } break; case CM_RGB: r = CHANTRAIT<T>::convert( v.x ); g = CHANTRAIT<T>::convert( v.y ); b = CHANTRAIT<T>::convert( v.z ); break; default: throw; } }
ColorAT<T>::ColorAT( ColorModel cm, float c1, float c2, float c3, float aA ) : a( CHANTRAIT<T>::convert( aA ) ) { switch( cm ) { case CM_HSV: { Colorf rgb = hsvToRGB( Vec3f( c1, c2, c3 ) ); r = CHANTRAIT<T>::convert( rgb.r ); g = CHANTRAIT<T>::convert( rgb.g ); b = CHANTRAIT<T>::convert( rgb.b ); } break; case CM_RGB: r = CHANTRAIT<T>::convert( c1 ); g = CHANTRAIT<T>::convert( c2 ); b = CHANTRAIT<T>::convert( c3 ); break; default: throw; } }
void RGBLed::setHSV(float hue, float saturation, float value) { Color result = hsvToRGB(hue, saturation, value); setRGB(result.r, result.g, result.b); }