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 this vector3d with the other vector3d |
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(4,5,6);
var c = a.crossProduct(b);
console.log(c.toString()); |
real dotProduct(vector3d other) |
Returns the scalar real result of the dot product of this vector3d with the other vector3d |
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(4,5,6);
var c = a.dotProduct(b);
console.log(c); |
vector3d times(matrix4x4 matrix) |
Returns the vector3d result of transforming this vector3d with the 4x4 matrix with 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());
|
vector3d times(vector3d other) |
Returns the vector3d result of multiplying this vector3d with the other vector3d |
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(4,5,6);
var c = a.times(b);
console.log(c.toString()); |
vector3d times(real factor) |
Returns the vector3d result of multiplying this vector3d with the scalar factor
|
var a = Qt.vector3d(1,2,3);
var b = 4.48;
var c = a.times(b);
console.log(c.toString()); |
vector3d plus(vector3d other) |
Returns the vector3d result of the addition of this vector3d with the other vector3d |
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(4,5,6);
var c = a.plus(b);
console.log(c.toString()); |
vector3d minus(vector3d other) |
Returns the vector3d result of the subtraction of other vector3d from this vector3d |
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(4,5,6);
var c = a.minus(b);
console.log(c.toString()); |
vector3d normalized() |
Returns the normalized form of this vector |
var a = Qt.vector3d(1,2,3);
var b = a.normalized();
console.log(b.toString());
|
real length() |
Returns the scalar real value of the length of this vector3d |
var a = Qt.vector3d(1,2,3);
var b = a.length();
console.log(b.toString()); |
vector2d toVector2d() |
Returns the vector2d result of converting this vector3d to a vector2d |
var a = Qt.vector3d(1,2,3);
var b = a.toVector2d();
console.log(b.toString()); |
vector4d toVector4d() |
Returns the vector4d result of converting this vector3d to a vector4d |
var a = Qt.vector3d(1,2,3);
var b = a.toVector4d();
console.log(b.toString()); |
bool fuzzyEquals(vector3d other, real epsilon) |
Returns true if this vector3d is approximately equal to the other vector3d. The approximation will be true if each attribute of this is within epsilon of other . Note that epsilon is an optional argument, the default epsilon is 0.00001. |
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(1.0001, 1.9998, 2.0001);
var c = a.fuzzyEquals(b);
var d = a.fuzzyEquals(b, 0.005);
console.log(c + " " + d); |
This basic type is provided by the QtQuick import.
See also QML Basic Types.