12345678910111213141516171819202122232425262728293031 |
- using System;
- using UnityEngine;
- namespace Leap.Unity
- {
- public static class UnityMatrixExtension
- {
- public static Quaternion CalculateRotation(this LeapTransform trs)
- {
- Vector3 upwards = trs.yBasis.ToVector3();
- Vector3 forward = -trs.zBasis.ToVector3();
- return Quaternion.LookRotation(forward, upwards);
- }
- public static LeapTransform GetLeapMatrix(this Transform t)
- {
- Vector scale = new Vector(t.lossyScale.x * UnityMatrixExtension.MM_TO_M, t.lossyScale.y * UnityMatrixExtension.MM_TO_M, t.lossyScale.z * UnityMatrixExtension.MM_TO_M);
- LeapTransform result = new LeapTransform(t.position.ToVector(), t.rotation.ToLeapQuaternion(), scale);
- result.MirrorZ();
- return result;
- }
- public static readonly Vector LEAP_UP = new Vector(0f, 1f, 0f);
- public static readonly Vector LEAP_FORWARD = new Vector(0f, 0f, -1f);
- public static readonly Vector LEAP_ORIGIN = new Vector(0f, 0f, 0f);
- public static readonly float MM_TO_M = 0.001f;
- }
- }
|