ofEasyCam: .getOrientationEulerDeg() vs. .getOrientationQuat.getEuler()


Just found out that the two methods yield different results. This caused a lot of confusion for me, so I wanted to share it.

ofEasyCam cam;
cam.getOrientationEulerDeg(); // returns angles from [-90, 90] with a "change in direction" when reaching the limits
cam.getOrientationQuat.getEuler();  // returns angles from [-180, 180] with a "jump" between the limits

I was expecting cam.getOrientationEulerDeg() to yield the same results as cam.getOrientationQuat.getEuler(), so it took me some time to find out that it doesn’t. Hope this can help someone.


That method, getEuler, doesn’t exist anymore. Probabaly you are doing:

ofQuaternion quat = cam.getOrientationQuat():

or something simmilar? in that case you are transforming the return of cam.getOrientationQuat, which is now glm::quat into ofQuaternion which might behave slightly different when converting, so that’s probably why they behave different


You are right, I was doing it this way! Thank you for the explanation, now I understand why the methods behave different!