/// <summary> /// Constructor /// </summary> /// <param name="breakdownItem">Breakdown item to create filter for</param> /// <param name="rgbToRGBWConverter">Optional RGB to RGBW converter</param> public RGBWColorBreakdownMixingFilter(ColorBreakdownItem breakdownItem, RGBToRGBWConverter rgbToRGBWConverter) { // Save off the RGB to RGBW converter _rgbToRGBWConverter = rgbToRGBWConverter; // Configure the RGBW filter ConfigureRGBWFilter(breakdownItem); }
private const double Tolerance = .0001; //For how close the Hue and Saturation should match for Discrete. public ColorBreakdownFilter(ColorBreakdownItem breakdownItem, bool mixColors) { _breakdownItem = breakdownItem; _mixColors = mixColors; _breakdownColorAsHSV = HSV.FromRGB(_breakdownItem.Color); // because of bad UI, the user can pick a non-100%-brightness color. So, let's just munge it to a 100% color anyway. _breakdownColorAsHSV.V = 1; }
/// <summary> /// Configures the RGB filter for the specified breakdown item. /// </summary> /// <param name="breakdownItem">Breakdown item to process</param> private void ConfigureRGBFilter(ColorBreakdownItem breakdownItem) { if (breakdownItem.Color.Equals(Color.Red)) { GetMaxProportionFunc = color => color.R / 255f; } else if (breakdownItem.Color.Equals(Color.Lime)) { GetMaxProportionFunc = color => color.G / 255f; } else { GetMaxProportionFunc = color => color.B / 255f; } }
/// <summary> /// Configures the RGBW filter for the specified breakdown item. /// </summary> /// <param name="breakdownItem">Breakdown item to process</param> private void ConfigureRGBWFilter(ColorBreakdownItem breakdownItem) { // If the break down item color is red then... if (breakdownItem.Color.Equals(Color.Red)) { GetMaxProportionFunc = FilterRGBToRGBW_Red; } else if (breakdownItem.Color.Equals(Color.Lime)) { GetMaxProportionFunc = FilterRGBToRGBW_Green; } else if (breakdownItem.Color.Equals(Color.Blue)) { GetMaxProportionFunc = FilterRGBToRGBW_Blue; } else if (breakdownItem.Color.Equals(Color.White)) { GetMaxProportionFunc = FilterRGBToRGBW_White; } else { Debug.Assert(false, "Unsupported break down item color!"); } }
/// <summary> /// Constructor /// </summary> /// <param name="breakdownItem">Breakdown item associated with the output</param> /// <param name="mixColors">True when this output is using color mixing</param> /// <param name="rgbToRGBWConverter">Optional RGB to RGBW converter</param> public ColorBreakdownOutput(ColorBreakdownItem breakdownItem, bool mixColors, RGBToRGBWConverter rgbToRGBWConverter) { Data = new CommandDataFlowData(CommandLookup8BitEvaluator.CommandLookup[0]); if (mixColors) { // If an RGB to RGBW converter was specified then... if (rgbToRGBWConverter != null) { // An RGBW mixing filter is needed _filter = new RGBWColorBreakdownMixingFilter(breakdownItem, rgbToRGBWConverter); } else { // Otherwise a normal RGB mixing filter is needed _filter = new RGBColorBreakdownMixingFilter(breakdownItem); } } else { _filter = new ColorBreakdownFilter(breakdownItem); } _breakdownItem = breakdownItem; }
/// <summary> /// Constructor /// </summary> /// <param name="breakdownItem">Breakdown item to create filter for</param> public RGBColorBreakdownMixingFilter(ColorBreakdownItem breakdownItem) { // Configure the RGB filter ConfigureRGBFilter(breakdownItem); }
public ColorBreakdownItemControl(ColorBreakdownItem breakdownItem) { InitializeComponent(); panelColor.BackColor = breakdownItem.Color; textBoxName.Text = breakdownItem.Name; }
public ColorBreakdownOutput(ColorBreakdownItem breakdownItem, bool mixColors) { Data = new IntentsDataFlowData(Enumerable.Empty <IIntentState>()); _filter = new ColorBreakdownFilter(breakdownItem, mixColors); _breakdownItem = breakdownItem; }
public ColorBreakdownOutput(ColorBreakdownItem breakdownItem) { _filter = new ColorBreakdownFilter(breakdownItem); _breakdownItem = breakdownItem; }
public ColorBreakdownFilter(ColorBreakdownItem breakdownItem) { _breakdownItem = breakdownItem; }
public ColorBreakdownOutput(ColorBreakdownItem breakdownItem, bool mixColors) { _filter = new ColorBreakdownFilter(breakdownItem, mixColors); _breakdownItem = breakdownItem; }
public ColorBreakdownOutput(ColorBreakdownItem breakdownItem, bool mixColors) { _data = new IntentDataFlowData(_state); _filter = new ColorBreakdownFilter(breakdownItem, mixColors); _breakdownItem = breakdownItem; }