LitDev.Engines.FIP.hsv2rgb C# (CSharp) Method

hsv2rgb() public method

Transforms HSV color model to RGB
public hsv2rgb ( Double hsv ) : Color
hsv Double HSV values [H, S, V]
return Color
        public Color hsv2rgb(Double[] hsv)
        {
            Color pixel = new Color();

            Double T = (hsv[1] / 100) * (hsv[2] / 100); // C
            Double t = hsv[2] / 100 - T; // m
            Double q = T * (1 - Math.Abs((hsv[0] / 60) % 2 - 1));  // X

            Double Rp = 0, Gp = 0, Bp = 0;

            if (hsv[0] < 60)
            {
                Rp = T;
                Gp = q;
                Bp = 0;
            }
            else if (hsv[0] < 120)
            {
                Rp = q;
                Gp = T;
                Bp = 0;
            }
            else if (hsv[0] < 180)
            {
                Rp = 0;
                Gp = T;
                Bp = q;
            }
            else if (hsv[0] < 240)
            {
                Rp = 0;
                Gp = q;
                Bp = T;
            }
            else if (hsv[0] < 300)
            {
                Rp = q;
                Gp = 0;
                Bp = T;
            }
            else if (hsv[0] < 360)
            {
                Rp = T;
                Gp = 0;
                Bp = q;
            }

            int R = 0, G = 0, B = 0;

            R = (int)((Rp + t) * 255);
            G = (int)((Gp + t) * 255);
            B = (int)((Bp + t) * 255);

            if (R > 255) R = 255;
            if (R < 0) R = 0;

            if (G > 255) G = 255;
            if (G < 0) G = 0;

            if (B > 255) B = 255;
            if (B < 0) B = 0;

            pixel = Color.FromArgb(255, R, G, B);

            return pixel;
        }