Quaternion in the format XYZW
- Source:
Members
(static) exactEquals
Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)
- Source:
(static) length
Calculates the length of a quat
- Source:
(static) rotationTo
Sets a quaternion to represent the shortest rotation from one
vector to another.
Both vectors are assumed to be unit length.
- Source:
(static) setAxes
Sets the specified quaternion with values corresponding to the given
axes. Each axis is a vec3 and is expected to be unit length and
perpendicular to all other specified axes.
- Source:
(static) sqlerp
Performs a spherical linear interpolation with two control points
- Source:
Methods
(static) add(out, a, b) → {quat}
Adds two quat's
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | the first operand |
b |
ReadonlyQuat | the second operand |
- Source:
Returns:
out
- Type
- quat
(static) calculateW(out, a) → {quat}
Calculates the W component of a quat from the X, Y, and Z components.
Assumes that quaternion is 1 unit in length.
Any existing W component will be ignored.
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | quat to calculate W component of |
- Source:
Returns:
out
- Type
- quat
(static) clone(a) → {quat}
Creates a new quat initialized with values from an existing quaternion
Parameters:
Name | Type | Description |
---|---|---|
a |
ReadonlyQuat | quaternion to clone |
- Source:
Returns:
a new quaternion
- Type
- quat
(static) conjugate(out, a) → {quat}
Calculates the conjugate of a quat
If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | quat to calculate conjugate of |
- Source:
Returns:
out
- Type
- quat
(static) copy(out, a) → {quat}
Copy the values from one quat to another
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | the source quaternion |
- Source:
Returns:
out
- Type
- quat
(static) create() → {quat}
Creates a new identity quat
- Source:
Returns:
a new quaternion
- Type
- quat
(static) dot(a, b) → {Number}
Calculates the dot product of two quat's
Parameters:
Name | Type | Description |
---|---|---|
a |
ReadonlyQuat | the first operand |
b |
ReadonlyQuat | the second operand |
- Source:
Returns:
dot product of a and b
- Type
- Number
(static) equals(a, b) → {Boolean}
Returns whether or not the quaternions point approximately to the same direction.
Both quaternions are assumed to be unit length.
Parameters:
Name | Type | Description |
---|---|---|
a |
ReadonlyQuat | The first unit quaternion. |
b |
ReadonlyQuat | The second unit quaternion. |
- Source:
Returns:
True if the quaternions are equal, false otherwise.
- Type
- Boolean
(static) exp(out, a) → {quat}
Calculate the exponential of a unit quaternion.
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | quat to calculate the exponential of |
- Source:
Returns:
out
- Type
- quat
(static) fromEuler(out, x, y, z, order) → {quat}
Creates a quaternion from the given euler angle x, y, z using the provided intrinsic order for the conversion.
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
x |
x | Angle to rotate around X axis in degrees. |
y |
y | Angle to rotate around Y axis in degrees. |
z |
z | Angle to rotate around Z axis in degrees. |
order |
'zyx' | 'xyz' | 'yxz' | 'yzx' | 'zxy' | 'zyx' | Intrinsic order for conversion, default is zyx. |
- Source:
Returns:
out
- Type
- quat
(static) fromMat3(out, m) → {quat}
Creates a quaternion from the given 3x3 rotation matrix.
NOTE: The resultant quaternion is not normalized, so you should be sure
to renormalize the quaternion yourself where necessary.
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
m |
ReadonlyMat3 | rotation matrix |
- Source:
Returns:
out
- Type
- quat
(static) fromValues(x, y, z, w) → {quat}
Creates a new quat initialized with the given values
Parameters:
Name | Type | Description |
---|---|---|
x |
Number | X component |
y |
Number | Y component |
z |
Number | Z component |
w |
Number | W component |
- Source:
Returns:
a new quaternion
- Type
- quat
(static) getAngle(a, b) → {Number}
Gets the angular distance between two unit quaternions
Parameters:
Name | Type | Description |
---|---|---|
a |
ReadonlyQuat | Origin unit quaternion |
b |
ReadonlyQuat | Destination unit quaternion |
- Source:
Returns:
Angle, in radians, between the two quaternions
- Type
- Number
(static) getAxisAngle(out_axis, q) → {Number}
Gets the rotation axis and angle for a given
quaternion. If a quaternion is created with
setAxisAngle, this method will return the same
values as providied in the original parameter list
OR functionally equivalent values.
Example: The quaternion formed by axis [0, 0, 1] and
angle -90 is the same as the quaternion formed by
[0, 0, 1] and 270. This method favors the latter.
Parameters:
Name | Type | Description |
---|---|---|
out_axis |
vec3 | Vector receiving the axis of rotation |
q |
ReadonlyQuat | Quaternion to be decomposed |
- Source:
Returns:
Angle, in radians, of the rotation
- Type
- Number
(static) identity(out) → {quat}
Set a quat to the identity quaternion
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
- Source:
Returns:
out
- Type
- quat
(static) invert(out, a) → {quat}
Calculates the inverse of a quat
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | quat to calculate inverse of |
- Source:
Returns:
out
- Type
- quat
(static) len()
Alias for quat.length
- Source:
(static) lerp(out, a, b, t) → {quat}
Performs a linear interpolation between two quat's
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | the first operand |
b |
ReadonlyQuat | the second operand |
t |
Number | interpolation amount, in the range [0-1], between the two inputs |
- Source:
Returns:
out
- Type
- quat
(static) ln(out, a) → {quat}
Calculate the natural logarithm of a unit quaternion.
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | quat to calculate the exponential of |
- Source:
Returns:
out
- Type
- quat
(static) mul()
Alias for quat.multiply
- Source:
(static) multiply(out, a, b) → {quat}
Multiplies two quat's
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | the first operand |
b |
ReadonlyQuat | the second operand |
- Source:
Returns:
out
- Type
- quat
(static) normalize(out, a) → {quat}
Normalize a quat
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | quaternion to normalize |
- Source:
Returns:
out
- Type
- quat
(static) pow(out, a, b) → {quat}
Calculate the scalar power of a unit quaternion.
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | quat to calculate the exponential of |
b |
Number | amount to scale the quaternion by |
- Source:
Returns:
out
- Type
- quat
(static) random(out) → {quat}
Generates a random unit quaternion
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
- Source:
Returns:
out
- Type
- quat
(static) rotateX(out, a, rad) → {quat}
Rotates a quaternion by the given angle about the X axis
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | quat receiving operation result |
a |
ReadonlyQuat | quat to rotate |
rad |
number | angle (in radians) to rotate |
- Source:
Returns:
out
- Type
- quat
(static) rotateY(out, a, rad) → {quat}
Rotates a quaternion by the given angle about the Y axis
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | quat receiving operation result |
a |
ReadonlyQuat | quat to rotate |
rad |
number | angle (in radians) to rotate |
- Source:
Returns:
out
- Type
- quat
(static) rotateZ(out, a, rad) → {quat}
Rotates a quaternion by the given angle about the Z axis
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | quat receiving operation result |
a |
ReadonlyQuat | quat to rotate |
rad |
number | angle (in radians) to rotate |
- Source:
Returns:
out
- Type
- quat
(static) scale(out, a, b) → {quat}
Scales a quat by a scalar number
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving vector |
a |
ReadonlyQuat | the vector to scale |
b |
Number | amount to scale the vector by |
- Source:
Returns:
out
- Type
- quat
(static) set(out, x, y, z, w) → {quat}
Set the components of a quat to the given values
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
x |
Number | X component |
y |
Number | Y component |
z |
Number | Z component |
w |
Number | W component |
- Source:
Returns:
out
- Type
- quat
(static) setAxisAngle(out, axis, rad) → {quat}
Sets a quat from the given angle and rotation axis,
then returns it.
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
axis |
ReadonlyVec3 | the axis around which to rotate |
rad |
Number | the angle in radians |
- Source:
Returns:
out
- Type
- quat
(static) slerp(out, a, b, t) → {quat}
Performs a spherical linear interpolation between two quat
Parameters:
Name | Type | Description |
---|---|---|
out |
quat | the receiving quaternion |
a |
ReadonlyQuat | the first operand |
b |
ReadonlyQuat | the second operand |
t |
Number | interpolation amount, in the range [0-1], between the two inputs |
- Source:
Returns:
out
- Type
- quat
(static) sqrLen()
Alias for quat.squaredLength
- Source:
(static) squaredLength(a) → {Number}
Calculates the squared length of a quat
Parameters:
Name | Type | Description |
---|---|---|
a |
ReadonlyQuat | vector to calculate squared length of |
- Source:
Returns:
squared length of a
- Type
- Number
(static) str(a) → {String}
Returns a string representation of a quaternion
Parameters:
Name | Type | Description |
---|---|---|
a |
ReadonlyQuat | vector to represent as a string |
- Source:
Returns:
string representation of the vector
- Type
- String