public static Quaternion Nlerp( Real fT, Quaternion rkP, Quaternion rkQ, bool shortestPath )
{
Quaternion result;
var fCos = rkP.Dot( rkQ );
if ( fCos < 0.0f && shortestPath )
{
result = rkP + fT*( ( -rkQ ) - rkP );
}
else
{
result = rkP + fT*( rkQ - rkP );
}
result.Normalize();
return result;
}