Builds a new Quaternion with directional vector (px,py,pz) (at sin(θ/2) diff) and an angle θ/2 such as cos(θ/2) = pW.
The newly created quaternion.
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: numberw 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.
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: Vector4Computes the rotation that aligns pSource onto pDestination.
The cross product this.rotate(pSource) and pDestination should be a zero vector.
this.
Computes the conjugate (i.e. inverse of the rotation) of this quaternion.
The conjugate of this quaternion.
Optional pOut: QuaternionCopies this quaternion onto another quaternion.
Defaults to allocating a new quaternion.
A copy of the quaternion (allocated by the library if pOther is omitted).
Optional pOut: QuaternionComputes 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).
The dot product ( dot(this, (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.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.
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].
pOut.
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: Vector4Computes 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.
Any point P will be transformed into P' such that P' = pOther x this x P (or P x this x pOther = P').
The composition (multiplication) of the two transformations, stored in "this" if pOut is undefined.
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: QuaternionComputes the composition (multiplication) of the two transformations this and other.
Any point P will be transformed into P' such that P' = pOther x this x P (or P x this x pOther = P').
The composition (multiplication) of the two transformations, stored in "this" if pOut is omitted.
Optional pOut: QuaternionComputes 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.
pOut.
Optional pOut: Vector4Computes 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.
Computes the scale of this by the scalar pScalar, and stores the result in pOut.
pOut = pScalar x this.
If pOut is omitted, the result is stored in this.
pOut.
Optional pOut: Vector4Sets 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.
The result of the interpolation (pOut). "this" is returned if pOut is omitted.
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: QuaternionComputes 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.
The result of the interpolation (pOut). "this" is returned if pOut is omitted.
Optional pOut: QuaternionComputes 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.
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: Vector4Extracts 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