diff options
author | reduz <reduzio@gmail.com> | 2021-10-21 13:38:20 -0300 |
---|---|---|
committer | reduz <reduzio@gmail.com> | 2021-10-25 14:34:00 -0300 |
commit | d03b7fbe090dca1f9ea4190116ac0efbee37e929 (patch) | |
tree | 5d7db71d15925908cf87483526e6716cba0bef65 /core/variant/variant.cpp | |
parent | 5ff0624a073fe580b7f26b94f6e242462b67bc2a (diff) | |
download | redot-engine-d03b7fbe090dca1f9ea4190116ac0efbee37e929.tar.gz |
Refactored Node3D rotation modes
* Made the Basis euler orders indexed via enum.
* Node3D has a new rotation_order property to choose Euler rotation order.
* Node3D has also a rotation_mode property to choose between Euler, Quaternion and Basis
Exposing these modes as well as the order makes Godot a lot friendlier for animators, which can choose the best way to interpolate rotations.
The new *Basis* mode makes the (exposed) transform property obsolete, so it was removed (can still be accessed by code of course).
Diffstat (limited to 'core/variant/variant.cpp')
-rw-r--r-- | core/variant/variant.cpp | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/core/variant/variant.cpp b/core/variant/variant.cpp index 3214fc125d..81428caca1 100644 --- a/core/variant/variant.cpp +++ b/core/variant/variant.cpp @@ -313,7 +313,6 @@ bool Variant::can_convert(Variant::Type p_type_from, Variant::Type p_type_to) { case BASIS: { static const Type valid[] = { QUATERNION, - VECTOR3, NIL }; @@ -620,7 +619,6 @@ bool Variant::can_convert_strict(Variant::Type p_type_from, Variant::Type p_type case BASIS: { static const Type valid[] = { QUATERNION, - VECTOR3, NIL }; @@ -1889,8 +1887,6 @@ Variant::operator Basis() const { return *_data._basis; } else if (type == QUATERNION) { return *reinterpret_cast<const Quaternion *>(_data._mem); - } else if (type == VECTOR3) { - return Basis(*reinterpret_cast<const Vector3 *>(_data._mem)); } else if (type == TRANSFORM3D) { // unexposed in Variant::can_convert? return _data._transform3d->basis; } else { |