Пример #1
0
        public GodotVector3 GetEuler()
        {
            GodotBasis   basis = Orthonormalized();
            GodotVector3 vector3;

            vector3.z = 0.0f;
            float num = basis.y[2];

            if (num < 1.0)
            {
                if (num > -1.0)
                {
                    vector3.x = GodotMathf.Asin(-num);
                    vector3.y = GodotMathf.Atan2(basis.x[2], basis.z[2]);
                    vector3.z = GodotMathf.Atan2(basis.y[0], basis.y[1]);
                }
                else
                {
                    vector3.x = 1.570796f;
                    vector3.y = -GodotMathf.Atan2(-basis.x[1], basis.x[0]);
                }
            }
            else
            {
                vector3.x = -1.570796f;
                vector3.y = -GodotMathf.Atan2(basis.x[1], basis.x[0]);
            }
            return(vector3);
        }