# Namespace: quat

# Table of contents

# Type aliases

# Functions

# 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

vjmap / Exports / spring