void TCOD_color_scale_HSV (TCOD_color_t *c, float scoef, float vcoef) { float h, s, v; TCOD_color_get_HSV(*c,&h,&s,&v); s = CLAMP(0.0f,1.0f,s*scoef); v = CLAMP(0.0f,1.0f,v*vcoef); *c = TCOD_color_HSV(h,s,v); }
void TCOD_color_get_HSV_wrapper(colornum_t c,float * h, float * s, float * v) { TCOD_color_get_HSV (int_to_color(c), h, s, v); }
void TCOD_color_shift_hue (TCOD_color_t *c, float hshift) { float h, s, v; if (hshift == 0.0f) return; TCOD_color_get_HSV(*c,&h,&s,&v); *c = TCOD_color_HSV(h+hshift,s,v); }
void TCOD_color_set_value (TCOD_color_t *c, float v) { float h, s, obsolete; TCOD_color_get_HSV(*c,&h,&s,&obsolete); *c = TCOD_color_HSV(h,s,v); }
void TCOD_color_set_saturation (TCOD_color_t *c, float s) { float h, obsolete, v; TCOD_color_get_HSV(*c,&h,&obsolete,&v); *c = TCOD_color_HSV(h,s,v); }
void TCOD_color_set_hue (TCOD_color_t *c, float h) { float obsolete, s, v; TCOD_color_get_HSV(*c,&obsolete,&s,&v); *c = TCOD_color_HSV(h,s,v); }
void TCODColor::getHSV(float *h, float *s, float *v) const { TCOD_color_t c={r,g,b}; TCOD_color_get_HSV(c,h,s,v); }