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);
    }
Esempio n. 2
0
    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);
    }