using MaxwellFramework.Core.Common;
using SemiconductorVisionAlgorithm.SemiParams;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MainShell.AlgorithmCalib.Model
{
    public class FusionCalibVerifyParItem: ViewModelBase
    {
        private double _moveAxisPos = 0.0;
        public double MoveAxisPos
        {
            get { return _moveAxisPos; }
            set { if (_moveAxisPos != value) { _moveAxisPos = value; OnPropertyChanged(nameof(MoveAxisPos)); } }
        }

        private double _approachXPos = 0.0;
        public double ApproachXPos
        {
            get { return _approachXPos; }
            set { if (_approachXPos != value) { _approachXPos = value; OnPropertyChanged(nameof(ApproachXPos)); } }
        }

        private double _approachYPos = 0.0;
        public double ApproachYPos
        {
            get { return _approachYPos; }
            set { if (_approachYPos != value) { _approachYPos = value; OnPropertyChanged(nameof(ApproachYPos)); } }
        }

        private double _startX = 0.0;
        public double StartX
        {
            get { return _startX; }
            set { if (_startX != value) { _startX = value; OnPropertyChanged(nameof(StartX)); } }
        }

        private double _startY = 0.0;
        public double StartY
        {
            get { return _startY; }
            set { if (_startY != value) { _startY = value; OnPropertyChanged(nameof(StartY)); } }
        }

        private double _step = 0.0;
        public double Step
        {
            get { return _step; }
            set { if (_step != value) { _step = value; OnPropertyChanged(nameof(Step)); } }
        }

        private int _countX = 0;
        public int CountX
        {
            get { return _countX; }
            set { if (_countX != value) { _countX = value; OnPropertyChanged(nameof(CountX)); } }
        }

        private int _countY = 0;
        public int CountY
        {
            get { return _countY; }
            set { if (_countY != value) { _countY = value; OnPropertyChanged(nameof(CountY)); } }
        }

        private string _modelPath = @"Parameters\SystemSetting\AxisAndWaferCaliModel";

        public string ModelPath
        {
            get { return _modelPath; }
            set { if (_modelPath != value) { _modelPath = value; OnPropertyChanged(nameof(ModelPath)); } }
        }

        private List<Point> _verifyRealPts = new List<Point>();
        public List<Point> VerifyRealPts
        {
            get { return _verifyRealPts; }
            set { if (_verifyRealPts != value) { _verifyRealPts = value; OnPropertyChanged(nameof(VerifyRealPts)); } }
        }

    }
}
