/// <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); }
/// <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); }