Merge pull request #84658 from detomon/initialize-quaternion-variant-with-identity

Initialize `Quaternion` variant with identity
This commit is contained in:
Thaddeus Crews 2025-09-30 11:19:19 -05:00
commit 726c4e9fba
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC

View file

@ -60,6 +60,9 @@ public:
case Variant::TRANSFORM2D: case Variant::TRANSFORM2D:
init_transform2d(v); init_transform2d(v);
break; break;
case Variant::QUATERNION:
init_quaternion(v);
break;
case Variant::AABB: case Variant::AABB:
init_aabb(v); init_aabb(v);
break; break;
@ -225,7 +228,7 @@ public:
// Should be in the same order as Variant::Type for consistency. // Should be in the same order as Variant::Type for consistency.
// Those primitive and vector types don't need an `init_` method: // Those primitive and vector types don't need an `init_` method:
// Nil, bool, float, Vector2/i, Rect2/i, Vector3/i, Plane, Quat, RID. // Nil, bool, float, Vector2/i, Rect2/i, Vector3/i, Plane, RID.
// Object is a special case, handled via `object_reset_data`. // Object is a special case, handled via `object_reset_data`.
_FORCE_INLINE_ static void init_string(Variant *v) { _FORCE_INLINE_ static void init_string(Variant *v) {
memnew_placement(v->_data._mem, String); memnew_placement(v->_data._mem, String);
@ -236,6 +239,10 @@ public:
memnew_placement(v->_data._transform2d, Transform2D); memnew_placement(v->_data._transform2d, Transform2D);
v->type = Variant::TRANSFORM2D; v->type = Variant::TRANSFORM2D;
} }
_FORCE_INLINE_ static void init_quaternion(Variant *v) {
memnew_placement(v->_data._mem, Quaternion);
v->type = Variant::QUATERNION;
}
_FORCE_INLINE_ static void init_aabb(Variant *v) { _FORCE_INLINE_ static void init_aabb(Variant *v) {
v->_data._aabb = (AABB *)Variant::Pools::_bucket_small.alloc(); v->_data._aabb = (AABB *)Variant::Pools::_bucket_small.alloc();
memnew_placement(v->_data._aabb, AABB); memnew_placement(v->_data._aabb, AABB);