Quaternion Library

Description

quaternion 🔗

Quaternion library for Luanti.
Quaternions are 4D complex numbers used for 3D rotations.

Reference 🔗

quaternion.metatable is the metatable used when creating quaternions.

The following functions create new quaternions.

quaternion.compose(w,x,y,z) returns a quaternion with the respective components.
quaternion.copy(q) returns a copy of the same quaternion.
quaternion.realimag(w,xyz) returns a quaternion created with a number and a vector.
quaternion.identity() returns the identity quaternion.
quaternion.new(...) automatically selects from the above constructors depending on argument count.

quaternion.scale(q, n) returns a componentwise scaled quaternion.
quaternion.qmultiply(q1, q2) returns the quaternion multiplication of q1 and q2.
quaternion.multiply(a, b) automatically selects from the above multiplication functions depending on type. Used for overloading a * b.

quaternion.norminvert(q) returns the inverse of a quaternion. Argument must be normalized.

quaternion.fromto(v1, v2) returns the shortest quaternion that rotates vectors v1 to v2.
quaternion.quickfromto(n1, n2) is the above but its arguments must be normalized.
quaternion.axisangle(axis, angle) returns a quaternion which represents a righthanded rotation around axis by angle radians.

The following functions create new vectors.

vector.perpendicular(v) returns an arbitrary perpendicular vector.
vector.rotatequat(v, q) returns a rotation of the vector v by the quaternion q.

Reviews

Review

Do you recommend this mod?

  • No reviews, yet.

Releases

1.1.0.0

Download

2026-08-01 18:09 UTC

1.1.0.0 🔗

  • fixes quaternion.realimag and the screenshot which includes it
  • adds README.md
All releases

Information

Provides

quaternion

Dependencies

Required
No required dependencies

Information

Type
Mod
Technical Name
quaternion
Languages
English
License
0BSD
Maintenance State
Beta
Added
2026-07-28 08:58 UTC
Maintainers
The4spaceconstants