What’s the difference between “rotation” and “orientation” fat wire types?
If you put a tag’s “scene space transform” output through a splitter, there’s an output called “rotation” that can be split into values for x, y, and z. Rotation sensors have an “orientation” output that can also be split into values of x, y, and z.
First observation, these data types use identical symbols: a dot with an arrow going around it in a circle. Second observation, combiners only have 1 data type with that symbol, and it is called “rotation”. Third observation, if you look at the x, y, and z output for each wire type on a single object and then rotate the object around, the values are different whether the sensor is set to global or local!
So first question, what is the difference between the rotation and orientation data type? Second, when a combiner constructs a “rotation” wire does it interpret the values as a rotation or an orientation? And how do you construct wires of the other type?
I have to admit this data type baffles me a bit because a single orientation can be described as many different combinations of rotations in the three axes, and the rotation operation is not commutative. So the coordinates must describe the single rotation that brings the object from the initial state to the current state, but if you rotate it around then bring it back to the initial state the values should be the same, but they’re often not (although they are modular equivalencies like 270 and -90 so yeah, technically still the same).
I apologize if I’m missing something obvious, but it has been several years since I took undergrad abstract geometry so please bear with me.
-
Hi, the orientation & rotation data type are the same there are just some naming inconsistencies that have crept in during translation. As you mention an orientation is just a rotation from some reference frame. Internally they are both represented by a quaternion. When you pass one into the splitter they are converted into an axis-angle representation. The conversion from quaternion to axis-angle is deteministic but small changes in orientation can cause large changes in the choice of axis to rotate around which might explain the differences you're seeing in the X,Y,Z outputs.
hope that helps
thanks
Matt
Please sign in to leave a comment.