/// <summary>Change colors, based on a picker's color.</summary>
        public virtual void UpdateUI(HSV hsv)
        {
            var   color = (Color)hsv;
            float alpha = 1f;

            switch (Property)
            {
            case ColorAxis.Red:
                alpha = color.r;
                break;

            case ColorAxis.Green:
                alpha = color.g;
                break;

            case ColorAxis.Blue:
                alpha = color.b;
                break;

            case ColorAxis.Hue:
                alpha = hsv.h;
                break;

            case ColorAxis.Saturation:
                alpha = hsv.s;
                break;

            case ColorAxis.Value:
                alpha = hsv.v;
                break;

            case ColorAxis.Alpha:
                alpha = hsv.a;
                break;
            }

            colors [0].a = colors [1].a = colors [2].a = colors [3].a = (InverseValue ? 1 - alpha : alpha);
            UpdateColors();
        }
Exemple #2
0
        /// <summary>Change colors, based on a picker's hsv.</summary>
        public virtual void UpdateUIH(HSV hsv)
        {
            if (!useAlpha)
            {
                hsv.a = 1;
            }

            HSV[] hsvs = new HSV[4] {
                hsv, hsv, hsv, hsv
            };
            bool changed = false;

            switch (X_Axis)
            {
            case ColorAxis.Hue:
                hsvs[0].h = hsvs[1].h = 0;
                hsvs[2].h = hsvs[3].h = 1;
                changed   = true;
                break;

            case ColorAxis.Saturation:
                hsvs[0].s = hsvs[1].s = 0;
                hsvs[2].s = hsvs[3].s = 1;
                changed   = true;
                break;

            case ColorAxis.Value:
                hsvs[0].v = hsvs[1].v = 0;
                hsvs[2].v = hsvs[3].v = 1;
                changed   = true;
                break;

            case ColorAxis.Alpha:
                hsvs[0].a = hsvs[1].a = 0;
                hsvs[2].a = hsvs[3].a = 1;
                changed   = true;
                break;
            }

            switch (Y_Axis)
            {
            case ColorAxis.Hue:
                hsvs[0].h = hsvs[3].h = 0;
                hsvs[1].h = hsvs[2].h = 1;
                changed   = true;
                break;

            case ColorAxis.Saturation:
                hsvs[0].s = hsvs[3].s = 0;
                hsvs[1].s = hsvs[2].s = 1;
                changed   = true;
                break;

            case ColorAxis.Value:
                hsvs[0].v = hsvs[3].v = 0;
                hsvs[1].v = hsvs[2].v = 1;
                changed   = true;
                break;

            case ColorAxis.Alpha:
                hsvs[0].a = hsvs[3].a = 0;
                hsvs[1].a = hsvs[2].a = 1;
                changed   = true;
                break;
            }

            if (changed)
            {
                colors[0] = hsvs[0];
                colors[1] = hsvs[1];
                colors[2] = hsvs[2];
                colors[3] = hsvs[3];
                UpdateColors();
            }
        }
        /// <summary>Update cursor, when change color.</summary>
        public virtual void UpdateUI(HSV hsv)
        {
            if (colorPointer == null)
            {
                return;
            }

            float x = 0, y = 0;
            var   color = (Color)hsv;

            switch (X_Axis)
            {
            case ColorAxis.Red:
                x = color.r;
                break;

            case ColorAxis.Green:
                x = color.g;
                break;

            case ColorAxis.Blue:
                x = color.b;
                break;

            case ColorAxis.Hue:
                x = hsv.h;
                break;

            case ColorAxis.Saturation:
                x = hsv.s;
                break;

            case ColorAxis.Value:
                x = hsv.v;
                break;

            case ColorAxis.Alpha:
                x = hsv.a;
                break;

            case ColorAxis.SaturationAndValue:
                if (hsv.s >= 0 && hsv.v == 0)
                {
                    x = 1f - (hsv.s - 1f);
                }
                else
                {
                    x = hsv.v / 2;
                }
                break;

            default:
                x = 0.5f;
                break;
            }

            switch (Y_Axis)
            {
            case ColorAxis.Red:
                y = color.r;
                break;

            case ColorAxis.Green:
                y = color.g;
                break;

            case ColorAxis.Blue:
                y = color.b;
                break;

            case ColorAxis.Hue:
                y = hsv.h;
                break;

            case ColorAxis.Saturation:
                y = hsv.s;
                break;

            case ColorAxis.Value:
                y = hsv.v;
                break;

            case ColorAxis.Alpha:
                y = hsv.a;
                break;

            case ColorAxis.SaturationAndValue:
                if (hsv.s >= 0 && hsv.v == 0)
                {
                    y = 1f - (hsv.s - 1f);
                }
                else
                {
                    y = hsv.v / 2;
                }
                break;

            default:
                y = 0.5f;
                break;
            }

            // Caluculate localposition.
            x = (x - rect.pivot.x) * rect.rect.width;
            y = (y - rect.pivot.y) * rect.rect.height;

            // Set localposition.
            colorPointer.localPosition = new Vector2(x, y);
        }
Exemple #4
0
 public bool Equals(HSV hsv)
 {
     return(h == hsv.h && s == hsv.s && v == hsv.v && a == hsv.a);
 }