构造函数问题
使用glm的四元数时,由于构造函数参数问题调试了一下午,一直以为是旋转矩阵出错了,没想到是这么一个不起眼的问题,期间也看了定义,但也只看了定义/(ㄒoㄒ)/~~。 它的成员变量里顺序明明是x,y,z,w,结果到了构造函数里参数顺序就变成了(w,x,y,z)!!! 使用不熟悉的接口时一定要看注释!看注释!看文档!看文档!看文档!
template <typename T, precision P>
struct tquat
{
enum ctor{null};
typedef T value_type;
typedef tvec4<bool, P> bool_type;
public:
T x, y, z, w;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL tquat();
template <typename U, precision Q>
GLM_FUNC_DECL explicit tquat(
tquat<U, Q> const & q);
GLM_FUNC_DECL tquat(
T const & s,
tvec3<T, P> const & v);
GLM_FUNC_DECL tquat(
T const & w,
T const & x,
T const & y,
T const & z);
GLM_FUNC_DECL explicit tquat(
detail::tvec3<T, P> const & u,
detail::tvec3<T, P> const & v);
GLM_FUNC_DECL explicit tquat(
tvec3<T, P> const & eulerAngles);
GLM_FUNC_DECL explicit tquat(
tmat3x3<T, P> const & m);
GLM_FUNC_DECL explicit tquat(
tmat4x4<T, P> const & m);
GLM_FUNC_DECL T & operator[](length_t i);
GLM_FUNC_DECL T const & operator[](length_t i) const;
GLM_FUNC_DECL tquat<T, P> & operator+=(tquat<T, P> const & q);
GLM_FUNC_DECL tquat<T, P> & operator*=(tquat<T, P> const & q);
GLM_FUNC_DECL tquat<T, P> & operator*=(T const & s);
GLM_FUNC_DECL tquat<T, P> & operator/=(T const & s);
};
|