Я пишу экспортер блендера для своего формата сцены.Blender bpy: Извлечь вращение объекта как кватернион без изменения сцены
При экспорте мне нужно вращение как кватернион.
Самый простой способ, который я нашел, - использовать rotation_quaternion. Но этот член гарантирует только сохранение вращения, когда rotation_mode
установлен на 'QUATERNION'
.
Мое временное текущее решения выглядит следующим образом:
prevRotationMode = object.rotation_mode
object.rotation_mode = 'QUATERNION'
rotationAsQuaternion = object.rotation_quaternion
object.rotation_mode = prevRotationMode
работы Это решение, но я напуган, это может ввести числовые ошибки, когда мой экспортер будет называться часто, как углы поворота будет преобразован между кватернионами представлениями и оригинальное представление.
Моей второй идеей было скопировать объект и изменить режим вращения в копии объекта и затем удалить его. Но это все равно не будет чистым решением, так как сцена будет изменена сценарием экспортера.
Есть ли элегантный способ получить поворот в виде кватернионов без изменения сцены?