quat.to_euler_angles and quat.to_euler_angles_unpack
Cirno's Perfect Math Library
Adapated for Minetest
For best memory performance: have luaJIT & it's FFI library (this should be built into luaJIT), and add MTUL-CPML to your trusted list (so it can require()
call the FFI library)
Various useful bits of game math. 3D line intersections, ray casting, 2d/3d vectors, 4x4 matrices, quaternions, etc.
(originally) ntended to be used with LuaJIT and LÖVE (this is the backbone of LÖVE3D).
Online documentation can be found here or you can generate them yourself using ldoc -c doc/config.ld -o index .
Additionally adds to the API
mat4:translate_local(out, a, t)
does the same thing as translate
only its far right column instead of bottom row (as that's what's needed for most local coordinate systems)
also: worth noting that "a" in both translate
and translate_local
can be an empty table, and it'll generate an identity matrix. Which is really
redundant code wise, not a fan of that. Probably will fix that at some point.
TODO:
- Vec3s and Vec2s are not currently adapted for functionality with MT vectors (seperate classes)