我正在为我的场景格式编写一个搅拌机导出器。
导出时,我需要将旋转作为四元数。
我发现最简单的方法是使用rotation_quaternion。但是这个成员只保证在rotation_mode
设置为时存储旋转'QUATERNION'
。
我的临时解决方案当前看起来像:
prevRotationMode = object.rotation_mode
object.rotation_mode = 'QUATERNION'
rotationAsQuaternion = object.rotation_quaternion
object.rotation_mode = prevRotationMode
此解决方案有效,但我担心当我的导出器经常被调用时,这可能会引入数值错误,因为旋转角度将在四元数表示和原始表示之间转换。
我的第二个想法是复制对象,并在对象副本中更改旋转模式,然后将其删除。但这仍然不是一个干净的解决方案,因为场景会被导出器脚本修改。
有没有一种优雅的方法可以在不修改场景的情况下将旋转作为四元数?