Example #1
0
        /// <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);
        }
Example #2
0
        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;
        }
Example #3
0
 /// <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;
     }
 }
Example #4
0
 /// <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;
        }
Example #6
0
 /// <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;
 }
Example #8
0
 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;
 }
Example #11
0
 public ColorBreakdownOutput(ColorBreakdownItem breakdownItem, bool mixColors)
 {
     _filter        = new ColorBreakdownFilter(breakdownItem, mixColors);
     _breakdownItem = breakdownItem;
 }
Example #12
0
 public ColorBreakdownOutput(ColorBreakdownItem breakdownItem, bool mixColors)
 {
     _data          = new IntentDataFlowData(_state);
     _filter        = new ColorBreakdownFilter(breakdownItem, mixColors);
     _breakdownItem = breakdownItem;
 }