コード例 #1
0
 public static ImGuiVector4 ImColor_HSV(float h, float s, float v,
                                        float a)
 {
     ImGui.ColorConvertHSVtoRGB(h, s, v, out var r, out var g,
                                out var b);
     return(new ImGuiVector4(r, g, b, a));
 }
コード例 #2
0
        static public Vector4 HSVtoRGB(float h, float s, float v, float a = 1.0f)
        {
            float r, g, b;

            ImGui.ColorConvertHSVtoRGB(h, s, v, out r, out g, out b);
            return(new Vector4(r, g, b, a));
        }
コード例 #3
0
        /// <summary>
        /// Creates default color palette for use with color pickers.
        /// </summary>
        /// <param name="swatchCount">The total number of swatches to use.</param>
        /// <returns>Default color palette.</returns>
        public static List <Vector4> DefaultColorPalette(int swatchCount = 32)
        {
            var colorPalette = new List <Vector4>();

            for (var i = 0; i < swatchCount; i++)
            {
                ImGui.ColorConvertHSVtoRGB(i / 31.0f, 0.7f, 0.8f, out var r, out var g, out var b);
                colorPalette.Add(new Vector4(r, g, b, 1.0f));
            }

            return(colorPalette);
        }
コード例 #4
0
ファイル: ImColor.cs プロジェクト: rje/ImGuiSharp
 public void SetHSV(float h, float s, float v, float a = 1.0f)
 {
     ImGui.ColorConvertHSVtoRGB(h, s, v, out Value.x, out Value.y, out Value.z); Value.w = a;
 }
コード例 #5
0
ファイル: ImColor.cs プロジェクト: rje/ImGuiSharp
 public static ImColor HSV(float h, float s, float v, float a = 1.0f)
 {
     float r, g, b; ImGui.ColorConvertHSVtoRGB(h, s, v, out r, out g, out b); return(new ImColor(r, g, b, a));
 }
コード例 #6
0
 public Vector4 HSVtoRGB(Vector4 hsv)
 {
     ImGui.ColorConvertHSVtoRGB(hsv.X, hsv.Y, hsv.Z, out var r, out var g, out var b);
     return(new Vector4(r, g, b, hsv.W));
 }
コード例 #7
0
        public static Vector4 AnimateColor(Vector4 c)
        {
            float r, g, b, a, x;

            r = g = b = a = 1;
            var t    = QoLBar.GetDrawTime();
            var anim = Math.Round(c.W * 255) - 256;

            switch (anim)
            {
            case 0:     // Slow Rainbow
                ImGui.ColorConvertHSVtoRGB(((t * 15) % 360) / 360, 1, 1, out r, out g, out b);
                break;

            case 1:     // Rainbow
                ImGui.ColorConvertHSVtoRGB(((t * 30) % 360) / 360, 1, 1, out r, out g, out b);
                break;

            case 2:     // Fast Rainbow
                ImGui.ColorConvertHSVtoRGB(((t * 60) % 360) / 360, 1, 1, out r, out g, out b);
                break;

            case 3:     // Slow Fade
                r = c.X; g = c.Y; b = c.Z;
                a = (float)(Math.Sin(((t * 30) % 360) * Math.PI / 180) + 1) / 2;
                break;

            case 4:     // Fade
                r = c.X; g = c.Y; b = c.Z;
                a = (float)(Math.Sin(((t * 60) % 360) * Math.PI / 180) + 1) / 2;
                break;

            case 5:     // Fast Fade
                r = c.X; g = c.Y; b = c.Z;
                a = (float)(Math.Sin(((t * 120) % 360) * Math.PI / 180) + 1) / 2;
                break;

            case 6:     // Red Transition
                x = Math.Abs(((t * 60) % 360) - 180) / 180;
                r = c.X + (1 - c.X) * x;
                g = c.Y + (0 - c.Y) * x;
                b = c.Z + (0 - c.Z) * x;
                break;

            case 7:     // Yellow Transition
                x = Math.Abs(((t * 60) % 360) - 180) / 180;
                r = c.X + (1 - c.X) * x;
                g = c.Y + (1 - c.Y) * x;
                b = c.Z + (0 - c.Z) * x;
                break;

            case 8:     // Green Transition
                x = Math.Abs(((t * 60) % 360) - 180) / 180;
                r = c.X + (0 - c.X) * x;
                g = c.Y + (1 - c.Y) * x;
                b = c.Z + (0 - c.Z) * x;
                break;

            case 9:     // Cyan Transition
                x = Math.Abs(((t * 60) % 360) - 180) / 180;
                r = c.X + (0 - c.X) * x;
                g = c.Y + (1 - c.Y) * x;
                b = c.Z + (1 - c.Z) * x;
                break;

            case 10:     // Blue Transition
                x = Math.Abs(((t * 60) % 360) - 180) / 180;
                r = c.X + (0 - c.X) * x;
                g = c.Y + (0 - c.Y) * x;
                b = c.Z + (1 - c.Z) * x;
                break;

            case 11:     // Purple Transition
                x = Math.Abs(((t * 60) % 360) - 180) / 180;
                r = c.X + (1 - c.X) * x;
                g = c.Y + (0 - c.Y) * x;
                b = c.Z + (1 - c.Z) * x;
                break;

            case 12:     // White Transition
                x = Math.Abs(((t * 60) % 360) - 180) / 180;
                r = c.X + (1 - c.X) * x;
                g = c.Y + (1 - c.Y) * x;
                b = c.Z + (1 - c.Z) * x;
                break;

            case 13:     // Black Transition
                x = Math.Abs(((t * 60) % 360) - 180) / 180;
                r = c.X + (0 - c.X) * x;
                g = c.Y + (0 - c.Y) * x;
                b = c.Z + (0 - c.Z) * x;
                break;
            }

            return(new Vector4(r, g, b, a));
        }