Definition at line 60 of file qvector3d.h.
#include <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 () |
| QVector3D & | operator+= (const QVector3D &vector) |
| QVector3D & | operator-= (const QVector3D &vector) |
| QVector3D & | operator*= (qreal factor) |
| QVector3D & | operator*= (const QVector3D &vector) |
| QVector3D & | operator/= (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) |
| QVector3D | ( | ) | [inline] |
Definition at line 146 of file qvector3d.h.
: xp(0.0f), yp(0.0f), zp(0.0f) {}
| QVector3D | ( | qreal | xpos, |
| qreal | ypos, | ||
| qreal | zpos | ||
| ) | [inline] |
Definition at line 148 of file qvector3d.h.
: xp(xpos), yp(ypos), zp(zpos) {}
Definition at line 152 of file qvector3d.h.
Definition at line 154 of file qvector3d.h.
| bool isNull | ( | ) | const [inline] |
Definition at line 156 of file qvector3d.h.
{
return qIsNull(xp) && qIsNull(yp) && qIsNull(zp);
}
| qreal x | ( | ) | const [inline] |
| qreal y | ( | ) | const [inline] |
| qreal z | ( | ) | const [inline] |
| void setX | ( | qreal | x | ) | [inline] |
| void setY | ( | qreal | y | ) | [inline] |
| void setZ | ( | qreal | z | ) | [inline] |
| qreal length | ( | ) | const |
| qreal lengthSquared | ( | ) | const |
| QVector3D normalized | ( | ) | const |
| void normalize | ( | ) |
Definition at line 169 of file qvector3d.h.
{
xp += vector.xp;
yp += vector.yp;
zp += vector.zp;
return *this;
}
Definition at line 177 of file qvector3d.h.
{
xp -= vector.xp;
yp -= vector.yp;
zp -= vector.zp;
return *this;
}
| QVector3D & operator*= | ( | qreal | factor | ) | [inline] |
Definition at line 185 of file qvector3d.h.
{
xp *= factor;
yp *= factor;
zp *= factor;
return *this;
}
Definition at line 193 of file qvector3d.h.
{
xp *= vector.xp;
yp *= vector.yp;
zp *= vector.zp;
return *this;
}
| QVector3D & operator/= | ( | qreal | divisor | ) | [inline] |
Definition at line 201 of file qvector3d.h.
{
xp /= divisor;
yp /= divisor;
zp /= divisor;
return *this;
}
| QVector2D toVector2D | ( | ) | const |
| QVector4D toVector4D | ( | ) | const |
| QPoint toPoint | ( | ) | const [inline] |
Definition at line 261 of file qvector3d.h.
{
return QPoint(qRound(xp), qRound(yp));
}
| QPointF toPointF | ( | ) | const [inline] |
Definition at line 266 of file qvector3d.h.
{
return QPointF(qreal(xp), qreal(yp));
}
| operator QVariant | ( | ) | const |
friend class QVector2D [friend] |
Definition at line 136 of file qvector3d.h.
friend class QVector4D [friend] |
Definition at line 137 of file qvector3d.h.
Definition at line 209 of file qvector3d.h.
{
return v1.xp == v2.xp && v1.yp == v2.yp && v1.zp == v2.zp;
}
Definition at line 214 of file qvector3d.h.
{
return v1.xp != v2.xp || v1.yp != v2.yp || v1.zp != v2.zp;
}
Definition at line 219 of file qvector3d.h.
{
return QVector3D(v1.xp + v2.xp, v1.yp + v2.yp, v1.zp + v2.zp, 1);
}
Definition at line 224 of file qvector3d.h.
{
return QVector3D(v1.xp - v2.xp, v1.yp - v2.yp, v1.zp - v2.zp, 1);
}
Definition at line 229 of file qvector3d.h.
{
return QVector3D(vector.xp * factor, vector.yp * factor, vector.zp * factor, 1);
}
Definition at line 234 of file qvector3d.h.
{
return QVector3D(vector.xp * factor, vector.yp * factor, vector.zp * factor, 1);
}
Definition at line 239 of file qvector3d.h.
{
return QVector3D(v1.xp * v2.xp, v1.yp * v2.yp, v1.zp * v2.zp, 1);
}
Definition at line 244 of file qvector3d.h.
{
return QVector3D(-vector.xp, -vector.yp, -vector.zp, 1);
}
Definition at line 249 of file qvector3d.h.
{
return QVector3D(vector.xp / divisor, vector.yp / divisor, vector.zp / divisor, 1);
}
Definition at line 254 of file qvector3d.h.
{
return qFuzzyCompare(v1.xp, v2.xp) &&
qFuzzyCompare(v1.yp, v2.yp) &&
qFuzzyCompare(v1.zp, v2.zp);
}
| QVector3D operator* | ( | const QVector3D & | vector, |
| const QMatrix4x4 & | matrix | ||
| ) | [friend] |
Definition at line 612 of file qmatrix4x4.h.
{
qreal x, y, z, w;
x = vector.x() * matrix.m[0][0] +
vector.y() * matrix.m[0][1] +
vector.z() * matrix.m[0][2] +
matrix.m[0][3];
y = vector.x() * matrix.m[1][0] +
vector.y() * matrix.m[1][1] +
vector.z() * matrix.m[1][2] +
matrix.m[1][3];
z = vector.x() * matrix.m[2][0] +
vector.y() * matrix.m[2][1] +
vector.z() * matrix.m[2][2] +
matrix.m[2][3];
w = vector.x() * matrix.m[3][0] +
vector.y() * matrix.m[3][1] +
vector.z() * matrix.m[3][2] +
matrix.m[3][3];
if (w == 1.0f)
return QVector3D(x, y, z);
else
return QVector3D(x / w, y / w, z / w);
}
| QVector3D operator* | ( | const QMatrix4x4 & | matrix, |
| const QVector3D & | vector | ||
| ) | [friend] |
Definition at line 637 of file qmatrix4x4.h.
{
qreal x, y, z, w;
if (matrix.flagBits == QMatrix4x4::Identity) {
return vector;
} else if (matrix.flagBits == QMatrix4x4::Translation) {
return QVector3D(vector.x() + matrix.m[3][0],
vector.y() + matrix.m[3][1],
vector.z() + matrix.m[3][2]);
} else if (matrix.flagBits ==
(QMatrix4x4::Translation | QMatrix4x4::Scale)) {
return QVector3D(vector.x() * matrix.m[0][0] + matrix.m[3][0],
vector.y() * matrix.m[1][1] + matrix.m[3][1],
vector.z() * matrix.m[2][2] + matrix.m[3][2]);
} else if (matrix.flagBits == QMatrix4x4::Scale) {
return QVector3D(vector.x() * matrix.m[0][0],
vector.y() * matrix.m[1][1],
vector.z() * matrix.m[2][2]);
} else {
x = vector.x() * matrix.m[0][0] +
vector.y() * matrix.m[1][0] +
vector.z() * matrix.m[2][0] +
matrix.m[3][0];
y = vector.x() * matrix.m[0][1] +
vector.y() * matrix.m[1][1] +
vector.z() * matrix.m[2][1] +
matrix.m[3][1];
z = vector.x() * matrix.m[0][2] +
vector.y() * matrix.m[1][2] +
vector.z() * matrix.m[2][2] +
matrix.m[3][2];
w = vector.x() * matrix.m[0][3] +
vector.y() * matrix.m[1][3] +
vector.z() * matrix.m[2][3] +
matrix.m[3][3];
if (w == 1.0f)
return QVector3D(x, y, z);
else
return QVector3D(x / w, y / w, z / w);
}
}