I used the euler->mat4->quat to give the right result, but euler->quat gives the wrong result - is there something I did wrong?
glm::quat q(glm::radians(glm::vec3(0, 90, 0)));
glm::vec3 e = glm::eulerAngles(q);
e = degrees(e);
cout << e.x << " " << e.y << " " << e.z << endl;
// Outputs: 0 90 180
// Expected: 0 90 0
//==========================================================
glm::quat q = glm::toQuat(glm::eulerAngleXYX(0.0f, glm::radians(90.f), 0.0f));
glm::vec3 e = glm::eulerAngles(q);
e = degrees(e);
cout << e.x << " " << e.y << " " << e.z << endl;
// Outputs: 0 89.9802 0
```