namespace Hawkeye.VisionBuilder.Workflow.ColorStudioClasses
{
    public class ColorConfig
    {
        private int _intensityMaxGrey;

        public ColorConfig()
        {
            MaxBlobSize = 2000;
            HueHighSaturationMinGrey = 20;
            HueHighSaturationMaxGrey = 50;
            HighSaturationMinGrey = 100;
            HighSaturationMaxGrey = 255;
            ClosingCircleRadius = 8.0;
            IntensityMaxGrey = 255;
            IntensityMinGrey = 0;
            MedianRadius = 10;
            MedianMargin = 1;
            UseMedianFilter = true;
        }

        public int MaxBlobSize { get; set; }
        public int HueHighSaturationMinGrey { get; set; }
        public int HueHighSaturationMaxGrey { get; set; }
        public int HighSaturationMinGrey { get; set; }
        public int HighSaturationMaxGrey { get; set; }

        public int IntensityMaxGrey
        {
            get { return _intensityMaxGrey; }
            set { _intensityMaxGrey = value; }
        }

        public int IntensityMinGrey { get; set; }

        public double ClosingCircleRadius { get; set; }

        public int MedianRadius { get; set; }
        public int MedianMargin { get; set; }

        public bool UseMedianFilter { get; set; }
        
        public bool GroupColorEnabled { get; set; }
        public List<HSIValue> GroupColorValues { get; set; }=new List<HSIValue>();
        public HSIValue HSI { get; set; }
    }
}
