Пример #1
0
        /// <summary>
        /// Creates a Unity quaternion from a native vector.
        /// </summary>
        /// <param name="quat">A native quaternion.</param>
        /// <param name="transformToRUF">(Optional) If false, prevents conversion to Unity's coordinate system.</param>
        /// <returns>A Unity quaternion.</returns>
        public static Quaternion ToUnity(MagicLeapNativeBindings.MLQuaternionf quat, bool transformToRUF = true)
        {
            Quaternion unityQuat = new Quaternion(quat.X, quat.Y, quat.Z, quat.W);

            if (transformToRUF)
            {
                unityQuat.z = -unityQuat.z;
                unityQuat.w = -unityQuat.w;
            }

            return(unityQuat);
        }
Пример #2
0
        /// <summary>
        /// Creates native quaternion from a Unity quaternion.
        /// </summary>
        /// <param name="quat">A Unity quaternion.</param>
        /// <param name="transformFromRUF">(Optional) If false, prevents conversion to the native SDK coordinate system.</param>
        /// <returns>A native quaternion.</returns>
        public static MagicLeapNativeBindings.MLQuaternionf FromUnity(Quaternion quat, bool transformFromRUF = true)
        {
            if (transformFromRUF)
            {
                quat.z = -quat.z;
                quat.w = -quat.w;
            }

            MagicLeapNativeBindings.MLQuaternionf outQuat = new MagicLeapNativeBindings.MLQuaternionf();

            outQuat.X = quat.x;
            outQuat.Y = quat.y;
            outQuat.Z = quat.z;
            outQuat.W = quat.w;

            return(outQuat);
        }