private bool isLine(PositionModel line) { return (line.RowBegin > 0 && line.ColBegin > 0 && line.RowEnd > 0 && line.ColEnd > 0); }
private void init() { this.NumHandles = 2;//移動用的 Handle, 1 middle point, 整條線 _dependROIModels = new List<PositionModel>(); if (_model != null) { //原始值 _rawCenterRow = (_model.RowBegin + _model.RowEnd) / 2.0; _rawCenterCol = (_model.ColBegin + _model.ColEnd) / 2.0; _halfDistance = _model.Distance / 2.0; var radStart = HMisc.AngleLx(_rawCenterRow, _rawCenterCol, _model.RowBegin, _model.ColBegin); _phiStart = halconRadToNormalRad(radStart); var radEnd = HMisc.AngleLx(_rawCenterRow, _rawCenterCol, _model.RowEnd, _model.ColEnd); _phiEnd = halconRadToNormalRad(radEnd); this.NewCenterRow = (!_model.UserDefineCenterRow.HasValue) ? _rawCenterRow : _model.UserDefineCenterRow.Value; this.NewCenterCol = (!_model.UserDefineCenterCol.HasValue) ? _rawCenterCol : _model.UserDefineCenterCol.Value; this.ID = _model.ID; Name = _model.Name; //_modelPoints = new List<PositionModel>() { // new PositionModel(){ RowBegin =_model.RowBegin, ColBegin = _model.ColBegin }, // new PositionModel(){ RowBegin =_model.RowEnd, ColBegin = _model.ColEnd }, //}; if (_model.ROIs != null) { var basicGeoType = new List<MeasureType>() { {MeasureType.FitLine}, {MeasureType.Line}, {MeasureType.Point}, {MeasureType.Circle} }; for (var i = 0; i < _model.ROIs.Length; i++) { var roiModel = _model.ROIs[i]; PositionModel dto; if (roiModel.RowBegin > 0 && roiModel.ColBegin > 0 && roiModel.RowEnd > 0 && roiModel.ColEnd > 0) { dto = new PositionModel() { RowBegin = roiModel.RowBegin, ColBegin = roiModel.ColBegin, RowEnd = roiModel.RowEnd, ColEnd = roiModel.ColEnd, }; _ROIModelPoints.Add(new PositionModel() { RowBegin = (roiModel.RowBegin + roiModel.RowEnd) / 2.0, ColBegin = (roiModel.ColBegin + roiModel.ColEnd) / 2.0 }); } else { dto = new PositionModel() { RowBegin = roiModel.RowBegin, ColBegin = roiModel.ColBegin, }; _ROIModelPoints.Add(new PositionModel() { RowBegin = (roiModel.RowBegin), ColBegin = (roiModel.ColBegin) }); } if (basicGeoType.Contains(roiModel.GeoType)) _dependROIModels.Add(dto); } _ROIModelPoints = _ROIModelPoints.OrderBy(x => x.ColBegin).OrderBy(y => y.RowBegin).ToList(); } } }
private void init() { this.NumHandles = 1;//移動用的 Handle, 1 middle point _lines = new List<PositionModel>(); _rawCenterRow = _rawCenterCol = -1; _lineACenterRow = _lineACenterRow = _lineBCenterRow = _lineBCenterRow = -1; if (_model != null) { this.ID = _model.ID; this.Name = _model.Name; if (_model.ROIs != null) { for (var i = 0; i < _model.ROIs.Length; i++) { var roiModel = _model.ROIs[i]; if (roiModel.RowBegin < 0 && roiModel.ColBegin < 0 && roiModel.RowEnd < 0 && roiModel.ColEnd < 0) continue; var dto = new PositionModel() { RowBegin = roiModel.RowBegin, ColBegin = roiModel.ColBegin, RowEnd = roiModel.RowEnd, ColEnd = roiModel.ColEnd, }; _lines.Add(dto); } if (_lines.Count > 1) { _lineACenterRow = _rawCenterRow = (_lines[0].RowBegin + _lines[0].RowEnd) / 2.0; _lineACenterCol = _rawCenterCol = (_lines[0].ColBegin + _lines[0].ColEnd) / 2.0; _lineBCenterRow = (_lines[1].RowBegin + _lines[1].RowEnd) / 2.0; _lineBCenterCol = (_lines[1].ColBegin + _lines[1].ColEnd) / 2.0; } } this.NewCenterRow = (!_model.UserDefineCenterRow.HasValue) ? _rawCenterRow : _model.UserDefineCenterRow.Value; this.NewCenterCol = (!_model.UserDefineCenterCol.HasValue) ? _rawCenterCol : _model.UserDefineCenterCol.Value; } }
private void init() { _lines = new List<PositionModel>(); if (_model != null) { this.NumHandles = 1; //整個線段 this.ID = _model.ID; this.Name = _model.Name; //原始值 _rawCenterRow = (_model.RowBegin + _model.RowEnd) / 2.0; _rawCenterCol = (_model.ColBegin + _model.ColEnd) / 2.0; if (_model.ROIs != null) { for (var i = 0; i < _model.ROIs.Length; i++) { var roiModel = _model.ROIs[i]; if (roiModel.RowBegin < 0 && roiModel.ColBegin < 0 && roiModel.RowEnd < 0 && roiModel.ColEnd < 0) continue; var dto = new PositionModel() { RowBegin = roiModel.RowBegin, ColBegin = roiModel.ColBegin, RowEnd = roiModel.RowEnd, ColEnd = roiModel.ColEnd, }; _lines.Add(dto); } } } }
private void init() { this.NumHandles = 1; _lines = new List<PositionModel>(); if (_model != null) { //原始值 this.Name = _model.Name; this.ID = _model.ID; //點 _rawPointRow = (_model.RowBegin); _rawPointCol = (_model.ColBegin); //如果此點有相依的線段元素 if (_model.ROIs != null) { for (var i = 0; i < _model.ROIs.Length; i++) { var roiModel = _model.ROIs[i]; if (roiModel.RowBegin < 0 && roiModel.ColBegin < 0 && roiModel.RowEnd < 0 && roiModel.ColEnd < 0) continue; var dto = new PositionModel() { RowBegin = roiModel.RowBegin, ColBegin = roiModel.ColBegin, RowEnd = roiModel.RowEnd, ColEnd = roiModel.ColEnd, }; _lines.Add(dto); } } } }