public static Vector3 operator *( Quaternion quat, Vector3 vector )
{
// nVidia SDK implementation
Vector3 uv, uuv;
Vector3 qvec = new Vector3( quat.x, quat.y, quat.z );
uv = qvec.Cross( vector );
uuv = qvec.Cross( uv );
uv *= ( 2.0f * quat.w );
uuv *= 2.0f;
return vector + uv + uuv;
// get the rotation matrix of the Quaternion and multiply it times the vector
//return quat.ToRotationMatrix() * vector;
}