Ejemplo n.º 1
0
        /// <summary>
        /// Creates new filter VM with given filter
        /// </summary>
        //TODO: Add presets
        private void AddFilter(string FilterFactoryID)
        {
            FilterVM vm = FilterFactoryRegister.Factories[FilterFactoryID].CreateNewFilter();

            Filters.Add(vm);
            SelectedFilter = vm;
        }
        public BasicMatrixFilterDataProviderVM(FilterVM filter) : base(filter)
        {
            if (!(filter.UnderlayingFilter is BasicMatrixFilter))
            {
                throw new ArgumentException("BasicMatrixFilterDataVM can only handle BasicMatrixFilter type of underlaying filter (is: " + filter.UnderlayingFilter.GetType() + " | must be: BasicMatrixFilter)");
            }

            concreteFilter = (BasicMatrixFilter)filter.UnderlayingFilter;

            Matrix = new ObservableCollection <ObservableCollection <PrimitiveWrapper <double> > >();

            IncrementHeight = new RelayCommand(() => { Height++; });
            DecrementHeight = new RelayCommand(() => { Height--; }, (_) => { return(Height > 1); });
            IncrementWidth  = new RelayCommand(() => { Width++; });
            DecrementWidth  = new RelayCommand(() => { Width--; }, (_) => { return(Width > 1); });


            for (int i = 0; i < concreteFilter.FilterData.GetLength(0); i++)
            {
                Matrix.Add(new ObservableCollection <PrimitiveWrapper <double> >());
                for (int j = 0; j < concreteFilter.FilterData.GetLength(1); j++)
                {
                    Matrix[i].Add(new PrimitiveWrapper <double>(concreteFilter.FilterData[i, j]));
                }
            }
            Width  = Matrix.Count;
            Height = Matrix[0].Count;


            this.PropertyChanged += OnDimensionsChanged;
        }
        public GaussianFilterDataProviderVM(FilterVM filter) : base(filter)
        {
            if (!(filter.UnderlayingFilter is BasicMatrixFilter))
            {
                throw new ArgumentException("GaussianFilterDataVM can only handle BasicMatrixFilter type of underlaying filter");
            }

            width          = 3;
            height         = 3;
            concreteFilter = (BasicMatrixFilter)filter.UnderlayingFilter;
        }
        public BasicMatrixFilterDataProviderVM(FilterVM filter, double[,] data) : this(filter)
        {
            for (int i = 0; i < data.GetLength(0); i++)
            {
                Matrix.Add(new ObservableCollection <PrimitiveWrapper <double> >());
                for (int j = 0; j < data.GetLength(1); j++)
                {
                    Matrix[i].Add(new PrimitiveWrapper <double>(data[i, j]));
                }
            }
            Width  = Matrix.Count;
            Height = Matrix[0].Count;

            SetData();
        }
Ejemplo n.º 5
0
 public FilterDataProviderVM(FilterVM filter)
 {
     this.filter = filter;
 }