QVector3D Class Reference

#include <qvector3d.h>

Class Description

Definition at line 60 of file qvector3d.h.

Public Member Functions

 QVector3D ()
 
 QVector3D (qreal xpos, qreal ypos, qreal zpos)
 
 QVector3D (const QPoint &point)
 
 QVector3D (const QPointF &point)
 
 QVector3D (const QVector2D &vector)
 
 QVector3D (const QVector2D &vector, qreal zpos)
 
 QVector3D (const QVector4D &vector)
 
bool isNull () const
 
qreal x () const
 
qreal y () const
 
qreal z () const
 
void setX (qreal x)
 
void setY (qreal y)
 
void setZ (qreal z)
 
qreal length () const
 
qreal lengthSquared () const
 
QVector3D normalized () const
 
void normalize ()
 
QVector3Doperator+= (const QVector3D &vector)
 
QVector3Doperator-= (const QVector3D &vector)
 
QVector3Doperator*= (qreal factor)
 
QVector3Doperator*= (const QVector3D &vector)
 
QVector3Doperator/= (qreal divisor)
 
qreal distanceToPlane (const QVector3D &plane, const QVector3D &normal) const
 
qreal distanceToPlane (const QVector3D &plane1, const QVector3D &plane2, const QVector3D &plane3) const
 
qreal distanceToLine (const QVector3D &point, const QVector3D &direction) const
 
QVector2D toVector2D () const
 
QVector4D toVector4D () const
 
QPoint toPoint () const
 
QPointF toPointF () const
 
 operator QVariant () const
 

Static Public Member Functions

static qreal dotProduct (const QVector3D &v1, const QVector3D &v2)
 
static QVector3D crossProduct (const QVector3D &v1, const QVector3D &v2)
 
static QVector3D normal (const QVector3D &v1, const QVector3D &v2)
 
static QVector3D normal (const QVector3D &v1, const QVector3D &v2, const QVector3D &v3)
 

Friends

class QVector2D
 
class QVector4D
 
bool operator== (const QVector3D &v1, const QVector3D &v2)
 
bool operator!= (const QVector3D &v1, const QVector3D &v2)
 
const QVector3D operator+ (const QVector3D &v1, const QVector3D &v2)
 
const QVector3D operator- (const QVector3D &v1, const QVector3D &v2)
 
const QVector3D operator* (qreal factor, const QVector3D &vector)
 
const QVector3D operator* (const QVector3D &vector, qreal factor)
 
const QVector3D operator* (const QVector3D &v1, const QVector3D &v2)
 
const QVector3D operator- (const QVector3D &vector)
 
const QVector3D operator/ (const QVector3D &vector, qreal divisor)
 
bool qFuzzyCompare (const QVector3D &v1, const QVector3D &v2)
 
QVector3D operator* (const QVector3D &vector, const QMatrix4x4 &matrix)
 
QVector3D operator* (const QMatrix4x4 &matrix, const QVector3D &vector)
 

Constructor & Destructor Documentation

QVector3D ( )
inline

Definition at line 146 of file qvector3d.h.

146 : xp(0.0f), yp(0.0f), zp(0.0f) {}
GLclampf f
Definition: GLee.h:9303
QVector3D ( qreal  xpos,
qreal  ypos,
qreal  zpos 
)
inline

Definition at line 148 of file qvector3d.h.

148 : xp(xpos), yp(ypos), zp(zpos) {}
QVector3D ( const QPoint point)
inlineexplicit

Definition at line 152 of file qvector3d.h.

152 : xp(point.x()), yp(point.y()), zp(0.0f) {}
int y() const
Definition: qpoint.h:131
int x() const
Definition: qpoint.h:128
GLclampf f
Definition: GLee.h:9303
QVector3D ( const QPointF point)
inlineexplicit

Definition at line 154 of file qvector3d.h.

154 : xp(point.x()), yp(point.y()), zp(0.0f) {}
qreal y() const
Definition: qpoint.h:287
qreal x() const
Definition: qpoint.h:282
GLclampf f
Definition: GLee.h:9303
QVector3D ( const QVector2D vector)
QVector3D ( const QVector2D vector,
qreal  zpos 
)
QVector3D ( const QVector4D vector)
explicit

Member Function Documentation

bool isNull ( ) const
inline

Definition at line 156 of file qvector3d.h.

157 {
158  return qIsNull(xp) && qIsNull(yp) && qIsNull(zp);
159 }
qreal x ( ) const
inline

Definition at line 161 of file qvector3d.h.

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

Definition at line 162 of file qvector3d.h.

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

Definition at line 163 of file qvector3d.h.

163 { return qreal(zp); }
void setX ( qreal  x)
inline

Definition at line 165 of file qvector3d.h.

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

Definition at line 166 of file qvector3d.h.

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

Definition at line 167 of file qvector3d.h.

167 { zp = aZ; }
qreal length ( ) const
qreal lengthSquared ( ) const
QVector3D normalized ( ) const
void normalize ( )
QVector3D & operator+= ( const QVector3D vector)
inline

Definition at line 169 of file qvector3d.h.

170 {
171  xp += vector.xp;
172  yp += vector.yp;
173  zp += vector.zp;
174  return *this;
175 }
QVector3D & operator-= ( const QVector3D vector)
inline

Definition at line 177 of file qvector3d.h.

178 {
179  xp -= vector.xp;
180  yp -= vector.yp;
181  zp -= vector.zp;
182  return *this;
183 }
QVector3D & operator*= ( qreal  factor)
inline

Definition at line 185 of file qvector3d.h.

186 {
187  xp *= factor;
188  yp *= factor;
189  zp *= factor;
190  return *this;
191 }
QVector3D & operator*= ( const QVector3D vector)
inline

Definition at line 193 of file qvector3d.h.

194 {
195  xp *= vector.xp;
196  yp *= vector.yp;
197  zp *= vector.zp;
198  return *this;
199 }
QVector3D & operator/= ( qreal  divisor)
inline

Definition at line 201 of file qvector3d.h.

202 {
203  xp /= divisor;
204  yp /= divisor;
205  zp /= divisor;
206  return *this;
207 }
GLXDrawable int64_t int64_t divisor
Definition: GLee.h:10690
static qreal dotProduct ( const QVector3D v1,
const QVector3D v2 
)
static
static QVector3D crossProduct ( const QVector3D v1,
const QVector3D v2 
)
static
static QVector3D normal ( const QVector3D v1,
const QVector3D v2 
)
static
static QVector3D normal ( const QVector3D v1,
const QVector3D v2,
const QVector3D v3 
)
static
qreal distanceToPlane ( const QVector3D plane,
const QVector3D normal 
) const
qreal distanceToPlane ( const QVector3D plane1,
const QVector3D plane2,
const QVector3D plane3 
) const
qreal distanceToLine ( const QVector3D point,
const QVector3D direction 
) const
QVector2D toVector2D ( ) const
QVector4D toVector4D ( ) const
QPoint toPoint ( ) const
inline

Definition at line 261 of file qvector3d.h.

262 {
263  return QPoint(qRound(xp), qRound(yp));
264 }
Definition: qpoint.h:53
QPointF toPointF ( ) const
inline

Definition at line 266 of file qvector3d.h.

267 {
268  return QPointF(qreal(xp), qreal(yp));
269 }
operator QVariant ( ) const

Friends And Related Function Documentation

friend class QVector2D
friend

Definition at line 136 of file qvector3d.h.

friend class QVector4D
friend

Definition at line 137 of file qvector3d.h.

bool operator== ( const QVector3D v1,
const QVector3D v2 
)
friend

Definition at line 209 of file qvector3d.h.

210 {
211  return v1.xp == v2.xp && v1.yp == v2.yp && v1.zp == v2.zp;
212 }
bool operator!= ( const QVector3D v1,
const QVector3D v2 
)
friend

Definition at line 214 of file qvector3d.h.

215 {
216  return v1.xp != v2.xp || v1.yp != v2.yp || v1.zp != v2.zp;
217 }
const QVector3D operator+ ( const QVector3D v1,
const QVector3D v2 
)
friend

Definition at line 219 of file qvector3d.h.

220 {
221  return QVector3D(v1.xp + v2.xp, v1.yp + v2.yp, v1.zp + v2.zp, 1);
222 }
const QVector3D operator- ( const QVector3D v1,
const QVector3D v2 
)
friend

Definition at line 224 of file qvector3d.h.

225 {
226  return QVector3D(v1.xp - v2.xp, v1.yp - v2.yp, v1.zp - v2.zp, 1);
227 }
const QVector3D operator* ( qreal  factor,
const QVector3D vector 
)
friend

Definition at line 229 of file qvector3d.h.

230 {
231  return QVector3D(vector.xp * factor, vector.yp * factor, vector.zp * factor, 1);
232 }
const QVector3D operator* ( const QVector3D vector,
qreal  factor 
)
friend

Definition at line 234 of file qvector3d.h.

235 {
236  return QVector3D(vector.xp * factor, vector.yp * factor, vector.zp * factor, 1);
237 }
const QVector3D operator* ( const QVector3D v1,
const QVector3D v2 
)
friend

Definition at line 239 of file qvector3d.h.

240 {
241  return QVector3D(v1.xp * v2.xp, v1.yp * v2.yp, v1.zp * v2.zp, 1);
242 }
const QVector3D operator- ( const QVector3D vector)
friend

Definition at line 244 of file qvector3d.h.

245 {
246  return QVector3D(-vector.xp, -vector.yp, -vector.zp, 1);
247 }
const QVector3D operator/ ( const QVector3D vector,
qreal  divisor 
)
friend

Definition at line 249 of file qvector3d.h.

250 {
251  return QVector3D(vector.xp / divisor, vector.yp / divisor, vector.zp / divisor, 1);
252 }
GLXDrawable int64_t int64_t divisor
Definition: GLee.h:10690
bool qFuzzyCompare ( const QVector3D v1,
const QVector3D v2 
)
friend

Definition at line 254 of file qvector3d.h.

255 {
256  return qFuzzyCompare(v1.xp, v2.xp) &&
257  qFuzzyCompare(v1.yp, v2.yp) &&
258  qFuzzyCompare(v1.zp, v2.zp);
259 }
friend bool qFuzzyCompare(const QVector3D &v1, const QVector3D &v2)
Definition: qvector3d.h:254
QVector3D operator* ( const QVector3D vector,
const QMatrix4x4 matrix 
)
friend

Definition at line 606 of file qmatrix4x4.h.

607 {
608  qreal x, y, z, w;
609  x = vector.x() * matrix.m[0][0] +
610  vector.y() * matrix.m[0][1] +
611  vector.z() * matrix.m[0][2] +
612  matrix.m[0][3];
613  y = vector.x() * matrix.m[1][0] +
614  vector.y() * matrix.m[1][1] +
615  vector.z() * matrix.m[1][2] +
616  matrix.m[1][3];
617  z = vector.x() * matrix.m[2][0] +
618  vector.y() * matrix.m[2][1] +
619  vector.z() * matrix.m[2][2] +
620  matrix.m[2][3];
621  w = vector.x() * matrix.m[3][0] +
622  vector.y() * matrix.m[3][1] +
623  vector.z() * matrix.m[3][2] +
624  matrix.m[3][3];
625  if (w == 1.0f)
626  return QVector3D(x, y, z);
627  else
628  return QVector3D(x / w, y / w, z / w);
629 }
qreal x() const
Definition: qvector3d.h:161
qreal y() const
Definition: qvector3d.h:162
qreal z() const
Definition: qvector3d.h:163
GLubyte GLubyte GLubyte GLubyte w
Definition: GLee.h:1775
GLclampf f
Definition: GLee.h:9303
QVector3D operator* ( const QMatrix4x4 matrix,
const QVector3D vector 
)
friend

Definition at line 631 of file qmatrix4x4.h.

632 {
633  qreal x, y, z, w;
634  if (matrix.flagBits == QMatrix4x4::Identity) {
635  return vector;
636  } else if (matrix.flagBits == QMatrix4x4::Translation) {
637  return QVector3D(vector.x() + matrix.m[3][0],
638  vector.y() + matrix.m[3][1],
639  vector.z() + matrix.m[3][2]);
640  } else if (matrix.flagBits ==
641  (QMatrix4x4::Translation | QMatrix4x4::Scale)) {
642  return QVector3D(vector.x() * matrix.m[0][0] + matrix.m[3][0],
643  vector.y() * matrix.m[1][1] + matrix.m[3][1],
644  vector.z() * matrix.m[2][2] + matrix.m[3][2]);
645  } else if (matrix.flagBits == QMatrix4x4::Scale) {
646  return QVector3D(vector.x() * matrix.m[0][0],
647  vector.y() * matrix.m[1][1],
648  vector.z() * matrix.m[2][2]);
649  } else {
650  x = vector.x() * matrix.m[0][0] +
651  vector.y() * matrix.m[1][0] +
652  vector.z() * matrix.m[2][0] +
653  matrix.m[3][0];
654  y = vector.x() * matrix.m[0][1] +
655  vector.y() * matrix.m[1][1] +
656  vector.z() * matrix.m[2][1] +
657  matrix.m[3][1];
658  z = vector.x() * matrix.m[0][2] +
659  vector.y() * matrix.m[1][2] +
660  vector.z() * matrix.m[2][2] +
661  matrix.m[3][2];
662  w = vector.x() * matrix.m[0][3] +
663  vector.y() * matrix.m[1][3] +
664  vector.z() * matrix.m[2][3] +
665  matrix.m[3][3];
666  if (w == 1.0f)
667  return QVector3D(x, y, z);
668  else
669  return QVector3D(x / w, y / w, z / w);
670  }
671 }
qreal x() const
Definition: qvector3d.h:161
qreal y() const
Definition: qvector3d.h:162
qreal z() const
Definition: qvector3d.h:163
GLubyte GLubyte GLubyte GLubyte w
Definition: GLee.h:1775
GLclampf f
Definition: GLee.h:9303

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