vector3d QML Basic Type
The vector3d type refers to a value with x, y, and z attributes.
To create a vector3d value, specify it as a "x,y,z" string:
Rotation { angle: 60; axis: "0,1,0" }
or with the Qt.vector3d() function:
Rotation { angle: 60; axis: Qt.vector3d(0, 1, 0) }
or as separate x, y, and z components:
Rotation { angle: 60; axis.x: 0; axis.y: 1; axis.z: 0 }
Each attribute of a vector3d value is stored internally as a single-precision floating point number (float).
When integrating with C++, note that any QVector3D value passed into QML from C++ is automatically converted into a vector3d value, and vice-versa.
The vector3d type has the following idempotent functions which can be invoked in QML:
| Function Signature | Description | Example | 
|---|---|---|
| vector3d crossProduct(vector3d other) | Returns the vector3d result of the cross product of thisvector3d with theothervector3d | var a = Qt.vector3d(1,2,3); var b = Qt.vector3d(4,5,6); var c = a.crossProduct(b); console.log(c.toString()); // QVector3D(-3, 6, -3) | 
| real dotProduct(vector3d other) | Returns the scalar real result of the dot product of thisvector3d with theothervector3d | var a = Qt.vector3d(1,2,3); var b = Qt.vector3d(4,5,6); var c = a.dotProduct(b); console.log(c); // 32 | 
| vector3d times(matrix4x4 matrix) | Returns the vector3d result of transforming thisvector3d with the 4x4matrixwith the matrix applied post-vector | var a = Qt.vector3d(1,2,3); var b = Qt.matrix4x4(4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19); var c = a.times(b); console.log(c.toString()); // QVector3D(0.774194, 0.849462, 0.924731) | 
| vector3d times(vector3d other) | Returns the vector3d result of multiplying thisvector3d with theothervector3d | var a = Qt.vector3d(1,2,3); var b = Qt.vector3d(4,5,6); var c = a.times(b); console.log(c.toString()); // QVector3D(4, 10, 18) | 
| vector3d times(real factor) | Returns the vector3d result of multiplying thisvector3d with the scalarfactor | var a = Qt.vector3d(1,2,3); var b = 4.48; var c = a.times(b); console.log(c.toString()); // QVector3D(4.48, 8.96, 13.44) | 
| vector3d plus(vector3d other) | Returns the vector3d result of the addition of thisvector3d with theothervector3d | var a = Qt.vector3d(1,2,3); var b = Qt.vector3d(4,5,6); var c = a.plus(b); console.log(c.toString()); // QVector3D(5, 7, 9) | 
| vector3d minus(vector3d other) | Returns the vector3d result of the subtraction of othervector3d fromthisvector3d | var a = Qt.vector3d(1,2,3); var b = Qt.vector3d(4,5,6); var c = a.minus(b); console.log(c.toString()); // QVector3D(-3, -3, -3) | 
| vector3d normalized() | Returns the normalized form of thisvector | var a = Qt.vector3d(1,2,3); var b = a.normalized(); console.log(b.toString()); // QVector3D(0.267261, 0.534522, 0.801784) | 
| real length() | Returns the scalar real value of the length of thisvector3d | var a = Qt.vector3d(1,2,3); var b = a.length(); console.log(b.toString()); // 3.7416573867739413 | 
| vector2d toVector2d() | Returns the vector2d result of converting thisvector3d to a vector2d | var a = Qt.vector3d(1,2,3); var b = a.toVector2d(); console.log(b.toString()); // QVector2D(1, 2) | 
| vector4d toVector4d() | Returns the vector4d result of converting thisvector3d to a vector4d | var a = Qt.vector3d(1,2,3); var b = a.toVector4d(); console.log(b.toString()); // QVector4D(1, 2, 3, 0) | 
| bool fuzzyEquals(vector3d other, real epsilon) | Returns true if thisvector3d is approximately equal to theothervector3d. The approximation will be true if each attribute ofthisis withinepsilonofother. Note thatepsilonis an optional argument, the defaultepsilonis 0.00001. | var a = Qt.vector3d(1,2,3); var b = Qt.vector3d(1.0001, 1.9998, 2.0001); var c = a.fuzzyEquals(b); // default epsilon var d = a.fuzzyEquals(b, 0.005); // supplied epsilon console.log(c + " " + d); // false true | 
This basic type is provided by the QtQuick import.
See also QML Basic Types.