using MaxwellFramework.Core.Common;
using MaxwellFramework.Core.Interfaces;
using MwFramework.Controls.SystemCalib;
using SemiconductorVisionAlgorithm.SemiParams;
using Stylet;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MainShell.AlgorithmCalib.Model
{


    public class FusionCalibParItem : 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 _cameraAxisPos = 0.0;
        public double CameraAxisPos
        {
            get { return _cameraAxisPos; }
            set { if (_cameraAxisPos != value) { _cameraAxisPos = value; OnPropertyChanged(nameof(CameraAxisPos)); } }
        }

        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 _count = 0;
        public int Count
        {
            get { return _count; }
            set { if (_count != value) { _count = value; OnPropertyChanged(nameof(Count)); } }
        }

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

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

        private bool _isWaferCalib = false;
        public bool IsWaferCalib
        {
            get { return _isWaferCalib; }
            set { if (_isWaferCalib != value) { _isWaferCalib = value; OnPropertyChanged(nameof(_isWaferCalib)); } }
        }

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

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

        private string _camera_Id = string.Empty;
        public string Camera_ID
        {
            get { return _camera_Id; }
            set { if (_camera_Id != value) { _camera_Id = value; OnPropertyChanged(nameof(Camera_ID)); } }
        }


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

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


}
