/// <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(); }
/// <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); }
public bool Equals(HSV hsv) { return(h == hsv.h && s == hsv.s && v == hsv.v && a == hsv.a); }