vector HSL_2_RGB( vector hsl )
{
// hsl H S L
vector rgb;
float var1, var2;
if ( S == 0 ) //HSL values = 0 ÷ 1
{
rgb.x = hsl.y; //RGB results
rgb.y = hsl.y;
rgb.z = hsl.y;
}
else
{
if ( L < 0.5 ) var_2 = L * ( 1 + S );
else var_2 = ( L + S ) - ( S * L );
var_1 = 2 * L - var_2;
R = 255 * Hue_2_RGB( var_1, var_2, H + ( 1 / 3 ) );
G = 255 * Hue_2_RGB( var_1, var_2, H );
B = 255 * Hue_2_RGB( var_1, var_2, H - ( 1 / 3 ) ) ;
}
return rgb;
}
float Hue_2_RGB( vector hue v1, v2, vH ) //Function Hue_2_RGB
{
// hue v1, v2, vH
if ( vH < 0 ) vH += 1
if ( vH > 1 ) vH -= 1
if ( ( 6 * vH ) < 1 ) return ( v1 + ( v2 - v1 ) * 6 * vH )
if ( ( 2 * vH ) < 1 ) return ( v2 )
if ( ( 3 * vH ) < 2 ) return ( v1 + ( v2 - v1 ) * ( ( 2 / 3 ) - vH ) * 6 )
return ( v1 )
}