public ProjectorData GetProjectorData() { return(new ProjectorData { BlendData = new BlendSettings { MaxBlend = MaxBlend, BlacklevelOffset = BlacklevelOffset, Blacklevel2Offset = Blacklevel2Offset, CurvePoints = BlendCurve.GetCurvePoints() }, ControlPoints = ControlPoints.ToArray(), BlendRegionControlPoints = BlendRegionControlPoints.ToArray(), BlacklevelControlPoints = BlacklevelControlPoints.ToArray(), Blacklevel2ControlPoints = Blacklevel2ControlPoints.ToArray() }); }
private void InitBlendRegion() { BlendRegionControlPoints.Clear(); Enumerable.Range(0, 10).ToList().ForEach(p => BlendRegionControlPoints.Add(new ControlPoint())); BlendRegionControlPoints[0].X = _resolution.Width - _overlap; for (var i = 6; i <= 9; i++) { BlendRegionControlPoints[i].X = BlendRegionControlPoints[0].X; } for (var i = 1; i <= 5; i++) { BlendRegionControlPoints[i].X = _resolution.Width; } var dy = _resolution.Height / 4; for (var i = 2; i <= 5; i++) { BlendRegionControlPoints[i].Y = (i - 1) * dy; BlendRegionControlPoints[11 - i].Y = BlendRegionControlPoints[i].Y; } BlendRegionControlPoints[0].ControlPointType = ControlPointType.IsEcke; BlendRegionControlPoints[1].ControlPointType = ControlPointType.IsEcke; BlendRegionControlPoints[5].ControlPointType = ControlPointType.IsEcke; BlendRegionControlPoints[6].ControlPointType = ControlPointType.IsEcke; foreach (var cp in BlendRegionControlPoints) { cp.U = cp.X; cp.V = cp.Y; } if (_index == 1) { foreach (var cp in BlendRegionControlPoints) { cp.X = cp.U = Resolution.Width - cp.X; } } BlendRegionIndexes = Enumerable.Range(0, BlendRegionControlPoints.Count).ToArray(); }