quaternion
Types
pub type Quaternion {
Quaternion(real: Float, imaginary: #(Float, Float, Float))
}
Constructors
-
Quaternion(real: Float, imaginary: #(Float, Float, Float))
Constants
Functions
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 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_real(r: Float) -> Quaternion
Constructs a quaternion with only a real part
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 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.