Documentation / base / Quaternion
Class: Quaternion
Defined in: libs/base/src/math/vector.ts:1801
Quaternion
Extends
Extended by
Indexable
[
index:number]:number
Constructors
Constructor
new Quaternion(
x,y,z,w):Quaternion
Defined in: libs/base/src/math/vector.ts:1809
Creates a new Quaternion initialized with values.
Parameters
x
number
The x component.
y
number
The y component.
z
number
The z component.
w
number
The w component.
Returns
Quaternion
Overrides
Constructor
new Quaternion(
elements):Quaternion
Defined in: libs/base/src/math/vector.ts:1814
Creates a new Quaternion initialized with values in an array.
Parameters
elements
number[]
Array that contains the x, y, z, w values.
Returns
Quaternion
Overrides
Constructor
new Quaternion(
array):Quaternion
Defined in: libs/base/src/math/vector.ts:1819
Creates a new Quaternion initialized with values in a Float32Array.
Parameters
array
Float32Array
Float32Array object that contains the x, y, z, w values.
Returns
Quaternion
Overrides
Constructor
new Quaternion(
buffer,offset):Quaternion
Defined in: libs/base/src/math/vector.ts:1825
Creates a new Quaternion placed on a given ArrayBuffer object.
Parameters
buffer
ArrayBuffer
The array buffer object.
offset
number
The byte offset of the buffer where the vector placed at.
Returns
Quaternion
Overrides
Constructor
new Quaternion():
Quaternion
Defined in: libs/base/src/math/vector.ts:1829
Creates a new identity Quaternion.
Returns
Quaternion
Overrides
Accessors
x
Get Signature
get x():
number
Defined in: libs/base/src/math/vector.ts:1875
Get the x component value.
Returns
number
Set Signature
set x(
v):void
Defined in: libs/base/src/math/vector.ts:1878
Parameters
v
number
Returns
void
y
Get Signature
get y():
number
Defined in: libs/base/src/math/vector.ts:1882
Get the y component value.
Returns
number
Set Signature
set y(
v):void
Defined in: libs/base/src/math/vector.ts:1885
Parameters
v
number
Returns
void
z
Get Signature
get z():
number
Defined in: libs/base/src/math/vector.ts:1889
Get the z component value.
Returns
number
Set Signature
set z(
v):void
Defined in: libs/base/src/math/vector.ts:1892
Parameters
v
number
Returns
void
w
Get Signature
get w():
number
Defined in: libs/base/src/math/vector.ts:1896
Get the w component value.
Returns
number
Set Signature
set w(
v):void
Defined in: libs/base/src/math/vector.ts:1899
Parameters
v
number
Returns
void
magnitude
Get Signature
get magnitude():
number
Defined in: libs/base/src/math/vector.ts:1939
Get the length of the quaternion.
Returns
number
magnitudeSq
Get Signature
get magnitudeSq():
number
Defined in: libs/base/src/math/vector.ts:1943
Get the squared length of the quaternion.
Returns
number
Methods
equalsTo()
equalsTo(
other,epsl?):boolean
Defined in: libs/base/src/math/vector.ts:31
Check if all data is close enough to another
Parameters
other
Float32Array<ArrayBuffer>
The data to be compared with.
epsl?
number
Returns
boolean
true if close enough, otherwise false.
Inherited from
toString()
toString():
string
Defined in: libs/base/src/math/vector.ts:51
Convert this to string object.
Returns
string
Inherited from
isNaN()
isNaN():
boolean
Defined in: libs/base/src/math/vector.ts:60
Check the data for the presence of NaN.
Returns
boolean
true if NaN is present, otherwise false.
Inherited from
setRandom()
setRandom(
minValue,maxValue):void
Defined in: libs/base/src/math/vector.ts:74
Generate random vector
Parameters
minValue
number
Minimum value of any component of the vector
maxValue
number
Maximum value of any component of the vector
Returns
void
Inherited from
clone()
clone():
Quaternion
Defined in: libs/base/src/math/vector.ts:1871
Creates a new Quaternion initialized with values from this quaternion.
Returns
Quaternion
The new quaternion.
setXYZW()
setXYZW(
x,y,z,w):Quaternion
Defined in: libs/base/src/math/vector.ts:1910
Set component values.
Parameters
x
number
The x component value.
y
number
The y component value.
z
number
The z component value.
w
number
The w component value.
Returns
Quaternion
self
scaleBy()
scaleBy(
f):Quaternion
Defined in: libs/base/src/math/vector.ts:1922
Scale this quaternion by a scalar number.
Parameters
f
number
amount to scale this quaternion by.
Returns
Quaternion
self
setAndNormalize()
setAndNormalize(
x,y,z,w):Quaternion
Defined in: libs/base/src/math/vector.ts:1934
Set component values and then normalize the quaternion.
Parameters
x
number
The x component value.
y
number
The y component value.
z
number
The z component value.
w
number
The w component value.
Returns
Quaternion
self
identity()
identity():
Quaternion
Defined in: libs/base/src/math/vector.ts:1947
Make this quaternion an identity quaternion
Returns
Quaternion
inplaceNormalize()
inplaceNormalize():
Quaternion
Defined in: libs/base/src/math/vector.ts:1955
Normalize this quaternion inplace.
Returns
Quaternion
self
inplaceConjugate()
inplaceConjugate():
Quaternion
Defined in: libs/base/src/math/vector.ts:1963
Calculates the conjugate of this quaternion inplace.
Returns
Quaternion
self
inplaceInverse()
inplaceInverse():
Quaternion
Defined in: libs/base/src/math/vector.ts:1971
Calculates the inverse of this quaternion inplace.
Returns
Quaternion
self
multiplyRight()
multiplyRight(
other):Quaternion
Defined in: libs/base/src/math/vector.ts:1980
Multiply this quaternion by another quaternion at the right side inplace.
Parameters
other
Quaternion
The quaternion that to be multiplied by.
Returns
Quaternion
self
multiplyLeft()
multiplyLeft(
other):Quaternion
Defined in: libs/base/src/math/vector.ts:1989
Multiply this quaternion by another quaternion at the left side inplace.
Parameters
other
Quaternion
The quaternion that to be multiplied by.
Returns
Quaternion
self
unitVectorToUnitVector()
unitVectorToUnitVector(
from,to):Quaternion
Defined in: libs/base/src/math/vector.ts:1999
Make a quaternion used to rotate a unit vector to another inplace.
Parameters
from
The unit vector to be rotated.
to
The destination unit vector.
Returns
Quaternion
self
fromEulerAngle()
fromEulerAngle(
x,y,z,order?):Quaternion
Defined in: libs/base/src/math/vector.ts:2011
Calculates the quaternion from an euler angle in specific order inplace.
Parameters
x
number
Angle to rotate around X axis in radians.
y
number
Angle to rotate around Y axis in radians.
z
number
Angle to rotate around Z axis in radians.
order?
EulerAngleOrder = 'ZYX'
Intrinsic order for conversion.
Returns
Quaternion
self
fromAxisAngle()
fromAxisAngle(
axis,angle):Quaternion
Defined in: libs/base/src/math/vector.ts:2021
Calculates the quaternion from the given angle and rotation axis inplace.
Parameters
axis
The rotation axis.
angle
number
The rotate angle.
Returns
Quaternion
self
toAxisAngle()
toAxisAngle(
axis):number
Defined in: libs/base/src/math/vector.ts:2030
Calculates the rotation axis and angle for this quaternion
Parameters
axis
A vector that receives the rotation axis.
Returns
number
- The rotation angle
toEulerAngles()
toEulerAngles(
angles?):Vector3
Defined in: libs/base/src/math/vector.ts:2045
Convert this rotation to euler angles in ZYX order
Parameters
angles?
A vector that receives the euler angles. If not given, a new vector will be created.
Returns
The vector that holds the euler angles.
fromRotationMatrix()
fromRotationMatrix(
matrix):Quaternion
Defined in: libs/base/src/math/vector.ts:2062
Calculates the quaternion from a rotation matrix inplace.
Parameters
matrix
The rotation matrix.
Returns
Quaternion
self
decomposeSwingTwist()
decomposeSwingTwist(
axis,outSwing?,outTwist?):void
Defined in: libs/base/src/math/vector.ts:2084
Decompose the quaternion into swing and twist components around a given axis.
Parameters
axis
The twist axis (must be normalized)
outSwing?
Quaternion
Output swing rotation
outTwist?
Quaternion
Output twist rotation
Returns
void
Remarks
Given a rotation Q and an axis A, decompose Q into:
- Twist: rotation around A
- Swing: rotation perpendicular to A Such that Q = Twist * Swing
Algorithm:
- Project Q's imaginary part onto axis to get twist component
- Normalize to get pure twist rotation
- Calculate swing = twist^-1 * Q
getTwistAngle()
getTwistAngle(
axis):number
Defined in: libs/base/src/math/vector.ts:2132
Get the twist angle (in radians) around an axis.
Parameters
axis
The twist axis (must be normalized)
Returns
number
Twist angle in radians, range [-PI, PI]
toMatrix3x3()
toMatrix3x3(
matrix?):Matrix3x3
Defined in: libs/base/src/math/vector.ts:2157
Convert this quaternion to a 3x3 rotation matrix.
Parameters
matrix?
The output matrix, if not specified, a new matrix will be created.
Returns
The output matrix.
toMatrix4x4()
toMatrix4x4(
matrix?):Matrix4x4
Defined in: libs/base/src/math/vector.ts:2171
Convert this quaternion to a 4x4 rotation matrix.
Parameters
matrix?
The output matrix, if not specified, a new matrix will be created.
Returns
The output matrix.
Remarks
Only left top 3x3 part of the matrix will be changed.
getDirectionX()
getDirectionX(
result?):Vector3
Defined in: libs/base/src/math/vector.ts:2188
Get the direction of axis x
Parameters
result?
The output vector, if not specified, a new vector will be created.
Returns
The direction of axis x
getDirectionY()
getDirectionY(
result?):Vector3
Defined in: libs/base/src/math/vector.ts:2201
Get the direction of axis y
Parameters
result?
The output vector, if not specified, a new vector will be created.
Returns
The direction of axis y
getDirectionZ()
getDirectionZ(
result?):Vector3
Defined in: libs/base/src/math/vector.ts:2214
Get the direction of axis z
Parameters
result?
The output vector, if not specified, a new vector will be created.
Returns
The direction of axis z
getAxisAngle()
getAxisAngle(
result?):Vector4
Defined in: libs/base/src/math/vector.ts:2227
Get the rotate angle and the rotation axis for this quaternion.
Parameters
result?
The output vector, if not specified, a new vector will be created.
Returns
An vector4 that the x, y, z component presents the axis and the w component presents the angle.
transform()
transform(
v,result?):Vector3
Defined in: libs/base/src/math/vector.ts:2244
Rotate a vector
Parameters
v
The vector to be rotated.
result?
The output vector, if not specified, a new vector will be created.
Returns
The rotation result.
scale()
staticscale(q,t,result?):Quaternion
Defined in: libs/base/src/math/vector.ts:2271
Scale a Quaternion by a scalar number.
Parameters
q
Quaternion
t
number
result?
Quaternion
The output quaternion (can be the same quaternion as a). if not specified, a new quaternion will be created.
Returns
Quaternion
The output quaternion
dot()
staticdot(a,b):number
Defined in: libs/base/src/math/vector.ts:2281
Calculates the dot product of two Quaternion's.
Parameters
a
Quaternion
The first operand.
b
Quaternion
The second operand.
Returns
number
dot product of a and b
identity()
staticidentity(q?):Quaternion
Defined in: libs/base/src/math/vector.ts:2289
Create an identity quaternion
Parameters
q?
Quaternion
The output quaternion, if not specified, a new quaternion will be created.
Returns
Quaternion
The output quaternion
normalize()
staticnormalize(q,result?):Quaternion
Defined in: libs/base/src/math/vector.ts:2298
Normalize a quaternion
Parameters
q
Quaternion
The input quaternion
result?
Quaternion
The output quaternion (can be the same as q), if not specified, a new quaternion will be created.
Returns
Quaternion
The output quaternion
conjugate()
staticconjugate(q,result?):Quaternion
Defined in: libs/base/src/math/vector.ts:2308
Gets the conjugate of a quaternion
Parameters
q
Quaternion
The input quaternion
result?
Quaternion
The output quaternion (can be the same as q), if not specified, a new quaternion will be created.
Returns
Quaternion
The output quaternion
inverse()
staticinverse(q,result?):Quaternion
Defined in: libs/base/src/math/vector.ts:2317
Gets the inverse of a quaternion
Parameters
q
Quaternion
The input quaternion
result?
Quaternion
The output quaternion (can be the same as q), if not specified, a new quaternion will be created.
Returns
Quaternion
The output quaternion
multiply()
staticmultiply(a,b,result?):Quaternion
Defined in: libs/base/src/math/vector.ts:2335
Multiply two Quaternion's.
Parameters
a
Quaternion
The first operand.
b
Quaternion
The second operand.
result?
Quaternion
The output quaternion (can be the same as a or b). if not specified, a new quaternion will be created.
Returns
Quaternion
The output quaternion
slerp()
staticslerp(a,b,t,result?):Quaternion
Defined in: libs/base/src/math/vector.ts:2351
Performs a spherical linear interpolation between two quat.
Parameters
a
Quaternion
The first operand.
b
Quaternion
The second operand.
t
number
The interpolation amount, in the range [0-1].
result?
Quaternion
The output quaternion (can be the same as a or b), if not specified, a new quaternion will be created.
Returns
Quaternion
The output quaternion
angleBetween()
staticangleBetween(a,b):number
Defined in: libs/base/src/math/vector.ts:2400
Gets the angular distance between two unit quaternions.
Parameters
a
Quaternion
The origin quaternion
b
Quaternion
The destination quaternion
Returns
number
- The angle in radians
unitVectorToUnitVector()
staticunitVectorToUnitVector(from,to,result?):Quaternion
Defined in: libs/base/src/math/vector.ts:2412
Creates a quaternion used to rotate a unit vector to another.
Parameters
from
The unit vector to be rotated.
to
The destination unit vector.
result?
Quaternion
The output quaternion, if not specified, a new quaternion will be created.
Returns
Quaternion
The output quaternion
fromEulerAngle()
staticfromEulerAngle(a,b,c,order?,result?):Quaternion
Defined in: libs/base/src/math/vector.ts:2441
Creates a quaternion from an euler angle in specific order.
Parameters
a
number
b
number
c
number
order?
EulerAngleOrder = 'ZYX'
Intrinsic order for conversion.
result?
Quaternion
The output quaternion, if not specified, a new quaternion will be created.
Returns
Quaternion
The output quaternion
fromAxisAngle()
staticfromAxisAngle(axis,angle,result?):Quaternion
Defined in: libs/base/src/math/vector.ts:2507
Creates a quaternion from the given angle and rotation axis.
Parameters
axis
The rotation axis.
angle
number
The rotate angle.
result?
Quaternion
The output quaternion, if not specified, a new quaternion will be created.
Returns
Quaternion
The output quaternion
fromRotationMatrix()
staticfromRotationMatrix(matrix,result?):Quaternion
Defined in: libs/base/src/math/vector.ts:2520
Creates a quaternion from a rotation matrix.
Parameters
matrix
The rotation matrix.
result?
Quaternion
The output quaternion, if not specified, a new quaternion will be created.
Returns
Quaternion
self