Spatial.getWorldRotation() and Transform.getRotation return a copy of the Quaternion which represents their rotation, but Camera.getRotation() returns an actual reference to the internal quaternion it uses to store its rotation.
Thus, Camera.getRotation() is by-reference while Spatial.getWorldRotation() and Transform.getRotation() are by-value.
Are the different semantics of these intentional, and even if they are, might it be better to make Camera.getRotation() by-value so that it is consistent with its cousins?
I say this because I just spent 30 mins trying to figure out why the “Initial Position” Quaternion I got from my Camera kept changing
Keep up the great work everyone!
–Robert McIntyre