44 #ifndef AI_QUATERNION_H_INC 45 #define AI_QUATERNION_H_INC 49 template <
typename TReal>
class aiVector3t;
50 template <
typename TReal>
class aiMatrix3x3t;
54 template <
typename TReal>
58 aiQuaterniont() : w(1.0), x(), y(), z() {}
59 aiQuaterniont(TReal pw, TReal px, TReal py, TReal pz)
60 : w(pw), x(px), y(py), z(pz) {}
63 aiQuaterniont(
const aiMatrix3x3t<TReal>& pRotMatrix);
66 aiQuaterniont( TReal rotx, TReal roty, TReal rotz);
69 aiQuaterniont( aiVector3t<TReal> axis, TReal angle);
72 aiQuaterniont( aiVector3t<TReal> normalized);
75 aiMatrix3x3t<TReal> GetMatrix()
const;
79 bool operator== (
const aiQuaterniont& o)
const;
80 bool operator!= (
const aiQuaterniont& o)
const;
82 bool Equal(
const aiQuaterniont& o, TReal epsilon = 1e-6)
const;
87 aiQuaterniont& Normalize();
90 aiQuaterniont& Conjugate ();
93 aiVector3t<TReal> Rotate (
const aiVector3t<TReal>& in);
96 aiQuaterniont operator* (
const aiQuaterniont& two)
const;
106 static void Interpolate( aiQuaterniont& pOut,
const aiQuaterniont& pStart,
107 const aiQuaterniont& pEnd, TReal pFactor);
126 #endif // AI_QUATERNION_H_INC Definition: quaternion.h:119