public static FixQuaternion LerpUnclamped(FixQuaternion a, FixQuaternion b, Fix64 t) { FixQuaternion result = FixQuaternion.Multiply(a, (1 - t)) + FixQuaternion.Multiply(b, t); result.Normalize(); return(result); }
public static FixQuaternion FromToRotation(FixVector3 fromVector, FixVector3 toVector) { FixVector3 w = FixVector3.Cross(fromVector, toVector); FixQuaternion q = new FixQuaternion(w.x, w.y, w.z, FixVector3.Dot(fromVector, toVector)); q.w += Fix64.Sqrt(fromVector.SqrMagnitude * toVector.SqrMagnitude); q.Normalize(); return(q); }