Skip to main content

Quaternion

API for creating and manipulating quaternions.

Constants

Quaternion.IDENTITY

An identity quaternion is the inverse of itself (i.e. it performs no rotation).

Quaternion.IDENTITY: Quaternion

Functions

Quaternion.create

Creates a new quaternion.

Quaternion.create(imaginary: vector, scalar: number): Quaternion

Parameters

NameTypeDefault ValueDescription
imaginaryvectorRequiredThe imaginary part of the quaternion.
scalarnumberRequiredThe scalar part of the quaternion.

Returns

NameTypeDescription
quaternionQuaternionNo description

Quaternion.fromEuler

Creates a quaternion from Euler angles.

Quaternion.fromEuler(eulerAngle: vector): Quaternion

Parameters

NameTypeDefault ValueDescription
eulerAnglevectorRequiredNo description

Returns

NameTypeDescription
quaternionQuaternionNo description

Quaternion.fromAxisAngle

Creates a quaternion from an axis and an angle.

Quaternion.fromAxisAngle(axis: vector, angle: number): Quaternion

Parameters

NameTypeDefault ValueDescription
axisvectorRequiredThe axis of rotation.
anglenumberRequiredThe angle of rotation in radians about the axis.

Returns

NameTypeDescription
quaternionQuaternionNo description

Quaternion.conjugate

Returns the conjugate of a quaternion.

Quaternion.conjugate(quaternion: Quaternion): Quaternion

Parameters

NameTypeDefault ValueDescription
quaternionQuaternionRequiredNo description

Returns

NameTypeDescription
quaternionQuaternionNo description

Quaternion.inverse

Returns the inverse of a quaternion.

Quaternion.inverse(quaternion: Quaternion): Quaternion

Parameters

NameTypeDefault ValueDescription
quaternionQuaternionRequiredNo description

Returns

NameTypeDescription
quaternionQuaternionNo description

Quaternion.rotate

Rotates a vector by a quaternion.

Quaternion.rotate(quaternion: Quaternion, vector: vector): vector

Parameters

NameTypeDefault ValueDescription
quaternionQuaternionRequiredThe quaternion to rotate by.
vectorvectorRequiredThe vector to rotate.

Returns

NameTypeDescription
vectorvectorThe rotated vector.

Quaternion.mul

Multiplies two quaternions. Quaternion multiplication is not commutative.

Quaternion.mul(a: Quaternion, b: Quaternion): Quaternion

Parameters

NameTypeDefault ValueDescription
aQuaternionRequiredThe first quaternion.
bQuaternionRequiredThe second quaternion.

Returns

NameTypeDescription
quaternionQuaternionThe product of the two quaternions.

Types

Quaternion

Rotation represented by imaginary and scalar components which does not suffer from gimbal lock.

type Quaternion = { [1]: vector, [2]: number }

Properties

FieldTypeDescription
1vectorThe imaginary part of the quaternion.
2numberThe scalar part of the quaternion.