|
Vecmat 0.2.3
C math and linear algebra library for 2D/3D graphics, physics, and science.
|
#include <vecmat.h>Go to the source code of this file.
Functions | |
| quaternion | quat_identity (void) |
| Constructs the identity quaternion. | |
| quaternion | quat_mul (const quaternion a, const quaternion b) |
| Multiplies two quaternions (a * b). | |
| quaternion | quat_normalize (const quaternion q) |
| Normalizes a quaternion. | |
| quaternion | quat_from_euler (const vector3 euler) |
| Constructs a quaternion from Euler angles (in radians, XYZ order). | |
| matrix4 | quat_to_mat4 (const quaternion q) |
| Converts a quaternion to a 4x4 rotation matrix. | |
| quaternion | quat_conjugate (const quaternion q) |
| Returns the conjugate of a quaternion. | |
| quaternion | quat_inverse (const quaternion q) |
| Returns the inverse of 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_from_mat3 (const matrix3 m) |
| Builds a quaternion from a 3x3 rotation matrix. | |
| quaternion | quat_from_mat4 (const matrix4 m) |
| Builds a quaternion from the rotation of a 4x4 matrix. | |
| quaternion | quat_slerp (const quaternion a, const quaternion b, const vm_float_t t) |
| Spherical-linearly interpolates from a to b by t. | |
| quaternion | quat_nlerp (const quaternion a, const quaternion b, const vm_float_t t) |
| Normalized-linearly interpolates from a to b by t. | |
| vector3 | quat_rotate_vec3 (const quaternion q, const vector3 v) |
| Rotates a vector3 by a quaternion. | |
| vector3 | quat_to_euler (const quaternion q) |
| Converts a quaternion to Euler angles in degrees (XYZ). | |
| vector3 | quat_to_axis_angle (const quaternion q, vm_float_t *degrees) |
| Converts a quaternion to an axis and an angle in degrees. | |
| matrix3 | quat_to_mat3 (const quaternion q) |
| Converts a quaternion to a 3x3 rotation matrix. | |
| vm_float_t | quat_dot (const quaternion a, const quaternion b) |
| Returns the dot product of two quaternions. | |
| 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_conjugate | ( | const quaternion | q | ) |
Returns the conjugate of a quaternion.
See quat_conjugate_ptr instead.
| q | Input quaternion. |
Definition at line 90 of file quaternion.c.
References quat_conjugate_ptr().
| vm_float_t quat_dot | ( | const quaternion | a, |
| const quaternion | b ) |
Returns the dot product of two quaternions.
| a | First input quaternion. |
| b | Second input quaternion. |
Definition at line 261 of file quaternion.c.
References quaternion::w, quaternion::x, quaternion::y, and quaternion::z.
Referenced by quat_nlerp_ptr(), and quat_slerp_ptr().
| quaternion quat_from_axis_angle | ( | const vector3 | axis, |
| const vm_float_t | degrees ) |
Builds a quaternion from an axis and an angle in degrees.
See quat_from_axis_angle_ptr instead.
| axis | Rotation axis. |
| degrees | Rotation angle in degrees. |
Definition at line 121 of file quaternion.c.
References quat_from_axis_angle_ptr().
| quaternion quat_from_euler | ( | const vector3 | euler | ) |
Constructs a quaternion from Euler angles (in radians, XYZ order).
See quat_from_euler_ptr instead.
| euler | The Euler angles vector (x=pitch, y=yaw, z=roll). |
Definition at line 60 of file quaternion.c.
References quat_from_euler_ptr().
| quaternion quat_from_mat3 | ( | const matrix3 | m | ) |
Builds a quaternion from a 3x3 rotation matrix.
See quat_from_mat3_ptr instead.
| m | Input matrix. |
Definition at line 136 of file quaternion.c.
References quat_from_mat3_ptr().
| quaternion quat_from_mat4 | ( | const matrix4 | m | ) |
Builds a quaternion from the rotation of a 4x4 matrix.
See quat_from_mat4_ptr instead.
| m | Input matrix. |
Definition at line 151 of file quaternion.c.
References quat_from_mat4_ptr().
| quaternion quat_identity | ( | void | ) |
Constructs the identity quaternion.
See quat_identity_ptr instead.
Definition at line 14 of file quaternion.c.
References quat_identity_ptr().
| quaternion quat_inverse | ( | const quaternion | q | ) |
Returns the inverse of a quaternion.
See quat_inverse_ptr instead.
| q | Input quaternion. |
Definition at line 105 of file quaternion.c.
References quat_inverse_ptr().
| quaternion quat_mul | ( | const quaternion | a, |
| const quaternion | b ) |
Multiplies two quaternions (a * b).
See quat_mul_ptr instead.
| a | The first quaternion. |
| b | The second quaternion. |
Definition at line 30 of file quaternion.c.
References quat_mul_ptr().
| 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.
| a | First input quaternion. |
| b | Second input quaternion. |
| eps | Distance tolerance. |
Definition at line 274 of file quaternion.c.
References VECMAT_FABS, quaternion::w, quaternion::x, quaternion::y, and quaternion::z.
| quaternion quat_nlerp | ( | const quaternion | a, |
| const quaternion | b, | ||
| const vm_float_t | t ) |
Normalized-linearly interpolates from a to b by t.
See quat_nlerp_ptr instead.
| a | First input quaternion. |
| b | Second input quaternion. |
| t | Interpolation factor. |
Definition at line 185 of file quaternion.c.
References quat_nlerp_ptr().
| quaternion quat_normalize | ( | const quaternion | q | ) |
Normalizes a quaternion.
See quat_normalize_ptr instead.
| q | The input quaternion. |
Definition at line 45 of file quaternion.c.
References quat_normalize_ptr().
| vector3 quat_rotate_vec3 | ( | const quaternion | q, |
| const vector3 | v ) |
Rotates a vector3 by a quaternion.
See quat_rotate_vec3_ptr instead.
| q | Input quaternion. |
| v | Input vector. |
Definition at line 201 of file quaternion.c.
References quat_rotate_vec3_ptr().
| quaternion quat_slerp | ( | const quaternion | a, |
| const quaternion | b, | ||
| const vm_float_t | t ) |
Spherical-linearly interpolates from a to b by t.
See quat_slerp_ptr instead.
| a | First input quaternion. |
| b | Second input quaternion. |
| t | Interpolation factor. |
Definition at line 168 of file quaternion.c.
References quat_slerp_ptr().
| vector3 quat_to_axis_angle | ( | const quaternion | q, |
| vm_float_t * | degrees ) |
Converts a quaternion to an axis and an angle in degrees.
See quat_to_axis_angle_ptr instead.
| q | Input quaternion. |
| degrees | Optional output angle in degrees. |
Definition at line 232 of file quaternion.c.
References quat_to_axis_angle_ptr().
| vector3 quat_to_euler | ( | const quaternion | q | ) |
Converts a quaternion to Euler angles in degrees (XYZ).
See quat_to_euler_ptr instead.
| q | Input quaternion. |
Definition at line 216 of file quaternion.c.
References quat_to_euler_ptr().
| matrix3 quat_to_mat3 | ( | const quaternion | q | ) |
Converts a quaternion to a 3x3 rotation matrix.
See quat_to_mat3_ptr instead.
| q | Input quaternion. |
Definition at line 247 of file quaternion.c.
References quat_to_mat3_ptr().
| matrix4 quat_to_mat4 | ( | const quaternion | q | ) |
Converts a quaternion to a 4x4 rotation matrix.
See quat_to_mat4_ptr instead.
| q | The input quaternion. |
Definition at line 75 of file quaternion.c.
References quat_to_mat4_ptr().