29 #ifndef __DualQuaternion_H__
30 #define __DualQuaternion_H__
52 : w(1), x(0), y(0), z(0), dw(1), dx(0), dy(0), dz(0)
59 : w(fW), x(fX), y(fY), z(fZ), dw(fdW), dx(fdX), dy(fdY), dz(fdZ)
66 this->fromTransformationMatrix(rot);
72 this->fromRotationTranslation(q, trans);
78 memcpy(&w, valptr,
sizeof(
Real)*8);
82 inline Real operator [] (
const size_t i )
const
90 inline Real& operator [] (
const size_t i )
113 return (rhs.
w == w) && (rhs.
x == x) && (rhs.
y == y) && (rhs.
z == z) &&
114 (rhs.
dw == dw) && (rhs.
dx == dx) && (rhs.
dy == dy) && (rhs.
dz == dz);
161 void fromTransformationMatrix (
const Matrix4& kTrans);
164 void toTransformationMatrix (
Matrix4& kTrans)
const;
172 inline _OgreExport friend std::ostream&
operator <<
175 o <<
"DualQuaternion(" << q.w <<
", " << q.x <<
", " << q.y <<
", " << q.z <<
", " << q.dw <<
", " << q.dx <<
", " << q.dy <<
", " << q.dz <<
")";