quaternion

Types

pub type Quaternion {
  Quaternion(real: Float, imaginary: #(Float, Float, Float))
}

Constructors

  • Quaternion(real: Float, imaginary: #(Float, Float, Float))

Constants

pub const id: Quaternion

Functions

pub fn add(a: Quaternion, b: Quaternion) -> Quaternion

Adds two quaternions

pub fn axis_angle(
  axis: #(Float, Float, Float),
  angle: Float,
) -> Quaternion

Constructs a quaternion representing the given angle (in radians) around the given axis

pub fn conjugate(q: Quaternion) -> Quaternion

Computes the conjugate of a quaternion.

pub fn dot(q: Quaternion, r: Quaternion) -> Float

Computes the dot product of two quaternions.

pub fn euler_angles(x: Float, y: Float, z: Float) -> Quaternion

Constructs the quaternion representing the given euler angle rotations (in radian)

pub fn from_imaginary(i: #(Float, Float, Float)) -> Quaternion

Constructs a quaternion with only an imaginary part

pub fn from_list(q: List(Float)) -> Result(Quaternion, String)
pub fn from_real(r: Float) -> Quaternion

Constructs a quaternion with only a real part

pub fn length(q: Quaternion) -> Float

Computes the length of a quaternion.

pub fn loosely_equals(
  q: Quaternion,
  r: Quaternion,
  epsilon: Float,
) -> Bool

Asserts if quaternions are loosely equals

pub fn multiply(q: Quaternion, r: Quaternion) -> Quaternion

Computes the product of two quaternions.

pub fn normalize(q: Quaternion) -> Quaternion
pub fn rotate_vector(
  q: Quaternion,
  v: #(Float, Float, Float),
) -> #(Float, Float, Float)

Rotates a 3D vector using a quaternion.

pub fn scale(q: Quaternion, factor: Float) -> Quaternion

Scales a quaternion (element-wise) by a scalar.

pub fn square_length(q: Quaternion) -> Float

Computes the squared length of a quaternion.

pub fn substract(a: Quaternion, b: Quaternion) -> Quaternion

Substracts two quaternions

pub fn times(a: Quaternion, b: Quaternion) -> Quaternion

Computes the product (element-wise) of two quaternions.

pub fn to_list(q: Quaternion) -> List(Float)
pub fn to_string(q: Quaternion) -> String
Search Document