263 return a.
x * b.
x + a.
y * b.
y + a.
z * b.
z + a.
w * b.
w;
quaternion quat_from_mat3(const matrix3 m)
Builds a quaternion from a 3x3 rotation matrix.
quaternion quat_from_euler(const vector3 euler)
Constructs a quaternion from Euler angles (in radians, XYZ order).
quaternion quat_mul(const quaternion a, const quaternion b)
Multiplies two quaternions (a * b).
matrix3 quat_to_mat3(const quaternion q)
Converts a quaternion to a 3x3 rotation matrix.
vector3 quat_to_euler(const quaternion q)
Converts a quaternion to Euler angles in degrees (XYZ).
vector3 quat_rotate_vec3(const quaternion q, const vector3 v)
Rotates a vector3 by a quaternion.
vector3 quat_to_axis_angle(const quaternion q, vm_float_t *degrees)
Converts a quaternion to an axis and an angle in degrees.
quaternion quat_identity(void)
Constructs the identity quaternion.
bool quat_near(const quaternion a, const quaternion b, const vm_float_t eps)
Returns true if a and b are within eps of each other.
quaternion quat_nlerp(const quaternion a, const quaternion b, const vm_float_t t)
Normalized-linearly interpolates from a to b by t.
quaternion quat_from_mat4(const matrix4 m)
Builds a quaternion from the rotation of a 4x4 matrix.
quaternion quat_conjugate(const quaternion q)
Returns the conjugate of a quaternion.
matrix4 quat_to_mat4(const quaternion q)
Converts a quaternion to a 4x4 rotation matrix.
quaternion quat_inverse(const quaternion q)
Returns the inverse of a quaternion.
quaternion quat_normalize(const quaternion q)
Normalizes a quaternion.
quaternion quat_from_axis_angle(const vector3 axis, const vm_float_t degrees)
Builds a quaternion from an axis and an angle in degrees.
quaternion quat_slerp(const quaternion a, const quaternion b, const vm_float_t t)
Spherical-linearly interpolates from a to b by t.
vm_float_t quat_dot(const quaternion a, const quaternion b)
Returns the dot product of two quaternions.
void quat_mul_ptr(quaternion *res, const quaternion *a, const quaternion *b)
void quat_rotate_vec3_ptr(vector3 *res, const quaternion *q, const vector3 *v)
Rotates a vector3 by a quaternion.
void quat_to_axis_angle_ptr(vector3 *axis, vm_float_t *degrees, const quaternion *q)
Converts a quaternion to an axis and an angle in degrees.
void quat_from_mat4_ptr(quaternion *res, const matrix4 *m)
Builds a quaternion from the rotation of a 4x4 matrix.
void quat_from_mat3_ptr(quaternion *res, const matrix3 *m)
Builds a quaternion from a 3x3 rotation matrix.
void quat_nlerp_ptr(quaternion *res, const quaternion *a, const quaternion *b, vm_float_t t)
Normalized-linearly interpolates from a to b by t.
void quat_to_euler_ptr(vector3 *res, const quaternion *q)
Converts a quaternion to Euler angles in degrees (XYZ).
void quat_slerp_ptr(quaternion *res, const quaternion *a, const quaternion *b, vm_float_t t)
Spherical-linearly interpolates from a to b by t.
void quat_to_mat3_ptr(matrix3 *res, const quaternion *q)
Converts a quaternion to a 3x3 rotation matrix.
void quat_from_axis_angle_ptr(quaternion *res, const vector3 *axis, vm_float_t degrees)
Builds a quaternion from an axis and an angle in degrees.
void quat_from_euler_ptr(quaternion *res, const vector3 *euler)
Converts Euler angles (in degrees, XYZ order: pitch, yaw, roll) to a quaternion and stores in res.
void quat_normalize_ptr(quaternion *res, const quaternion *q)
void quat_conjugate_ptr(quaternion *res, const quaternion *q)
Writes the conjugate of a quaternion.
void quat_to_mat4_ptr(matrix4 *res, const quaternion *q)
Converts a unit quaternion to a 4x4 rotation matrix and stores in res.
void quat_identity_ptr(quaternion *res)
Sets the quaternion to the identity quaternion (x=0, y=0, z=0, w=1).
void quat_inverse_ptr(quaternion *res, const quaternion *q)
Writes the inverse of a quaternion.