mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-04 18:41:51 +00:00
1.3 KiB
1.3 KiB
quat library
Quaternions manipulation library.
Quaternions can be created as a table of 4 numbers:
{w, x, y, z}
Quaternion from matrix - quat.from_mat4(...)
-- creates a quaternion based on the rotation matrix
quat.from_mat4(m: matrix, [optional] dst: quat) -> quat
Quaternion of Euler angles - quat.from_euler(...)
-- creates quaternion from euler angles passed as XYZ (pitch, yaw, roll)
-- angles in degrees
quat.from_euler(euler: vec3, [optional] dst: quat) -> quat
Quaternion composition - quat.mul(...)
-- multiplies quaternions
quat.mul(a: quat, b: quat, [optional] dst: quat) -> quat
3D vector rotation - quat.mul_vec3(...)
-- rotates vector by quaternion
quat.mul_vec3(a: quat, b: vec3, [optional] dst: vec3) -> vec3
Spherical linear interpolation - quat.slerp(...)
The interpolation always take the short path and the rotation is performed at constant speed.
-- creates a quaternion as an interpolation between a and b,
-- where t is interpolation factor
quat.slerp(a: quat, b: quat, t: number, [optional] dst: quat) -> quat
Casting to string - quat.tostring(...)
-- returns a string representing the contents of the quaternion
quat.tostring(q: quat) -> string