QQuaternion Class Reference

#include <qquaternion.h>

Class Description

Definition at line 59 of file qquaternion.h.

Public Member Functions

 QQuaternion ()
 
 QQuaternion (qreal scalar, qreal xpos, qreal ypos, qreal zpos)
 
 QQuaternion (qreal scalar, const QVector3D &vector)
 
 QQuaternion (const QVector4D &vector)
 
bool isNull () const
 
bool isIdentity () const
 
QVector3D vector () const
 
void setVector (const QVector3D &vector)
 
void setVector (qreal x, qreal y, qreal z)
 
qreal x () const
 
qreal y () const
 
qreal z () const
 
qreal scalar () const
 
void setX (qreal x)
 
void setY (qreal y)
 
void setZ (qreal z)
 
void setScalar (qreal scalar)
 
qreal length () const
 
qreal lengthSquared () const
 
QQuaternion normalized () const
 
void normalize ()
 
QQuaternion conjugate () const
 
QVector3D rotatedVector (const QVector3D &vector) const
 
QQuaternionoperator+= (const QQuaternion &quaternion)
 
QQuaternionoperator-= (const QQuaternion &quaternion)
 
QQuaternionoperator*= (qreal factor)
 
QQuaternionoperator*= (const QQuaternion &quaternion)
 
QQuaternionoperator/= (qreal divisor)
 
QVector4D toVector4D () const
 
 operator QVariant () const
 

Static Public Member Functions

static QQuaternion fromAxisAndAngle (const QVector3D &axis, qreal angle)
 
static QQuaternion fromAxisAndAngle (qreal x, qreal y, qreal z, qreal angle)
 
static QQuaternion slerp (const QQuaternion &q1, const QQuaternion &q2, qreal t)
 
static QQuaternion nlerp (const QQuaternion &q1, const QQuaternion &q2, qreal t)
 

Friends

bool operator== (const QQuaternion &q1, const QQuaternion &q2)
 
bool operator!= (const QQuaternion &q1, const QQuaternion &q2)
 
const QQuaternion operator+ (const QQuaternion &q1, const QQuaternion &q2)
 
const QQuaternion operator- (const QQuaternion &q1, const QQuaternion &q2)
 
const QQuaternion operator* (qreal factor, const QQuaternion &quaternion)
 
const QQuaternion operator* (const QQuaternion &quaternion, qreal factor)
 
const QQuaternion operator* (const QQuaternion &q1, const QQuaternion &q2)
 
const QQuaternion operator- (const QQuaternion &quaternion)
 
const QQuaternion operator/ (const QQuaternion &quaternion, qreal divisor)
 
bool qFuzzyCompare (const QQuaternion &q1, const QQuaternion &q2)
 

Constructor & Destructor Documentation

QQuaternion ( )
inline

Definition at line 141 of file qquaternion.h.

141 : wp(1.0f), xp(0.0f), yp(0.0f), zp(0.0f) {}
GLclampf f
Definition: GLee.h:9303
QQuaternion ( qreal  scalar,
qreal  xpos,
qreal  ypos,
qreal  zpos 
)
inline

Definition at line 143 of file qquaternion.h.

143 : wp(aScalar), xp(xpos), yp(ypos), zp(zpos) {}
QQuaternion ( qreal  scalar,
const QVector3D vector 
)
inline

Definition at line 279 of file qquaternion.h.

280  : wp(aScalar), xp(aVector.x()), yp(aVector.y()), zp(aVector.z()) {}
QQuaternion ( const QVector4D vector)
inlineexplicit

Definition at line 305 of file qquaternion.h.

306  : wp(aVector.w()), xp(aVector.x()), yp(aVector.y()), zp(aVector.z()) {}

Member Function Documentation

bool isNull ( ) const
inline

Definition at line 146 of file qquaternion.h.

147 {
148  return qIsNull(xp) && qIsNull(yp) && qIsNull(zp) && qIsNull(wp);
149 }
bool isIdentity ( ) const
inline

Definition at line 151 of file qquaternion.h.

152 {
153  return qIsNull(xp) && qIsNull(yp) && qIsNull(zp) && wp == 1.0f;
154 }
QVector3D vector ( ) const
inline

Definition at line 289 of file qquaternion.h.

290 {
291  return QVector3D(xp, yp, zp);
292 }
void setVector ( const QVector3D vector)
inline

Definition at line 282 of file qquaternion.h.

283 {
284  xp = aVector.x();
285  yp = aVector.y();
286  zp = aVector.z();
287 }
void setVector ( qreal  x,
qreal  y,
qreal  z 
)
inline

Definition at line 296 of file qquaternion.h.

297 {
298  xp = aX;
299  yp = aY;
300  zp = aZ;
301 }
qreal x ( ) const
inline

Definition at line 156 of file qquaternion.h.

156 { return qreal(xp); }
qreal y ( ) const
inline

Definition at line 157 of file qquaternion.h.

157 { return qreal(yp); }
qreal z ( ) const
inline

Definition at line 158 of file qquaternion.h.

158 { return qreal(zp); }
qreal scalar ( ) const
inline

Definition at line 159 of file qquaternion.h.

159 { return qreal(wp); }
void setX ( qreal  x)
inline

Definition at line 161 of file qquaternion.h.

161 { xp = aX; }
void setY ( qreal  y)
inline

Definition at line 162 of file qquaternion.h.

162 { yp = aY; }
void setZ ( qreal  z)
inline

Definition at line 163 of file qquaternion.h.

163 { zp = aZ; }
void setScalar ( qreal  scalar)
inline

Definition at line 164 of file qquaternion.h.

164 { wp = aScalar; }
qreal length ( ) const
qreal lengthSquared ( ) const
void normalize ( )
QQuaternion conjugate ( ) const
inline

Definition at line 166 of file qquaternion.h.

167 {
168  return QQuaternion(wp, -xp, -yp, -zp);
169 }
QVector3D rotatedVector ( const QVector3D vector) const
QQuaternion & operator+= ( const QQuaternion quaternion)
inline

Definition at line 171 of file qquaternion.h.

172 {
173  xp += quaternion.xp;
174  yp += quaternion.yp;
175  zp += quaternion.zp;
176  wp += quaternion.wp;
177  return *this;
178 }
QQuaternion & operator-= ( const QQuaternion quaternion)
inline

Definition at line 180 of file qquaternion.h.

181 {
182  xp -= quaternion.xp;
183  yp -= quaternion.yp;
184  zp -= quaternion.zp;
185  wp -= quaternion.wp;
186  return *this;
187 }
QQuaternion & operator*= ( qreal  factor)
inline

Definition at line 189 of file qquaternion.h.

190 {
191  xp *= factor;
192  yp *= factor;
193  zp *= factor;
194  wp *= factor;
195  return *this;
196 }
QQuaternion & operator*= ( const QQuaternion quaternion)
inline

Definition at line 214 of file qquaternion.h.

215 {
216  *this = *this * quaternion;
217  return *this;
218 }
QQuaternion & operator/= ( qreal  divisor)
inline

Definition at line 220 of file qquaternion.h.

221 {
222  xp /= divisor;
223  yp /= divisor;
224  zp /= divisor;
225  wp /= divisor;
226  return *this;
227 }
GLXDrawable int64_t int64_t divisor
Definition: GLee.h:10690
QVector4D toVector4D ( ) const
inline

Definition at line 308 of file qquaternion.h.

309 {
310  return QVector4D(xp, yp, zp, wp);
311 }
operator QVariant ( ) const
static QQuaternion fromAxisAndAngle ( const QVector3D axis,
qreal  angle 
)
static
static QQuaternion fromAxisAndAngle ( qreal  x,
qreal  y,
qreal  z,
qreal  angle 
)
static
static QQuaternion slerp ( const QQuaternion q1,
const QQuaternion q2,
qreal  t 
)
static
static QQuaternion nlerp ( const QQuaternion q1,
const QQuaternion q2,
qreal  t 
)
static

Friends And Related Function Documentation

bool operator== ( const QQuaternion q1,
const QQuaternion q2 
)
friend

Definition at line 229 of file qquaternion.h.

230 {
231  return q1.xp == q2.xp && q1.yp == q2.yp && q1.zp == q2.zp && q1.wp == q2.wp;
232 }
bool operator!= ( const QQuaternion q1,
const QQuaternion q2 
)
friend

Definition at line 234 of file qquaternion.h.

235 {
236  return q1.xp != q2.xp || q1.yp != q2.yp || q1.zp != q2.zp || q1.wp != q2.wp;
237 }
const QQuaternion operator+ ( const QQuaternion q1,
const QQuaternion q2 
)
friend

Definition at line 239 of file qquaternion.h.

240 {
241  return QQuaternion(q1.wp + q2.wp, q1.xp + q2.xp, q1.yp + q2.yp, q1.zp + q2.zp);
242 }
const QQuaternion operator- ( const QQuaternion q1,
const QQuaternion q2 
)
friend

Definition at line 244 of file qquaternion.h.

245 {
246  return QQuaternion(q1.wp - q2.wp, q1.xp - q2.xp, q1.yp - q2.yp, q1.zp - q2.zp);
247 }
const QQuaternion operator* ( qreal  factor,
const QQuaternion quaternion 
)
friend

Definition at line 249 of file qquaternion.h.

250 {
251  return QQuaternion(quaternion.wp * factor, quaternion.xp * factor, quaternion.yp * factor, quaternion.zp * factor);
252 }
const QQuaternion operator* ( const QQuaternion quaternion,
qreal  factor 
)
friend

Definition at line 254 of file qquaternion.h.

255 {
256  return QQuaternion(quaternion.wp * factor, quaternion.xp * factor, quaternion.yp * factor, quaternion.zp * factor);
257 }
const QQuaternion operator* ( const QQuaternion q1,
const QQuaternion q2 
)
friend

Definition at line 198 of file qquaternion.h.

199 {
200  qreal ww = (q1.zp + q1.xp) * (q2.xp + q2.yp);
201  qreal yy = (q1.wp - q1.yp) * (q2.wp + q2.zp);
202  qreal zz = (q1.wp + q1.yp) * (q2.wp - q2.zp);
203  qreal xx = ww + yy + zz;
204  qreal qq = 0.5 * (xx + (q1.zp - q1.xp) * (q2.xp - q2.yp));
205 
206  qreal w = qq - ww + (q1.zp - q1.yp) * (q2.yp - q2.zp);
207  qreal x = qq - xx + (q1.xp + q1.wp) * (q2.xp + q2.wp);
208  qreal y = qq - yy + (q1.wp - q1.xp) * (q2.yp + q2.zp);
209  qreal z = qq - zz + (q1.zp + q1.yp) * (q2.wp - q2.xp);
210 
211  return QQuaternion(w, x, y, z);
212 }
GLenum GLint GLint y
Definition: GLee.h:876
GLdouble GLdouble z
Definition: GLee.h:1393
GLenum GLint x
Definition: GLee.h:876
GLubyte GLubyte GLubyte GLubyte w
Definition: GLee.h:1775
const QQuaternion operator- ( const QQuaternion quaternion)
friend

Definition at line 259 of file qquaternion.h.

260 {
261  return QQuaternion(-quaternion.wp, -quaternion.xp, -quaternion.yp, -quaternion.zp);
262 }
const QQuaternion operator/ ( const QQuaternion quaternion,
qreal  divisor 
)
friend

Definition at line 264 of file qquaternion.h.

265 {
266  return QQuaternion(quaternion.wp / divisor, quaternion.xp / divisor, quaternion.yp / divisor, quaternion.zp / divisor);
267 }
GLXDrawable int64_t int64_t divisor
Definition: GLee.h:10690
bool qFuzzyCompare ( const QQuaternion q1,
const QQuaternion q2 
)
friend

Definition at line 269 of file qquaternion.h.

270 {
271  return qFuzzyCompare(q1.xp, q2.xp) &&
272  qFuzzyCompare(q1.yp, q2.yp) &&
273  qFuzzyCompare(q1.zp, q2.zp) &&
274  qFuzzyCompare(q1.wp, q2.wp);
275 }
friend bool qFuzzyCompare(const QQuaternion &q1, const QQuaternion &q2)
Definition: qquaternion.h:269

The documentation for this class was generated from the following file: