Browse Source

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

Initialize `Quaternion` variant with identity
Thaddeus Crews 2 weeks ago
parent
commit
726c4e9fba
1 changed files with 8 additions and 1 deletions
  1. 8 1
      core/variant/variant_internal.h

+ 8 - 1
core/variant/variant_internal.h

@@ -60,6 +60,9 @@ public:
 			case Variant::TRANSFORM2D:
 				init_transform2d(v);
 				break;
+			case Variant::QUATERNION:
+				init_quaternion(v);
+				break;
 			case Variant::AABB:
 				init_aabb(v);
 				break;
@@ -225,7 +228,7 @@ public:
 
 	// Should be in the same order as Variant::Type for consistency.
 	// 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`.
 	_FORCE_INLINE_ static void init_string(Variant *v) {
 		memnew_placement(v->_data._mem, String);
@@ -236,6 +239,10 @@ public:
 		memnew_placement(v->_data._transform2d, 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) {
 		v->_data._aabb = (AABB *)Variant::Pools::_bucket_small.alloc();
 		memnew_placement(v->_data._aabb, AABB);