UnityEditor.MathUtils.QuaternionNormalize C# (CSharp) Method

QuaternionNormalize() public static method

public static QuaternionNormalize ( Quaternion &q ) : void
q UnityEngine.Quaternion
return void
        public static void QuaternionNormalize(ref Quaternion q)
        {
            float num = 1f / Mathf.Sqrt((((q.x * q.x) + (q.y * q.y)) + (q.z * q.z)) + (q.w * q.w));
            q.x *= num;
            q.y *= num;
            q.z *= num;
            q.w *= num;
        }

Usage Example

示例#1
0
        public static Quaternion QuaternionFromMatrix(Matrix4x4 m)
        {
            Quaternion result = default(Quaternion);

            result.w  = Mathf.Sqrt(Mathf.Max(0f, 1f + m[0, 0] + m[1, 1] + m[2, 2])) / 2f;
            result.x  = Mathf.Sqrt(Mathf.Max(0f, 1f + m[0, 0] - m[1, 1] - m[2, 2])) / 2f;
            result.y  = Mathf.Sqrt(Mathf.Max(0f, 1f - m[0, 0] + m[1, 1] - m[2, 2])) / 2f;
            result.z  = Mathf.Sqrt(Mathf.Max(0f, 1f - m[0, 0] - m[1, 1] + m[2, 2])) / 2f;
            result.x *= Mathf.Sign(result.x * (m[2, 1] - m[1, 2]));
            result.y *= Mathf.Sign(result.y * (m[0, 2] - m[2, 0]));
            result.z *= Mathf.Sign(result.z * (m[1, 0] - m[0, 1]));
            MathUtils.QuaternionNormalize(ref result);
            return(result);
        }
All Usage Examples Of UnityEditor.MathUtils::QuaternionNormalize