private void HsvChanged() { rgbColor = hsvColor.ToRGB(); xyzColor = rgbColor; xyyColor = xyzColor; //application.color = rgbColor; }
private void RgbChanged() { hsvColor = (HSVColor)rgbColor; xyzColor = rgbColor; xyyColor = xyzColor; //application.color = rgbColor; }
private void TemperatureChanged() { xyzColor = (CIEXYZColour)temperature; xyyColor = (CIEXYYColor)xyzColor; rgbColor = (RGBColor)xyzColor; hsvColor = (HSVColor)rgbColor; //this.RgbChanged(); }
// Not valid, because the PWM value isn't available for reading /*public PWMStruct GetPWM() * { * SendPacket(CMD_GET_PWM); * return ReadReply<PWMStruct>(CMD_GET_PWM); * }*/ public void SetXYZ(CIEXYZColour xyz) { TransferPacket <XYZStruct>(CMD_SET_XYZ, new XYZStruct { X = (float)xyz.X, Y = (float)xyz.Y, Z = (float)xyz.Z }); }
private void UpdateSelector() { double x = this.X; double y = this.Y; if (!double.IsNaN(x) && !double.IsNaN(y)) { CIEXYZColour xyz = (CIEXYZColour) new CIEXYYColor(x, y, 0.5); this.selector.Margin = new Thickness( cieplot.Margin.Left + x * cieplot.ActualWidth - this.selector.ActualWidth / 2, cieplot.Margin.Top + (1.0 - y) * cieplot.ActualHeight - this.selector.ActualHeight / 2, 0, 0); this.selector.Fill = new SolidColorBrush(xyz.ToRGB(cieplot.cieRgbDefinition, limitGamut: false)); } }
protected virtual RGBStruct ColourFunction(double x, double y) { CIEXYYColor xyy = new CIEXYYColor(x, y, 1.0); CIEXYZColour xyz = (CIEXYZColour)xyy; RGBColor rgb = xyz.ToRGB(cieRgbDefinition, false); if (rgb.OutOfGamut) { return(new RGBStruct(rgb.Rb, rgb.Gb, rgb.Bb, 128)); // Values are clamped automatically } else { return(new RGBStruct(rgb.Rb, rgb.Gb, rgb.Bb, 255)); } }
private void CiexyYChanged() { xyzColor = xyyColor; rgbColor = xyzColor; hsvColor = rgbColor; }