public void Save() { var piList = new List <CorrectableQuad.PointInfomation>(); for (var i = 0; i < Points.Length; i++) { var p = Points[i]; var uv = new Vector2( EMath.Map(p.x, -aspect.x / 2f, aspect.x / 2f, 0, 1), EMath.Map(p.y, -aspect.y / 2f, aspect.y / 2f, 0, 1) ); var pi = new CorrectableQuad.PointInfomation { position = p, uv = uv }; piList.Add(pi); print(i + " : " + uv); } var setting = new QuadCorrectionSetting(); setting.LeftTop = new CorrectableQuad.JPointInfomation(piList[0]); setting.RightTop = new CorrectableQuad.JPointInfomation(piList[1]); setting.RightBottom = new CorrectableQuad.JPointInfomation(piList[2]); setting.LeftBottom = new CorrectableQuad.JPointInfomation(piList[3]); CorrectEvent?.Invoke(setting); IOHandler.SaveJson(IOHandler.IntoStreamingAssets(settingFileName), setting); }
private void Restore(QuadCorrectionSetting setting) { Size = fitToAngleOfView ? EMath.GetShrinkFitSize(this.destSize, new Vector2(cam.orthographicSize * 2f * cam.aspect, cam.orthographicSize * 2f)) : destSize; //print("size : " + Size); var lt = new Vector2(-Size.x / 2f, Size.y / 2f); var rt = new Vector2(Size.x / 2f, Size.y / 2f); var rb = new Vector2(Size.x / 2f, -Size.y / 2f); var lb = new Vector2(-Size.x / 2f, -Size.y / 2f); correctableQuad.Init(setting.LeftTop.ToPointInfomation(), setting.RightTop.ToPointInfomation(), setting.RightBottom.ToPointInfomation(), setting.LeftBottom.ToPointInfomation(), segmentX, segmentY ); correctableQuad.Refresh(lt, rt, rb, lb); }