new Cesium.Quaternion(x, y, z, w)
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. |
- PackableForInterpolation
See:
Members
static constant Cesium.Quaternion.IDENTITY : Quaternion
An immutable Quaternion instance initialized to (0.0, 0.0, 0.0, 1.0).
static Cesium.Quaternion.packedInterpolationLength : number
The number of elements used to store the object into an array in its interpolatable form.
static Cesium.Quaternion.packedLength : number
The number of elements used to pack the object into an array.
static constant Cesium.Quaternion.ZERO : Quaternion
An immutable Quaternion instance initialized to (0.0, 0.0, 0.0, 0.0).
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
Methods
static Cesium.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.
static Cesium.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)
static Cesium.Quaternion.computeAngle(quaternion) → number
Computes the angle of rotation of the provided quaternion.
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | The quaternion to use. |
Returns:
The angle of rotation.
static Cesium.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.
static Cesium.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:
static Cesium.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.
static Cesium.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> | optional The object into which to store the result. |
static Cesium.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.
static Cesium.Quaternion.dot(left, right) → number
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.
static Cesium.Quaternion.equals(left, right) → boolean
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.
static Cesium.Quaternion.equalsEpsilon(left, right, epsilon) → boolean
Compares the provided quaternions componentwise and returns
true if they are within the provided epsilon,
false otherwise.
| Name | Type | Default | Description |
|---|---|---|---|
left |
Quaternion | optional The first quaternion. | |
right |
Quaternion | optional The second quaternion. | |
epsilon |
number |
0
|
optional The epsilon to use for equality testing. |
Returns:
true if left and right are within the provided epsilon, false otherwise.
static Cesium.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.
static Cesium.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:
static Cesium.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:
static Cesium.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.
static Cesium.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.
static Cesium.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.
- Matrix3.fromQuaternion
See:
static Cesium.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.
static Cesium.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.
static Cesium.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.
static Cesium.Quaternion.magnitude(quaternion) → number
Computes magnitude for the provided quaternion.
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | The quaternion to conjugate. |
Returns:
The magnitude.
static Cesium.Quaternion.magnitudeSquared(quaternion) → number
Computes magnitude squared for the provided quaternion.
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | The quaternion to conjugate. |
Returns:
The magnitude squared.
static Cesium.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.
static Cesium.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.
static Cesium.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.
static Cesium.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.
static Cesium.Quaternion.pack(value, array, startingIndex) → Array.<number>
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
static Cesium.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:
static Cesium.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
const s0 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[i - 1], quaternions[i], quaternions[i + 1], new Cesium.Quaternion());
const s1 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[i], quaternions[i + 1], quaternions[i + 2], new Cesium.Quaternion());
const 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.
const s1 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[0], quaternions[1], quaternions[2], new Cesium.Quaternion());
const q = Cesium.Quaternion.squad(quaternions[0], quaternions[1], quaternions[0], s1, t, new Cesium.Quaternion());
See:
static Cesium.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.
static Cesium.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.
static Cesium.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.
equals(right) → boolean
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.
equalsEpsilon(right, epsilon) → boolean
Compares this and the provided quaternion componentwise and returns
true if they are within the provided epsilon,
false otherwise.
| Name | Type | Default | Description |
|---|---|---|---|
right |
Quaternion | optional The right hand side quaternion. | |
epsilon |
number |
0
|
optional The epsilon to use for equality testing. |
Returns:
true if left and right are within the provided epsilon, false otherwise.
toString() → string
Returns a string representing this quaternion in the format (x, y, z, w).
Returns:
A string representing this Quaternion.