In bullet, calling getAngularVelocity() on a rigid body node returns the angular velocities about the global x, y, and z axes. Is there a way to get or calculate the angular velocities about the local x, y, z axes of the node.
For example, in a flight simulator, how would you calculate the rate at which the aircraft is yawing, pitching and rolling regardless of its orientation in global space?
I hope I did think careful enough about this one (it late already):
I’d say it is enough to transform the vector returned by getAngularVelocity in whatever coordinate system you want (from global coordinates).
A little bit of explanation:
A body does not rotate around several axis (x/y/z) at the same time, it rotates around one single axis. But this axis might be any direction. The value returned by getAngularVelocity is exactly this vector: direction plus magnitude.
To break it down into rotations around x/y/z you simply project the vector onto this axis. This can be done in any coordinate system.