A set of 4-dimensional coordinates used to represent rotation in 3-dimensional space.
Name | Type | Default | Description |
---|---|---|---|
x |
Number |
0.0
|
optional The X component. |
y |
Number |
0.0
|
optional The Y component. |
z |
Number |
0.0
|
optional The Z component. |
w |
Number |
0.0
|
optional The W component. |
Members
staticconstantCesium.Quaternion.IDENTITY : Quaternion
An immutable Quaternion instance initialized to (0.0, 0.0, 0.0, 1.0).
The number of elements used to store the object into an array in its interpolatable form.
The number of elements used to pack the object into an array.
staticconstantCesium.Quaternion.ZERO : Quaternion
An immutable Quaternion instance initialized to (0.0, 0.0, 0.0, 0.0).
The W component.
-
Default Value:
0.0
The X component.
-
Default Value:
0.0
The Y component.
-
Default Value:
0.0
The Z component.
-
Default Value:
0.0
Methods
staticCesium.Quaternion.add(left, right, result) → Quaternion
Computes the componentwise sum of two quaternions.
Name | Type | Description |
---|---|---|
left |
Quaternion | The first quaternion. |
right |
Quaternion | The second quaternion. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
staticCesium.Quaternion.clone(quaternion, result) → Quaternion
Duplicates a Quaternion instance.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to duplicate. |
result |
Quaternion | optional The object onto which to store the result. |
Returns:
The modified result parameter or a new Quaternion instance if one was not provided. (Returns undefined if quaternion is undefined)
Computes the angle of rotation of the provided quaternion.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to use. |
Returns:
The angle of rotation.
staticCesium.Quaternion.computeAxis(quaternion, result) → Cartesian3
Computes the axis of rotation of the provided quaternion.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to use. |
result |
Cartesian3 | The object onto which to store the result. |
Returns:
The modified result parameter.
staticCesium.Quaternion.computeInnerQuadrangle(q0, q1, q2, result) → Quaternion
Computes an inner quadrangle point.
This will compute quaternions that ensure a squad curve is C1.
Name | Type | Description |
---|---|---|
q0 |
Quaternion | The first quaternion. |
q1 |
Quaternion | The second quaternion. |
q2 |
Quaternion | The third quaternion. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
- Quaternion#squad
See:
staticCesium.Quaternion.conjugate(quaternion, result) → Quaternion
Computes the conjugate of the provided quaternion.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to conjugate. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
staticCesium.Quaternion.convertPackedArrayForInterpolation(packedArray, startingIndex, lastIndex, result)
Converts a packed array into a form suitable for interpolation.
Name | Type | Default | Description |
---|---|---|---|
packedArray |
Array.<Number> | The packed array. | |
startingIndex |
Number |
0
|
optional The index of the first element to be converted. |
lastIndex |
Number |
packedArray.length
|
optional The index of the last element to be converted. |
result |
Array.<Number> | The object into which to store the result. |
staticCesium.Quaternion.divideByScalar(quaternion, scalar, result) → Quaternion
Divides the provided quaternion componentwise by the provided scalar.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to be divided. |
scalar |
Number | The scalar to divide by. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
Computes the dot (scalar) product of two quaternions.
Name | Type | Description |
---|---|---|
left |
Quaternion | The first quaternion. |
right |
Quaternion | The second quaternion. |
Returns:
The dot product.
Compares the provided quaternions componentwise and returns
true
if they are equal, false
otherwise.
Name | Type | Description |
---|---|---|
left |
Quaternion | optional The first quaternion. |
right |
Quaternion | optional The second quaternion. |
Returns:
true
if left and right are equal, false
otherwise.
Compares the provided quaternions componentwise and returns
true
if they are within the provided epsilon,
false
otherwise.
Name | Type | Description |
---|---|---|
left |
Quaternion | optional The first quaternion. |
right |
Quaternion | optional The second quaternion. |
epsilon |
Number | The epsilon to use for equality testing. |
Returns:
true
if left and right are within the provided epsilon, false
otherwise.
staticCesium.Quaternion.exp(cartesian, result) → Quaternion
The exponential quaternion function.
Name | Type | Description |
---|---|---|
cartesian |
Cartesian3 | The cartesian. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
staticCesium.Quaternion.fastSlerp(start, end, t, result) → Quaternion
Computes the spherical linear interpolation or extrapolation at t using the provided quaternions.
This implementation is faster than
Quaternion#slerp
, but is only accurate up to 10-6.
Name | Type | Description |
---|---|---|
start |
Quaternion | The value corresponding to t at 0.0. |
end |
Quaternion | The value corresponding to t at 1.0. |
t |
Number | The point along t at which to interpolate. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
- Quaternion#slerp
See:
staticCesium.Quaternion.fastSquad(q0, q1, s0, s1, t, result) → Quaternion
Computes the spherical quadrangle interpolation between quaternions.
An implementation that is faster than
Quaternion#squad
, but less accurate.
Name | Type | 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 | The object onto which to store the result. |
Returns:
The modified result parameter or a new instance if none was provided.
- Quaternion#squad
See:
staticCesium.Quaternion.fromAxisAngle(axis, angle, result) → Quaternion
Computes a quaternion representing a rotation around an axis.
Name | Type | 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. |
Returns:
The modified result parameter or a new Quaternion instance if one was not provided.
staticCesium.Quaternion.fromHeadingPitchRoll(headingPitchRoll, result) → Quaternion
Computes a rotation from the given heading, pitch and roll angles. Heading is the rotation about the
negative z axis. Pitch is the rotation about the negative y axis. Roll is the rotation about
the positive x axis.
Name | Type | Description |
---|---|---|
headingPitchRoll |
HeadingPitchRoll | The rotation expressed as a heading, pitch and roll. |
result |
Quaternion | optional The object onto which to store the result. |
Returns:
The modified result parameter or a new Quaternion instance if none was provided.
staticCesium.Quaternion.fromRotationMatrix(matrix, result) → Quaternion
Computes a Quaternion from the provided Matrix3 instance.
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | The rotation matrix. |
result |
Quaternion | optional The object onto which to store the result. |
Returns:
The modified result parameter or a new Quaternion instance if one was not provided.
staticCesium.Quaternion.inverse(quaternion, result) → Quaternion
Computes the inverse of the provided quaternion.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to normalize. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
staticCesium.Quaternion.lerp(start, end, t, result) → Quaternion
Computes the linear interpolation or extrapolation at t using the provided quaternions.
Name | Type | Description |
---|---|---|
start |
Quaternion | The value corresponding to t at 0.0. |
end |
Quaternion | The value corresponding to t at 1.0. |
t |
Number | The point along t at which to interpolate. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
staticCesium.Quaternion.log(quaternion, result) → Cartesian3
The logarithmic quaternion function.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The unit quaternion. |
result |
Cartesian3 | The object onto which to store the result. |
Returns:
The modified result parameter.
Computes magnitude for the provided quaternion.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to conjugate. |
Returns:
The magnitude.
Computes magnitude squared for the provided quaternion.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to conjugate. |
Returns:
The magnitude squared.
staticCesium.Quaternion.multiply(left, right, result) → Quaternion
Computes the product of two quaternions.
Name | Type | Description |
---|---|---|
left |
Quaternion | The first quaternion. |
right |
Quaternion | The second quaternion. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
staticCesium.Quaternion.multiplyByScalar(quaternion, scalar, result) → Quaternion
Multiplies the provided quaternion componentwise by the provided scalar.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to be scaled. |
scalar |
Number | The scalar to multiply with. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
staticCesium.Quaternion.negate(quaternion, result) → Quaternion
Negates the provided quaternion.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to be negated. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
staticCesium.Quaternion.normalize(quaternion, result) → Quaternion
Computes the normalized form of the provided quaternion.
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | The quaternion to normalize. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
Stores the provided instance into the provided array.
Name | Type | Default | Description |
---|---|---|---|
value |
Quaternion | The value to pack. | |
array |
Array.<Number> | The array to pack into. | |
startingIndex |
Number |
0
|
optional The index into the array at which to start packing the elements. |
Returns:
The array that was packed into
staticCesium.Quaternion.slerp(start, end, t, result) → Quaternion
Computes the spherical linear interpolation or extrapolation at t using the provided quaternions.
Name | Type | Description |
---|---|---|
start |
Quaternion | The value corresponding to t at 0.0. |
end |
Quaternion | The value corresponding to t at 1.0. |
t |
Number | The point along t at which to interpolate. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
- Quaternion#fastSlerp
See:
staticCesium.Quaternion.squad(q0, q1, s0, s1, t, result) → Quaternion
Computes the spherical quadrangle interpolation between quaternions.
Name | Type | 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 | The object onto which to store the result. |
Returns:
The modified result parameter.
- Quaternion#computeInnerQuadrangle
Example:
// 1. compute the squad interpolation between two quaternions on a curve
var s0 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[i - 1], quaternions[i], quaternions[i + 1], new Cesium.Quaternion());
var s1 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[i], quaternions[i + 1], quaternions[i + 2], new Cesium.Quaternion());
var q = Cesium.Quaternion.squad(quaternions[i], quaternions[i + 1], s0, s1, t, new Cesium.Quaternion());
// 2. compute the squad interpolation as above but where the first quaternion is a end point.
var s1 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[0], quaternions[1], quaternions[2], new Cesium.Quaternion());
var q = Cesium.Quaternion.squad(quaternions[0], quaternions[1], quaternions[0], s1, t, new Cesium.Quaternion());
See:
staticCesium.Quaternion.subtract(left, right, result) → Quaternion
Computes the componentwise difference of two quaternions.
Name | Type | Description |
---|---|---|
left |
Quaternion | The first quaternion. |
right |
Quaternion | The second quaternion. |
result |
Quaternion | The object onto which to store the result. |
Returns:
The modified result parameter.
staticCesium.Quaternion.unpack(array, startingIndex, result) → Quaternion
Retrieves an instance from a packed array.
Name | Type | Default | Description |
---|---|---|---|
array |
Array.<Number> | The packed array. | |
startingIndex |
Number |
0
|
optional The starting index of the element to be unpacked. |
result |
Quaternion | optional The object into which to store the result. |
Returns:
The modified result parameter or a new Quaternion instance if one was not provided.
staticCesium.Quaternion.unpackInterpolationResult(array, sourceArray, firstIndex, lastIndex, result) → Quaternion
Retrieves an instance from a packed array converted with
convertPackedArrayForInterpolation
.
Name | Type | Default | Description |
---|---|---|---|
array |
Array.<Number> | The array previously packed for interpolation. | |
sourceArray |
Array.<Number> | The original packed array. | |
firstIndex |
Number |
0
|
optional The firstIndex used to convert the array. |
lastIndex |
Number |
packedArray.length
|
optional The lastIndex used to convert the array. |
result |
Quaternion | optional The object into which to store the result. |
Returns:
The modified result parameter or a new Quaternion instance if one was not provided.
clone(result) → Quaternion
Duplicates this Quaternion instance.
Name | Type | Description |
---|---|---|
result |
Quaternion | optional The object onto which to store the result. |
Returns:
The modified result parameter or a new Quaternion instance if one was not provided.
Compares this and the provided quaternion componentwise and returns
true
if they are equal, false
otherwise.
Name | Type | Description |
---|---|---|
right |
Quaternion | optional The right hand side quaternion. |
Returns:
true
if left and right are equal, false
otherwise.
Compares this and the provided quaternion componentwise and returns
true
if they are within the provided epsilon,
false
otherwise.
Name | Type | Description |
---|---|---|
right |
Quaternion | optional The right hand side quaternion. |
epsilon |
Number | The epsilon to use for equality testing. |
Returns:
true
if left and right are within the provided epsilon, false
otherwise.
Returns a string representing this quaternion in the format (x, y, z, w).
Returns:
A string representing this Quaternion.