Beispiel #1
0
        public int Update(ref Matrix4x4G currentView, ref Matrix4x4G currentProj)
        {
            int num;

            try
            {
                float single = CameraFX.CameraTransitionData.timeSource;
                if (this.end > single)
                {
                    float single1 = Mathf.InverseLerp(this.start, this.end, single);
                    if (single1 < 1f)
                    {
                        single1 = this.func.Evaluate(single1);
                        Matrix4x4G camera     = TransitionFunctions.SlerpWorldToCamera((double)single1, this.view, currentView);
                        Matrix4x4G matrix4x4G = TransitionFunctions.Linear((double)single1, this.proj, currentProj);
                        this.lastTime = single;
                        if (!Matrix4x4G.Equals(ref camera, ref currentView))
                        {
                            currentView = camera;
                            if (Matrix4x4G.Equals(ref matrix4x4G, ref currentProj))
                            {
                                num = 1;
                                return(num);
                            }
                            else
                            {
                                currentProj = matrix4x4G;
                                num         = 3;
                                return(num);
                            }
                        }
                        else if (!Matrix4x4G.Equals(ref matrix4x4G, ref currentProj))
                        {
                            currentProj = matrix4x4G;
                            num         = 2;
                            return(num);
                        }
                    }
                }
                num = 0;
            }
            finally
            {
                this.lastView = currentView;
                this.lastProj = currentProj;
            }
            return(num);
        }
Beispiel #2
0
        public int Update(ref Matrix4x4G currentView, ref Matrix4x4G currentProj)
        {
            int num3;

            try
            {
                float timeSource = CameraFX.CameraTransitionData.timeSource;
                if (this.end > timeSource)
                {
                    float t = Mathf.InverseLerp(this.start, this.end, timeSource);
                    if (t < 1f)
                    {
                        t = this.func.Evaluate(t);
                        Matrix4x4G a         = TransitionFunctions.SlerpWorldToCamera((double)t, this.view, currentView);
                        Matrix4x4G matrixxg2 = TransitionFunctions.Linear((double)t, this.proj, currentProj);
                        this.lastTime = timeSource;
                        if (!Matrix4x4G.Equals(ref a, ref currentView))
                        {
                            currentView = a;
                            if (!Matrix4x4G.Equals(ref matrixxg2, ref currentProj))
                            {
                                currentProj = matrixxg2;
                                return(3);
                            }
                            return(1);
                        }
                        if (!Matrix4x4G.Equals(ref matrixxg2, ref currentProj))
                        {
                            currentProj = matrixxg2;
                            return(2);
                        }
                    }
                }
                num3 = 0;
            }
            finally
            {
                this.lastView = currentView;
                this.lastProj = currentProj;
            }
            return(num3);
        }
Beispiel #3
0
        // Token: 0x06002BD6 RID: 11222 RVA: 0x000A3D54 File Offset: 0x000A1F54
        public int Update(ref Matrix4x4G currentView, ref Matrix4x4G currentProj)
        {
            int result;

            try
            {
                float timeSource = global::CameraFX.CameraTransitionData.timeSource;
                if (this.end > timeSource)
                {
                    float num = Mathf.InverseLerp(this.start, this.end, timeSource);
                    if (num < 1f)
                    {
                        num = this.func.Evaluate(num);
                        Matrix4x4G matrix4x4G  = global::TransitionFunctions.SlerpWorldToCamera((double)num, this.view, currentView);
                        Matrix4x4G matrix4x4G2 = global::TransitionFunctions.Linear((double)num, this.proj, currentProj);
                        this.lastTime = timeSource;
                        if (!Matrix4x4G.Equals(ref matrix4x4G, ref currentView))
                        {
                            currentView = matrix4x4G;
                            if (!Matrix4x4G.Equals(ref matrix4x4G2, ref currentProj))
                            {
                                currentProj = matrix4x4G2;
                                return(3);
                            }
                            return(1);
                        }
                        else if (!Matrix4x4G.Equals(ref matrix4x4G2, ref currentProj))
                        {
                            currentProj = matrix4x4G2;
                            return(2);
                        }
                    }
                }
                result = 0;
            }
            finally
            {
                this.lastView = currentView;
                this.lastProj = currentProj;
            }
            return(result);
        }