|
@@ -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);
|