Lately I've been diving deeper into Quaternions, a complex mathematical operation we need in here for rotations.
So I wanted to get down to the nitty gritty of some of the math around it and thought a good way to do this was trying to recreate some of LL's methods we use. I thought a good place to start would be with creating a Quaternion from scratch. In particular implementing the Quaternion.FromEulerAngles(Vector a)
This is the pertinent info on how they do it.
A vector of angles in radians.
Rotates first around X (local/global coincide), then around new local Y, and finally around new local Z.
So I challenge programmers to write this method.
Testing it should involve creating several Quaternions from the Sansar method and then comparing your created one to theirs.
This is a good source of related info https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19770024290.pdf
I have been unable to replicate it so far myself.
Some Test Data
(42,10,22.4) => 0.9060,0.3660,0.0100,0.2110
(39,59.2,69.4) => 0.5800,0.5030,0.2170,0.6020
(9.1,84.9,31.9) => 0.6920,0.2410,0.6310,0.2530
(22.3,2.6,57.8) => 0.8560,0.1800,-0.0740,0.4780
(61.4,89.1,28.8) => 0.5050,0.5020,0.4940,0.4990