QVM: Quaternions, Vectors, Matrices
quat
#include <boost/qvm/quat.hpp>[ORIG_END] -->
namespace boost
{
namespace qvm
{
template <class T>
struct quat
{
T a[4];
template <class R>
operator R() const
{
R r;
assign(r,*this);
return r;
}
};
template <class Quaternion>
struct quat_traits;
template <class T>
struct quat_traits< quat<T> >
{
typedef T scalar_type;
template <int I> static scalar_type read_element( quat<T> const & x ) { return x.a[I]; }
template <int I> static scalar_type & write_element( quat<T> & x ) { return x.a[I]; }
};
}
}
Это простой кватернионный тип. Преобразуется в любой другой кватернионный тип.
Частичная специализация шаблонаquat_traitsделает шаблонquatсовместимым с общими операциями, определенными Boost QVM.