/// <summary>
/// Initializes a new instance of the <see cref="Quaternion"/> class.
/// </summary>
/// <param name="sourcePosition">The source position.</param>
/// <param name="destinationPosition">The destination position.</param>
public Quaternion(Vector3 sourcePosition, Vector3 destinationPosition)
{
var r = sourcePosition.Cross(destinationPosition);
var s = Functions.Sqrt(2 * (1 + sourcePosition.Dot(destinationPosition)));
mValues = new Vector4(r / s, s / 2);
}