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


#1

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.


#2

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

ofQuaternion quat = cam.getOrientationQuat():
quat.getEuler()

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


#3

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