UnityEditor.MathUtils.QuaternionFromMatrix C# (CSharp) Method

QuaternionFromMatrix() public static method

public static QuaternionFromMatrix ( Matrix4x4 m ) : Quaternion
m UnityEngine.Matrix4x4
return UnityEngine.Quaternion
        public static Quaternion QuaternionFromMatrix(Matrix4x4 m)
        {
            Quaternion q = new Quaternion {
                w = Mathf.Sqrt(Mathf.Max((float) 0f, (float) (((1f + m[0, 0]) + m[1, 1]) + m[2, 2]))) / 2f,
                x = Mathf.Sqrt(Mathf.Max((float) 0f, (float) (((1f + m[0, 0]) - m[1, 1]) - m[2, 2]))) / 2f,
                y = Mathf.Sqrt(Mathf.Max((float) 0f, (float) (((1f - m[0, 0]) + m[1, 1]) - m[2, 2]))) / 2f,
                z = Mathf.Sqrt(Mathf.Max((float) 0f, (float) (((1f - m[0, 0]) - m[1, 1]) + m[2, 2]))) / 2f
            };
            q.x *= Mathf.Sign(q.x * (m[2, 1] - m[1, 2]));
            q.y *= Mathf.Sign(q.y * (m[0, 2] - m[2, 0]));
            q.z *= Mathf.Sign(q.z * (m[1, 0] - m[0, 1]));
            QuaternionNormalize(ref q);
            return q;
        }