Quat class

Basic usage

Quat is the class used for rotation quaternions manipulations. Quaternions are used to represent rotations in the 3D space.


To create a new Quat, just use its constructor.
If used without parameters, it will create a quaternion representing a rotation of angle 0 along X, Y and Z axes with "XYZ" as axis order: [0, 0, 0, 1].

// create a new Quat quaternion
const quaternion = new Quat();

Use chaining

Since most of the Quat methods return the quaternion itself, you can use chaining:

// create a new Quat quaternion and chain methods
const quaternion = new Quat().setAxisOrder("YXZ").setFromVec3(new Vec3(1, 1, 1));


  • elements array of floats of length 4, optional values to use for that quaternion. Default to [0, 0, 0, 1].
  • axisOrder string, optional axis order to use for the rotation calculations. Default to "XYZ".


  • elements (Float32Array): v7.0

    A Float32Array of floats of length 4 representing that quaternion.

  • axisOrder (string): v7.0

    Axis order to use for the 3D rotation calculations.


  • copy(quaternion): v7.0

    Copy a quaternion into this quaternion.

    • quaternion Quat class object quaternion to copy

    returns: this quaternion after copy.

  • equals(quaternion): v7.0

    Checks if 2 quaternions are equal (i.e. have the same values and axis orders).

    • quaternion Quat class object quaternion to compare

    returns: true if the 2 quaternions are equals, false otherwise.

  • setAxisOrder(axisOrder): v7.0

    Sets the quaternion values from an array.

    • axisOrder string a string representing the axis order to use. Could be "XYZ", "YXZ", "ZXY", "ZYX", "YZX" or "XZY".

    returns: this quaternion after axis order has been set.

  • setFromArray(array): v7.0

    Sets the quaternion values from an array.

    • array array an array of at least 4 floats

    returns: this quaternion after being set.

  • setFromVec3(vector): v7.0

    Sets a rotation quaternion using Euler angles as a Vec3 and its axis order.

    • vector Vec3 class object rotation vector to set our quaternion from

    returns: this quaternion after having applied the rotation.