Builds a new Quaternion with directional vector (px,py,pz) (at sin(θ/2) diff) and an angle θ/2 such as cos(θ/2) = pW.
Optional pX: numberx coordinate of the directional vector of the rotation (at sin(θ/2) diff).Optional pY: numbery coordinate of the directional vector of the rotation (at sin(θ/2) diff).Optional pZ: numberz coordinate of the directional vector of the rotation (at sin(θ/2) diff).Optional pW: numberThe newly created quaternion.
w value of the vector, i.e. fourth component.
x value of the vector, i.e. first component.
y value of the vector, i.e. second component.
z value of the vector, i.e. third component.
Computes this + (pX,pY,pZ,pW) and stores it into pOut.
If pOut is omitted, the result is stored in this.
Returns pOut.
x value of the vector to add.y value of the vector to add.z value of the vector to add.w value of the vector to add.Optional pOut: Vector4pOut.
Computes the conjugate (i.e. inverse of the rotation) of this quaternion.
Optional pOut: Quaternionthis if omitted).The conjugate of this quaternion, stored in this if pOut is undefined.
Copies this quaternion onto another quaternion.
Defaults to allocating a new quaternion.
Optional pOut: QuaternionA copy of the quaternion (allocated by the library if pOut is omitted).
Computes the euclidean distance between this and pVec.
Warning, this function does not assume that w=1, and does not assume the vector4 as a vector3. The w component is used in the calculation.
The distance between this and pVec.
Computes the dot product between this and (pX,pY,pZ,pW).
x value of the vector to compute the dot with.y value of the vector to compute the dot with.z value of the vector to compute the dot with.w value of the vector to compute the dot with.The dot product ( dot(this, (pX,pY,pZ,pW)) ).
Computes the dot product between this and pOther.
The dot product ( dot(this, pOther) ).
Tells if the two quaternions represent the same rotation.
Reminder : for two quaternions q1 and q2, q1 and q2 represent the same rotation if either one of these two conditions hold:
true if the two quaternions represent the same rotation.
Computes the rotation quaternion from the given axis/angle representation.
No normalization is computed on the directional vector of the axis, thus make sure pAxis is normalized to avoid undesired effect (or keep a non normalized directional vector if you know what you are doing).
this.
Sets the content of the Vector from a former call to toJSON.
true if the data is set.
Tells if the two vectors are homogeneously equivalent.
This function tells if the two Vector4 represent the same 3D cartesian point.
true if the two vectors are homogeneously equivalent.
Computes the linear interpolation between this and (pX,pY,pZ,pW) and stores the result in pOut.
pOut = this + pTime x ( (pX,pY,pZ,pW) - this).
If pTime=0, pOut = this.
If pTime=1, pOut = (pX,pY,pZ,pW).
If pOut is omitted, the result of the interpolation is stored in this.
No check is done to ensure pTime is in the range [0,1].
x value of the destination vector.y value of the destination vector.z value of the destination vector.w value of the destination vector.Optional pOut: Vector4pOut.
Computes the linear interpolation between this and pOther and stores the result in pOut.
pOut = this + pTime x ( pOther - this).
If pTime=0, pOut = this.
If pTime=1, pOut = pOther.
If pOut is omitted, the result of the interpolation is stored in this.
No check is done to ensure pTime is in the range [0,1].
pOut.
Computes the composition (multiplication) of the two transformations this and the quaternion expressed by the values pX, pY, pZ, pW.
Be Other the quaternion (pX, pY, pZ, pW).
Any point P will be transformed into P' such that P' = Other x this x P (or P x this x Other = P').
x value of the quaternion rotation to compose with.y value of the quaternion rotation to compose with.z value of the quaternion rotation to compose with.w value of the quaternion rotation to compose with.Optional pOut: Quaternionthis will be applied first, then Quat(pX,pY,pZ,pW)).The composition (multiplication) of the two transformations, stored in this if pOut is undefined.
Computes the composition (multiplication) of the two transformations this and pOther.
Any point P will be transformed into P' such that P' = pOther x this x P (or P x this x pOther = P').
Optional pOut: Quaternionthis will be applied first, then pOther).The composition (multiplication) of the two transformations, stored in this if pOut is omitted.
Computes the normalization of this (i.e. scales this such that pOut.length() == 1, a zero vector is left unchanged)
and stores the result in pOut.
If pOut is omitted, this is normalized.
Warning, this function does not assume that w=1, and does not assume the vector4 as a vector3. The w component is used in the calculation.
Optional pOut: Vector4pOut.
Computes the euclidean distance from the plane represented by this to pPoint.
The Vector4 can be the parametric equation of a plane in the form P: {t,u,v} / at + bu + cv = d.
So, with the components x,y,z,w of the vector 4 : {t,u,v} / xt + yu + zv = w where (x,y,z) is the normal
vector of the plane.
The distance between the plane represented by this and pPoint.
Sets this Vector4 to be the representation of the plane defined by its normal and a point of this plane.
No check is done to ensure that pNormal is normalized.
The Vector4 can be the parametric equation of a plane in the form P: {t,u,v} / at + bu + cv = d.
So, with the components x,y,z,w of the vector 4 : {t,u,v} / xt + yu + zv = w where (x,y,z) is the normal
vector of the plane.
this.
Sets this quaternion from the given rotation matrix.
this.
Computes the spherical linear interpolation between the starting quaternion this and the end quaternion (pEndX,pEndY,pEndZ,pEndW).
If pTime=0, pOut stores this. If pTime=1, pOut stores pEnd. pTime is in the range [0,1].
No check is done to ensure pTime is
in the correct range.
The resulting transformation is stored in pOut.
x component of the end quaternion of the interpolation.y component of the end quaternion of the interpolation.z component of the end quaternion of the interpolation.w component of the end quaternion of the interpolation.Optional pOut: QuaternionThe result of the interpolation (pOut). this is returned if pOut is omitted.
Computes the spherical linear interpolation between the starting quaternion this and the end quaternion pEnd.
If pTime=0, pOut stores this. If pTime=1, pOut stores pEnd. pTime is in the range [0,1].
No check is done to ensure pTime is
in the correct range.
The resulting transformation is stored in pOut.
Optional pOut: QuaternionThe result of the interpolation (pOut). this is returned if pOut is omitted.
Computes the squared euclidean distance between this and pVec.
Warning, this function does not assume that w=1, and does not assume the vector4 as a vector3. The w component is used in the calculation.
The squared distance between this and pVec.
Computes this - (pX,pY,pZ,pW) and stores it into pOut.
If pOut is omitted, the result is stored in this.
Returns pOut.
x value of the vector to subtract.y value of the vector to subtract.z value of the vector to subtract.w value of the vector to subtract.Optional pOut: Vector4pOut.
Extracts this rotation quaternion as an axis/angle representation in the resulting Vector4.
The directional vector of the axis is the x,y,z components of the Vector4, the angle in radian is the w component.
A quaternion is a way to represent rotation matrices in 3d with 4 values.
This documentation will not integrate all the publicly available documentation.
From wikipedia : In 3-dimensional space, according to Euler rotation theorem, any rotation or sequence of rotations of a rigid body or coordinate system about a fixed point is equivalent to a single rotation by a given angle θ about a fixed axis (called the Euler axis) that runs through the fixed point. The Euler axis is typically represented by a unit vector u. Therefore, any rotation in three dimensions can be represented as a combination of a vector u and a scalar θ. Quaternions give a simple way to encode this axis-angle representation in four numbers, and can be used to apply the corresponding rotation to a position vector, representing a point relative to the origin in R3.
Such a quaternion q, with axis u (ux, uy, uz) and angle θ is expressed as : q = cos(θ/2) + sin(θ/2) * u. The scalar is the w coordinate of the quaternion.
See
https://en.wikipedia.org/wiki/Quaternion