sm.quat

Associated object type: Quat

A quaternion is used to represent rotation as a generalization of complex numbers.

To create one, use sm.quat.new.

Warning:

It is uncommon to modify individual X, Y, Z, W components directly. To create a new quaternion, consider using sm.vec3.getRotation.

Functions:

  • angleAxis
  • fromEuler
  • identity
  • lookRotation
  • new
  • new
  • rotNegX90
  • rotNegY90
  • rotNegZ90
  • rotX180
  • rotX90
  • rotY180
  • rotY90
  • rotZ180
  • rotZ90
  • slerp

  • sm.quat.angleAxis(angle, axis)

    Creates a new quaternion from angle and axis.

    Parameters:

    TypeNameDescription
    numberangleThe rotation angle in radians.
    Vec3axisThe axis vector to rotate around.

    Returns:

    TypeDescription
    QuatThe quaternion for rotating angle radians around axis.

    sm.quat.fromEuler(euler)

    Create a new quaternion from an euler angle vector.

    Parameters:

    TypeNameDescription
    Vec3eulerThe euler angle vector.

    Returns:

    TypeDescription
    QuatThe quaternion.

    sm.quat.identity()

    Creates a new identity quaternion.

    Returns:

    TypeDescription
    QuatThe created quaternion.

    sm.quat.lookRotation(at, up)

    Create a new quaternion from direction vectors. DEPRECATED

    Parameters:

    TypeNameDescription
    Vec3atThe forward vector.
    Vec3upThe up vector.

    Returns:

    TypeDescription
    QuatThe quaternion.

    sm.quat.new(quaternion)

    Creates a new quaternion.

    Parameters:

    TypeNameDescription
    QuatquaternionThe original quaternion.

    Returns:

    TypeDescription
    QuatThe created quaternion.

    sm.quat.new(x, y, z, w)

    Creates a new quaternion.

    Parameters:

    TypeNameDescription
    numberxThe X value.
    numberyThe Y value.
    numberzThe Z value.
    numberwThe W value.

    Returns:

    TypeDescription
    QuatThe created quaternion.

    sm.quat.rotNegX90()

    Returns the rotation constant for rotating -90 degrees around the X-axis.

    Returns:

    TypeDescription
    QuatThe rotation quaternion.

    sm.quat.rotNegY90()

    Returns the rotation constant for rotating -90 degrees around the Y-axis.

    Returns:

    TypeDescription
    QuatThe rotation quaternion.

    sm.quat.rotNegZ90()

    Returns the rotation constant for rotating -90 degrees around the Z-axis.

    Returns:

    TypeDescription
    QuatThe rotation quaternion.

    sm.quat.rotX180()

    Returns the rotation constant for rotating 180 degrees around the X-axis.

    Returns:

    TypeDescription
    QuatThe rotation quaternion.

    sm.quat.rotX90()

    Returns the rotation constant for rotating 90 degrees around the X-axis.

    Returns:

    TypeDescription
    QuatThe rotation quaternion.

    sm.quat.rotY180()

    Returns the rotation constant for rotating 180 degrees around the Y-axis.

    Returns:

    TypeDescription
    QuatThe rotation quaternion.

    sm.quat.rotY90()

    Returns the rotation constant for rotating 90 degrees around the Y-axis.

    Returns:

    TypeDescription
    QuatThe rotation quaternion.

    sm.quat.rotZ180()

    Returns the rotation constant for rotating 180 degrees around the Z-axis.

    Returns:

    TypeDescription
    QuatThe rotation quaternion.

    sm.quat.rotZ90()

    Returns the rotation constant for rotating 90 degrees around the Z-axis.

    Returns:

    TypeDescription
    QuatThe rotation quaternion.

    sm.quat.slerp(quaternion1, quaternion2, t)

    Performs a spherical linear interpolation between two quaternion.

    Parameters:

    TypeNameDescription
    Quatquaternion1The first quaternion.
    Quatquaternion2The second quaternion.
    numbertInterpolation amount between the two inputs.

    Returns:

    TypeDescription
    QuatThe interpolated quaternion.