Also there are some things I'd like to add to the library that I thought I'd ask about first.
1: a quat->euler function
2: a rotation matrix -> quat function
3: a rotation matrix -> angles function, which isn't reallly a quaternion function, but I found useful when working with these.
4: a few code comments to explain some of the functions and limits of the functions better.
I agree it's useful, but that is not something that should be part of a quaternion library (libraries should be focused). I'm happy to include such code in the repo but not in the .yymps, and I am further happy to link to another dedicated repo that has this code. Please make a separate PR and/or repo as you see fit.
Lack of comments is semi-deliberate as I wanted to position the library as boilerplate replacement rather than a newbie's introduction to the topic. I am open to changing this position. Could you give an example of comments you'd like to add?
Please also note that I won't accept PRs that male tons of changes or upgrade the GameMaker version (which is LTS for this library). Keep things focused so it's easier for me to quickly overview changes.
The euler->quaternion function has some flipped signs compared to the code here: https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles and so converting from euler->quaternion->euler yields different angles when they should be the same. 🤕
Also there are some things I'd like to add to the library that I thought I'd ask about first. 1: a quat->euler function 2: a rotation matrix -> quat function 3: a rotation matrix -> angles function, which isn't reallly a quaternion function, but I found useful when working with these. 4: a few code comments to explain some of the functions and limits of the functions better.