new Quaternion
A set of 4-dimensional coordinates used to represent rotation in 3-dimensional space.
Parameters:
Name | Type | Argument | Default | Description |
---|---|---|---|---|
x |
Number |
<optional> |
0.0 | The X component. |
y |
Number |
<optional> |
0.0 | The Y component. |
z |
Number |
<optional> |
0.0 | The Z component. |
w |
Number |
<optional> |
0.0 | The W component. |
See:
Source:
Members
-
w :Number
-
The W component.
- Default Value:
- 0.0
-
x :Number
-
The X component.
- Default Value:
- 0.0
-
y :Number
-
The Y component.
- Default Value:
- 0.0
-
z :Number
-
The Z component.
- Default Value:
- 0.0
-
<static> IDENTITY
-
An immutable Quaternion instance initialized to (0.0, 0.0, 0.0, 1.0).
-
<static> packedInterpolationLength :Number
-
The number of elements used to store the object into an array in its interpolatable form.
-
<static> packedLength :Number
-
The number of elements used to pack the object into an array.
-
<static> ZERO
-
An immutable Quaternion instance initialized to (0.0, 0.0, 0.0, 0.0).
Methods
-
clone
-
Duplicates this Quaternion instance.
Parameters:
Name Type Argument Description result
Quaternion <optional>
The object onto which to store the result. Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
equals
-
Compares this and the provided quaternion componentwise and returns
true
if they are equal,false
otherwise.Parameters:
Name Type Argument Description right
Quaternion <optional>
The right hand side quaternion. Returns:
Booleantrue
if left and right are equal,false
otherwise. -
equalsEpsilon
-
Compares this and the provided quaternion componentwise and returns
true
if they are within the provided epsilon,false
otherwise.Parameters:
Name Type Argument Description right
Quaternion <optional>
The right hand side quaternion. epsilon
Number The epsilon to use for equality testing. Throws:
DeveloperError : epsilon is required and must be a number.Returns:
Booleantrue
if left and right are within the provided epsilon,false
otherwise. -
toString
-
Returns a string representing this quaternion in the format (x, y, z, w).
Returns:
String A string representing this Quaternion. -
<static> add
-
Computes the componentwise sum of two quaternions.
Parameters:
Name Type Argument Description left
Quaternion The first quaternion. right
Quaternion The second quaternion. result
Quaternion <optional>
The object onto which to store the result. Throws:
-
DeveloperError : left is required.
-
DeveloperError : right is required.
Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
-
<static> clone
-
Duplicates a Quaternion instance.
Parameters:
Name Type Argument Description quaternion
Quaternion The quaternion to duplicate. result
Quaternion <optional>
The object onto which to store the result. Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. (Returns undefined if quaternion is undefined) -
<static> conjugate
-
Computes the conjugate of the provided quaternion.
Parameters:
Name Type Argument Description quaternion
Quaternion The quaternion to conjugate. result
Quaternion <optional>
The object onto which to store the result. Throws:
DeveloperError : quaternion is required.Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
<static> convertPackedArrayForInterpolation
-
Converts a packed array into a form suitable for interpolation.
Parameters:
Name Type Argument Default Description packedArray
Array The packed array. startingIndex
Number <optional>
0 The index of the first element to be converted. lastIndex
Number <optional>
packedArray.length The index of the last element to be converted. result
Array <optional>
The object into which to store the result. Throws:
DeveloperError : packedArray is required. -
<static> divideByScalar
-
Divides the provided quaternion componentwise by the provided scalar.
Parameters:
Name Type Argument Description quaternion
Quaternion The quaternion to be divided. scalar
Number The scalar to divide by. result
Quaternion <optional>
The object onto which to store the result. Throws:
-
DeveloperError : quaternion is required.
-
DeveloperError : scalar is required and must be a number.
Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
-
<static> dot
-
Computes the dot (scalar) product of two quaternions.
Parameters:
Name Type Description left
Quaternion The first quaternion. right
Quaternion The second quaternion. Throws:
-
DeveloperError : left is required.
-
DeveloperError : right is required.
Returns:
Number The dot product. -
-
<static> equals
-
Compares the provided quaternions componentwise and returns
true
if they are equal,false
otherwise.Parameters:
Name Type Argument Description left
Quaternion <optional>
The first quaternion. right
Quaternion <optional>
The second quaternion. Returns:
Booleantrue
if left and right are equal,false
otherwise. -
<static> equalsEpsilon
-
Compares the provided quaternions componentwise and returns
true
if they are within the provided epsilon,false
otherwise.Parameters:
Name Type Argument Description left
Quaternion <optional>
The first quaternion. right
Quaternion <optional>
The second quaternion. epsilon
Number The epsilon to use for equality testing. Throws:
DeveloperError : epsilon is required and must be a number.Returns:
Booleantrue
if left and right are within the provided epsilon,false
otherwise. -
<static> exp
-
The exponential quaternion function.
Parameters:
Name Type Argument Description cartesian
Cartesian3 The cartesian. result
Quaternion <optional>
The object onto which to store the result. Throws:
DeveloperError : cartesian is required.Returns:
Quaternion The modified result parameter or a new instance if one was not provided. -
<static> fromAxisAngle
-
Computes a quaternion representing a rotation around an axis.
Parameters:
Name Type Argument Description axis
Cartesian3 The axis of rotation. angle
Number The angle in radians to rotate around the axis. result
Quaternion <optional>
The object onto which to store the result. Throws:
-
DeveloperError : axis is required.
-
DeveloperError : angle is required and must be a number.
Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
-
<static> fromRotationMatrix
-
Computes a Quaternion from the provided Matrix3 instance.
Parameters:
Name Type Argument Description matrix
Matrix3 The rotation matrix. result
Quaternion <optional>
The object onto which to store the result. Throws:
DeveloperError : matrix is required.Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
<static> getAngle
-
Computes the angle of rotation of the provided quaternion.
Parameters:
Name Type Description quaternion
Quaternion The quaternion to use. Throws:
DeveloperError : quaternion is required.Returns:
Number The angle of rotation. -
<static> getAxis
-
Computes the axis of rotation of the provided quaternion.
Parameters:
Name Type Argument Description quaternion
Quaternion The quaternion to use. result
Cartesian3 <optional>
The object onto which to store the result. Throws:
DeveloperError : quaternion is required.Returns:
Cartesian3 The modified result parameter or a new Cartesian3 instance if one was not provided. -
<static> innerQuadrangle
-
Computes an inner quadrangle point.
This will compute quaternions that ensure a squad curve is C1.
Parameters:
Name Type Argument Description q0
Quaternion The first quaternion. q1
Quaternion The second quaternion. q2
Quaternion The third quaternion. result
Quaternion <optional>
The object onto which to store the result. Throws:
DeveloperError : q0, q1, and q2 are required.Returns:
Quaternion The modified result parameter or a new instance if none was provided.- Quaternion#squad
See:
-
<static> inverse
-
Computes the inverse of the provided quaternion.
Parameters:
Name Type Argument Description quaternion
Quaternion The quaternion to normalize. result
Quaternion <optional>
The object onto which to store the result. Throws:
DeveloperError : quaternion is required.Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
<static> lerp
-
Computes the linear interpolation or extrapolation at t using the provided quaternions.
Parameters:
Name Type Argument Description start
The value corresponding to t at 0.0. end
The value corresponding to t at 1.0. t
The point along t at which to interpolate. result
Quaternion <optional>
The object onto which to store the result. Throws:
-
DeveloperError : start is required.
-
DeveloperError : end is required.
-
DeveloperError : t is required and must be a number.
Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
-
<static> log
-
The logarithmic quaternion function.
Parameters:
Name Type Argument Description quaternion
Quaternion The unit quaternion. result
Cartesian3 <optional>
The object onto which to store the result. Throws:
DeveloperError : quaternion is required.Returns:
Cartesian3 The modified result parameter or a new instance if one was not provided. -
<static> magnitude
-
Computes magnitude for the provided quaternion.
Parameters:
Name Type Description quaternion
Quaternion The quaternion to conjugate. Throws:
DeveloperError : quaternion is required.Returns:
Number The magnitude. -
<static> magnitudeSquared
-
Computes magnitude squared for the provided quaternion.
Parameters:
Name Type Description quaternion
Quaternion The quaternion to conjugate. Throws:
DeveloperError : quaternion is required.Returns:
Number The magnitude squared. -
<static> multiply
-
Computes the product of two quaternions.
Parameters:
Name Type Argument Description left
Quaternion The first quaternion. right
Quaternion The second quaternion. result
Quaternion <optional>
The object onto which to store the result. Throws:
-
DeveloperError : left is required.
-
DeveloperError : right is required.
Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
-
<static> multiplyByScalar
-
Multiplies the provided quaternion componentwise by the provided scalar.
Parameters:
Name Type Argument Description quaternion
Quaternion The quaternion to be scaled. scalar
Number The scalar to multiply with. result
Quaternion <optional>
The object onto which to store the result. Throws:
-
DeveloperError : quaternion is required.
-
DeveloperError : scalar is required and must be a number.
Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
-
<static> negate
-
Negates the provided quaternion.
Parameters:
Name Type Argument Description quaternion
Quaternion The quaternion to be negated. result
Quaternion <optional>
The object onto which to store the result. Throws:
DeveloperError : quaternion is required.Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
<static> normalize
-
Computes the normalized form of the provided quaternion.
Parameters:
Name Type Argument Description quaternion
Quaternion The quaternion to normalize. result
Quaternion <optional>
The object onto which to store the result. Throws:
DeveloperError : quaternion is required.Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
<static> pack
-
Stores the provided instance into the provided array.
Parameters:
Name Type Argument Default Description value
Quaternion The value to pack. array
Array The array to pack into. startingIndex
Number <optional>
0 The index into the array at which to start packing the elements. Throws:
-
DeveloperError : value is required.
-
DeveloperError : array is required.
-
-
<static> slerp
-
Computes the spherical linear interpolation or extrapolation at t using the provided quaternions.
Parameters:
Name Type Argument Description start
The value corresponding to t at 0.0. end
The value corresponding to t at 1.0. t
The point along t at which to interpolate. result
Quaternion <optional>
The object onto which to store the result. Throws:
-
DeveloperError : start is required.
-
DeveloperError : end is required.
-
DeveloperError : t is required and must be a number.
Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
-
<static> squad
-
Computes the spherical quadrangle interpolation between quaternions.
Parameters:
Name Type Argument Description q0
Quaternion The first quaternion. q1
Quaternion The second quaternion. s0
Quaternion The first inner quadrangle. s1
Quaternion The second inner quadrangle. t
Number The time in [0,1] used to interpolate. result
Quaternion <optional>
The object onto which to store the result. Throws:
-
DeveloperError : q0, q1, s0, and s1 are required.
-
DeveloperError : t is required and must be a number.
Returns:
Quaternion The modified result parameter or a new instance if none was provided.Example
// 1. compute the squad interpolation between two quaternions on a curve var s0 = Quaternion.innerQuadrangle(quaternions[i - 1], quaternions[i], quaternions[i + 1]); var s1 = Quaternion.innerQuadrangle(quaternions[i], quaternions[i + 1], quaternions[i + 2]); var q = Quaternion.squad(quaternions[i], quaternions[i + 1], s0, s1, t); // 2. compute the squad interpolation as above but where the first quaternion is a end point. var s1 = Quaternion.innerQuadrangle(quaternions[0], quaternions[1], quaternions[2]); var q = Quaternion.squad(quaternions[0], quaternions[1], quaternions[0], s1, t);
- Quaternion#innerQuadrangle
See:
-
-
<static> subtract
-
Computes the componentwise difference of two quaternions.
Parameters:
Name Type Argument Description left
Quaternion The first quaternion. right
Quaternion The second quaternion. result
Quaternion <optional>
The object onto which to store the result. Throws:
-
DeveloperError : left is required.
-
DeveloperError : right is required.
Returns:
Quaternion The modified result parameter or a new Quaternion instance if one was not provided. -
-
<static> unpack
-
Retrieves an instance from a packed array.
Parameters:
Name Type Argument Default Description array
Array The packed array. startingIndex
Number <optional>
0 The starting index of the element to be unpacked. result
Quaternion <optional>
The object into which to store the result. Throws:
DeveloperError : array is required. -
<static> unpackInterpolationResult
-
Retrieves an instance from a packed array converted with convertPackedArrayForInterpolation.
Parameters:
Name Type Argument Default Description array
Array The original packed array. sourceArray
Array The converted array. startingIndex
Number <optional>
0 The startingIndex used to convert the array. lastIndex
Number <optional>
packedArray.length The lastIndex used to convert the array. result
Quaternion <optional>
The object into which to store the result. Throws:
-
DeveloperError : array is required.
-
DeveloperError : sourceArray is required.
-