using Microsoft.Xna.Framework;

namespace Kav.Utils
{
    public static class QuaternionUtils
    {
        // assumes that the input vectors are normalized and orthogonal
        public static Quaternion LookAt(in Vector3 forward, in Vector3 up)
        {
            Matrix orientation = Matrix.Identity;
            orientation.Forward = forward;
            orientation.Right = Vector3.Normalize(Vector3.Cross(forward, up));
            orientation.Up = Vector3.Cross(orientation.Right, forward);

            return Quaternion.CreateFromRotationMatrix(orientation);
        }
    }
}