# Namespace: quat
# Table of contents
# Type aliases
# Functions
- add
- calculateW
- clone
- conjugate
- copy
- create
- dot
- equals
- exactEquals
- fromMat3
- fromValues
- getAxisAngle
- identity
- invert
- length
- lerp
- multiply
- normalize
- rotateX
- rotateY
- rotateZ
- rotationTo
- scale
- set
- setAxes
- setAxisAngle
- slerp
- sqlerp
- squaredLength
- str
# Type aliases
# valueType
Ƭ valueType: quattype
# Functions
# add
▸ Const add(out: vec4type, a: vec4type, b: vec4type): vec4type
Adds two quat's
function
# Parameters
| Name | Type | Description |
|---|---|---|
out | vec4type | the receiving quaternion |
a | vec4type | the first operand |
b | vec4type | the second operand |
Returns: vec4type
out
# calculateW
▸ calculateW(out: quattype, a: quattype): quattype
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 | quattype | the receiving quaternion |
a | quattype | quat to calculate W component of |
Returns: quattype
out
# clone
▸ Const clone(a: vec4type): vec4type
Creates a new quat initialized with values from an existing quaternion
function
# Parameters
| Name | Type | Description |
|---|---|---|
a | vec4type | quaternion to clone |
Returns: vec4type
a new quaternion
# conjugate
▸ conjugate(out: quattype, a: quattype): quattype
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 | quattype | the receiving quaternion |
a | quattype | quat to calculate conjugate of |
Returns: quattype
out
# copy
▸ Const copy(out: vec4type, a: vec4type): vec4type
Copy the values from one quat to another
function
# Parameters
| Name | Type | Description |
|---|---|---|
out | vec4type | the receiving quaternion |
a | vec4type | the source quaternion |
Returns: vec4type
out
# create
▸ create(): quattype
Creates a new identity quat
Returns: quattype
a new quaternion
# dot
▸ Const dot(a: vec4type, b: vec4type): number
Calculates the dot product of two quat's
function
# Parameters
| Name | Type | Description |
|---|---|---|
a | vec4type | the first operand |
b | vec4type | the second operand |
Returns: number
dot product of a and b
# equals
▸ Const equals(a: vec4type, b: vec4type): boolean
Returns whether or not the quaternions have approximately the same elements in the same position.
# Parameters
| Name | Type | Description |
|---|---|---|
a | vec4type | The first vector. |
b | vec4type | The second vector. |
Returns: boolean
True if the vectors are equal, false otherwise.
# exactEquals
▸ Const exactEquals(a: vec4type, b: vec4type): boolean
Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)
# Parameters
| Name | Type | Description |
|---|---|---|
a | vec4type | The first quaternion. |
b | vec4type | The second quaternion. |
Returns: boolean
True if the vectors are equal, false otherwise.
# fromMat3
▸ fromMat3(out: quattype, m: mat3type): quattype
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.
function
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | the receiving quaternion |
m | mat3type | rotation matrix |
Returns: quattype
out
# fromValues
▸ Const fromValues(x: number, y: number, z: number, w: number): vec4type
Creates a new quat initialized with the given values
function
# Parameters
| Name | Type | Description |
|---|---|---|
x | number | X component |
y | number | Y component |
z | number | Z component |
w | number | W component |
Returns: vec4type
a new quaternion
# getAxisAngle
▸ getAxisAngle(outAxis: vec3type, q: quattype): 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 |
|---|---|---|
outAxis | vec3type | Vector receiving the axis of rotation |
q | quattype | Quaternion to be decomposed |
Returns: number
Angle, in radians, of the rotation
# identity
▸ identity(out: quattype): quattype
Set a quat to the identity quaternion
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | the receiving quaternion |
Returns: quattype
out
# invert
▸ invert(out: quattype, a: quattype): quattype
Calculates the inverse of a quat
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | the receiving quaternion |
a | quattype | quat to calculate inverse of |
Returns: quattype
out
# length
▸ Const length(a: vec4type): number
Calculates the length of a quat
function
# Parameters
| Name | Type | Description |
|---|---|---|
a | vec4type | vector to calculate length of |
Returns: number
length of a
# lerp
▸ Const lerp(out: vec4type, a: vec4type, b: vec4type, t: number): vec4type
Performs a linear interpolation between two quat's
function
# Parameters
| Name | Type | Description |
|---|---|---|
out | vec4type | the receiving quaternion |
a | vec4type | the first operand |
b | vec4type | the second operand |
t | number | interpolation amount between the two inputs |
Returns: vec4type
out
# multiply
▸ multiply(out: quattype, a: quattype, b: quattype): quattype
Multiplies two quat's
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | the receiving quaternion |
a | quattype | the first operand |
b | quattype | the second operand |
Returns: quattype
out
# normalize
▸ Const normalize(out: vec4type, a: vec4type): vec4type
Normalize a quat
function
# Parameters
| Name | Type | Description |
|---|---|---|
out | vec4type | the receiving quaternion |
a | vec4type | quaternion to normalize |
Returns: vec4type
out
# rotateX
▸ rotateX(out: quattype, a: quattype, rad: number): quattype
Rotates a quaternion by the given angle about the X axis
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | quat receiving operation result |
a | quattype | quat to rotate |
rad | number | angle (in radians) to rotate |
Returns: quattype
out
# rotateY
▸ rotateY(out: quattype, a: quattype, rad: number): quattype
Rotates a quaternion by the given angle about the Y axis
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | quat receiving operation result |
a | quattype | quat to rotate |
rad | number | angle (in radians) to rotate |
Returns: quattype
out
# rotateZ
▸ rotateZ(out: quattype, a: quattype, rad: number): quattype
Rotates a quaternion by the given angle about the Z axis
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | quat receiving operation result |
a | quattype | quat to rotate |
rad | number | angle (in radians) to rotate |
Returns: quattype
out
# rotationTo
▸ rotationTo(out: quattype, a: vec3type, b: vec3type): quattype
Sets a quaternion to represent the shortest rotation from one vector to another.
Both vectors are assumed to be unit length.
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | the receiving quaternion. |
a | vec3type | the initial vector |
b | vec3type | the destination vector |
Returns: quattype
out
# scale
▸ Const scale(out: vec4type, a: vec4type, b: number): vec4type
Scales a quat by a scalar number
function
# Parameters
| Name | Type | Description |
|---|---|---|
out | vec4type | the receiving vector |
a | vec4type | the vector to scale |
b | number | amount to scale the vector by |
Returns: vec4type
out
# set
▸ Const set(out: vec4type, x: number, y: number, z: number, w: number): vec4type
Set the components of a quat to the given values
function
# Parameters
| Name | Type | Description |
|---|---|---|
out | vec4type | the receiving quaternion |
x | number | X component |
y | number | Y component |
z | number | Z component |
w | number | W component |
Returns: vec4type
out
# setAxes
▸ setAxes(out: quattype, view: vec3type, right: vec3type, up: vec3type): quattype
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.
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | - |
view | vec3type | the vector representing the viewing direction |
right | vec3type | the vector representing the local "right" direction |
up | vec3type | the vector representing the local "up" direction |
Returns: quattype
out
# setAxisAngle
▸ setAxisAngle(out: quattype, axis: vec3type, rad: number): quattype
Sets a quat from the given angle and rotation axis, then returns it.
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | the receiving quaternion |
axis | vec3type | the axis around which to rotate |
rad | number | the angle in radians |
Returns: quattype
out
# slerp
▸ slerp(out: quattype, a: quattype, b: quattype, t: number): quattype
Performs a spherical linear interpolation between two quat
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | the receiving quaternion |
a | quattype | the first operand |
b | quattype | the second operand |
t | number | interpolation amount between the two inputs |
Returns: quattype
out
# sqlerp
▸ sqlerp(out: quattype, a: quattype, b: quattype, c: quattype, d: quattype, t: number): quattype
Performs a spherical linear interpolation with two control points
# Parameters
| Name | Type | Description |
|---|---|---|
out | quattype | the receiving quaternion |
a | quattype | the first operand |
b | quattype | the second operand |
c | quattype | the third operand |
d | quattype | the fourth operand |
t | number | interpolation amount |
Returns: quattype
out
# squaredLength
▸ Const squaredLength(a: vec4type): number
Calculates the squared length of a quat
function
# Parameters
| Name | Type | Description |
|---|---|---|
a | vec4type | vector to calculate squared length of |
Returns: number
squared length of a
# str
▸ str(a: quattype): string
Returns a string representation of a quatenion
# Parameters
| Name | Type | Description |
|---|---|---|
a | quattype | vector to represent as a string |
Returns: string
string representation of the vector