Update docs and bindings for new integer vector types

This commit is contained in:
Rémi Verschelde 2020-02-24 17:00:40 +01:00
parent 2f237d181b
commit 6c8f2ae53a
16 changed files with 358 additions and 101 deletions

View file

@ -92,9 +92,6 @@ VARIANT_ENUM_CAST(JoystickList);
VARIANT_ENUM_CAST(MidiMessageList);
void register_global_constants() {
//{ KEY_BACKSPACE, VK_BACK },// (0x08) // backspace
BIND_GLOBAL_ENUM_CONSTANT(MARGIN_LEFT);
BIND_GLOBAL_ENUM_CONSTANT(MARGIN_TOP);
BIND_GLOBAL_ENUM_CONSTANT(MARGIN_RIGHT);
@ -116,7 +113,7 @@ void register_global_constants() {
BIND_GLOBAL_ENUM_CONSTANT(VALIGN_CENTER);
BIND_GLOBAL_ENUM_CONSTANT(VALIGN_BOTTOM);
// hueg list of keys
// huge list of keys
BIND_GLOBAL_CONSTANT(SPKEY);
BIND_GLOBAL_ENUM_CONSTANT(KEY_ESCAPE);
@ -596,23 +593,26 @@ void register_global_constants() {
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_INT", Variant::INT);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_REAL", Variant::FLOAT);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_STRING", Variant::STRING);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2", Variant::VECTOR2); // 5
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2", Variant::VECTOR2);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2I", Variant::VECTOR2I);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_RECT2", Variant::RECT2);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_RECT2I", Variant::RECT2I);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3", Variant::VECTOR3);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3I", Variant::VECTOR3I);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_TRANSFORM2D", Variant::TRANSFORM2D);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_PLANE", Variant::PLANE);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_QUAT", Variant::QUAT); // 10
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_QUAT", Variant::QUAT);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_AABB", Variant::AABB);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_BASIS", Variant::BASIS);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_TRANSFORM", Variant::TRANSFORM);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_COLOR", Variant::COLOR);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_STRING_NAME", Variant::STRING_NAME); // 15
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_NODE_PATH", Variant::NODE_PATH); // 15
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_STRING_NAME", Variant::STRING_NAME);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_NODE_PATH", Variant::NODE_PATH);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_RID", Variant::_RID);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_OBJECT", Variant::OBJECT);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_CALLABLE", Variant::CALLABLE);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_SIGNAL", Variant::SIGNAL);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_DICTIONARY", Variant::DICTIONARY); // 20
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_DICTIONARY", Variant::DICTIONARY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_ARRAY", Variant::ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_RAW_ARRAY", Variant::PACKED_BYTE_ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_INT32_ARRAY", Variant::PACKED_INT32_ARRAY);
@ -620,7 +620,7 @@ void register_global_constants() {
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_FLOAT32_ARRAY", Variant::PACKED_FLOAT32_ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_FLOAT64_ARRAY", Variant::PACKED_FLOAT64_ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_STRING_ARRAY", Variant::PACKED_STRING_ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2_ARRAY", Variant::PACKED_VECTOR2_ARRAY); // 25
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2_ARRAY", Variant::PACKED_VECTOR2_ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3_ARRAY", Variant::PACKED_VECTOR3_ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_COLOR_ARRAY", Variant::PACKED_COLOR_ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_MAX", Variant::VARIANT_MAX);

View file

@ -186,7 +186,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
if (r_len)
(*r_len) += 4 * 2;
} break; // 5
} break;
case Variant::VECTOR2I: {
ERR_FAIL_COND_V(len < 4 * 2, ERR_INVALID_DATA);
@ -198,7 +198,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
if (r_len)
(*r_len) += 4 * 2;
} break; // 5
} break;
case Variant::RECT2: {
ERR_FAIL_COND_V(len < 4 * 4, ERR_INVALID_DATA);
@ -1058,7 +1058,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
r_len += 2 * 4;
} break; // 5
} break;
case Variant::VECTOR2I: {
if (buf) {
@ -1069,7 +1069,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
r_len += 2 * 4;
} break; // 5
} break;
case Variant::RECT2: {
if (buf) {

View file

@ -78,7 +78,6 @@ class Variant {
public:
// If this changes the table in variant_op must be updated
enum Type {
NIL,
// atomic types
@ -88,8 +87,7 @@ public:
STRING,
// math types
VECTOR2, // 5
VECTOR2,
VECTOR2I,
RECT2,
RECT2I,
@ -97,7 +95,7 @@ public:
VECTOR3I,
TRANSFORM2D,
PLANE,
QUAT, // 10
QUAT,
AABB,
BASIS,
TRANSFORM,
@ -105,26 +103,26 @@ public:
// misc types
COLOR,
STRING_NAME,
NODE_PATH, // 15
NODE_PATH,
_RID,
OBJECT,
CALLABLE,
SIGNAL,
DICTIONARY,
ARRAY,
// arrays
PACKED_BYTE_ARRAY, // 20
// typed arrays
PACKED_BYTE_ARRAY,
PACKED_INT32_ARRAY,
PACKED_INT64_ARRAY,
PACKED_FLOAT32_ARRAY,
PACKED_FLOAT64_ARRAY,
PACKED_STRING_ARRAY,
PACKED_VECTOR2_ARRAY,
PACKED_VECTOR3_ARRAY, // 25
PACKED_VECTOR3_ARRAY,
PACKED_COLOR_ARRAY,
VARIANT_MAX
};
private:

View file

@ -1291,14 +1291,14 @@ Variant Variant::construct(const Variant::Type p_type, const Variant **p_args, i
// math types
case VECTOR2:
return Vector2(); // 5
return Vector2();
case RECT2: return Rect2();
case VECTOR3: return Vector3();
case TRANSFORM2D: return Transform2D();
case PLANE: return Plane();
case QUAT: return Quat();
case AABB:
return ::AABB(); // 10
return ::AABB();
case BASIS: return Basis();
case TRANSFORM:
return Transform();
@ -1306,16 +1306,16 @@ Variant Variant::construct(const Variant::Type p_type, const Variant **p_args, i
// misc types
case COLOR: return Color();
case STRING_NAME:
return StringName(); // 15
return StringName();
case NODE_PATH:
return NodePath(); // 15
return NodePath();
case _RID: return RID();
case OBJECT: return (Object *)NULL;
case CALLABLE: return Callable();
case SIGNAL: return Signal();
case DICTIONARY: return Dictionary();
case ARRAY:
return Array(); // 20
return Array();
case PACKED_BYTE_ARRAY: return PackedByteArray();
case PACKED_INT32_ARRAY: return PackedInt32Array();
case PACKED_INT64_ARRAY: return PackedInt64Array();
@ -1323,7 +1323,7 @@ Variant Variant::construct(const Variant::Type p_type, const Variant **p_args, i
case PACKED_FLOAT64_ARRAY: return PackedFloat64Array();
case PACKED_STRING_ARRAY: return PackedStringArray();
case PACKED_VECTOR2_ARRAY:
return PackedVector2Array(); // 25
return PackedVector2Array();
case PACKED_VECTOR3_ARRAY: return PackedVector3Array();
case PACKED_COLOR_ARRAY: return PackedColorArray();
default: return Variant();
@ -1364,7 +1364,7 @@ Variant Variant::construct(const Variant::Type p_type, const Variant **p_args, i
case PLANE: return (Plane(*p_args[0]));
case QUAT: return (p_args[0]->operator Quat());
case AABB:
return (::AABB(*p_args[0])); // 10
return (::AABB(*p_args[0]));
case BASIS: return (Basis(p_args[0]->operator Basis()));
case TRANSFORM:
return (Transform(p_args[0]->operator Transform()));
@ -1372,16 +1372,16 @@ Variant Variant::construct(const Variant::Type p_type, const Variant **p_args, i
// misc types
case COLOR: return p_args[0]->type == Variant::STRING ? Color::html(*p_args[0]) : Color::hex(*p_args[0]);
case STRING_NAME:
return (StringName(p_args[0]->operator StringName())); // 15
return (StringName(p_args[0]->operator StringName()));
case NODE_PATH:
return (NodePath(p_args[0]->operator NodePath())); // 15
return (NodePath(p_args[0]->operator NodePath()));
case _RID: return (RID(*p_args[0]));
case OBJECT: return ((Object *)(p_args[0]->operator Object *()));
case CALLABLE: return ((Callable)(p_args[0]->operator Callable()));
case SIGNAL: return ((Signal)(p_args[0]->operator Signal()));
case DICTIONARY: return p_args[0]->operator Dictionary();
case ARRAY:
return p_args[0]->operator Array(); // 20
return p_args[0]->operator Array();
// arrays
case PACKED_BYTE_ARRAY: return (PackedByteArray(*p_args[0]));
@ -1391,7 +1391,7 @@ Variant Variant::construct(const Variant::Type p_type, const Variant **p_args, i
case PACKED_FLOAT64_ARRAY: return (PackedFloat64Array(*p_args[0]));
case PACKED_STRING_ARRAY: return (PackedStringArray(*p_args[0]));
case PACKED_VECTOR2_ARRAY:
return (PackedVector2Array(*p_args[0])); // 25
return (PackedVector2Array(*p_args[0]));
case PACKED_VECTOR3_ARRAY: return (PackedVector3Array(*p_args[0]));
case PACKED_COLOR_ARRAY: return (PackedColorArray(*p_args[0]));
default: return Variant();

View file

@ -1612,7 +1612,7 @@ void Variant::set_named(const StringName &p_index, const Variant &p_value, bool
}
}
} break; // 10
} break;
case AABB: {
if (p_value.type == Variant::VECTOR3) {
@ -1870,7 +1870,7 @@ Variant Variant::get_named(const StringName &p_index, bool *r_valid) const {
return v->w;
}
} break; // 10
} break;
case AABB: {
const ::AABB *v = _data._aabb;
@ -2097,7 +2097,7 @@ void Variant::set(const Variant &p_index, const Variant &p_value, bool *r_valid)
}
}
} break; // 5
} break;
case VECTOR2I: {
if (p_value.type != Variant::INT && p_value.type != Variant::FLOAT)
@ -2132,7 +2132,7 @@ void Variant::set(const Variant &p_index, const Variant &p_value, bool *r_valid)
}
}
} break; // 5
} break;
case RECT2: {
if (p_value.type != Variant::VECTOR2)
@ -2368,7 +2368,7 @@ void Variant::set(const Variant &p_index, const Variant &p_value, bool *r_valid)
}
}
} break; // 10
} break;
case AABB: {
if (p_value.type != Variant::VECTOR3)
@ -2544,9 +2544,9 @@ void Variant::set(const Variant &p_index, const Variant &p_value, bool *r_valid)
} break;
case STRING_NAME: {
} break; // 15
} break;
case NODE_PATH: {
} break; // 15
} break;
case _RID: {
} break;
case OBJECT: {
@ -2580,14 +2580,14 @@ void Variant::set(const Variant &p_index, const Variant &p_value, bool *r_valid)
valid = true; //always valid, i guess? should this really be ok?
return;
} break;
DEFAULT_OP_ARRAY_CMD(ARRAY, Array, ;, (*arr)[index] = p_value; return ) // 20
DEFAULT_OP_ARRAY_CMD(ARRAY, Array, ;, (*arr)[index] = p_value; return )
DEFAULT_OP_DVECTOR_SET(PACKED_BYTE_ARRAY, uint8_t, p_value.type != Variant::FLOAT && p_value.type != Variant::INT)
DEFAULT_OP_DVECTOR_SET(PACKED_INT32_ARRAY, int32_t, p_value.type != Variant::FLOAT && p_value.type != Variant::INT)
DEFAULT_OP_DVECTOR_SET(PACKED_INT64_ARRAY, int64_t, p_value.type != Variant::FLOAT && p_value.type != Variant::INT)
DEFAULT_OP_DVECTOR_SET(PACKED_FLOAT32_ARRAY, float, p_value.type != Variant::FLOAT && p_value.type != Variant::INT)
DEFAULT_OP_DVECTOR_SET(PACKED_FLOAT64_ARRAY, double, p_value.type != Variant::FLOAT && p_value.type != Variant::INT)
DEFAULT_OP_DVECTOR_SET(PACKED_STRING_ARRAY, String, p_value.type != Variant::STRING)
DEFAULT_OP_DVECTOR_SET(PACKED_VECTOR2_ARRAY, Vector2, p_value.type != Variant::VECTOR2) // 25
DEFAULT_OP_DVECTOR_SET(PACKED_VECTOR2_ARRAY, Vector2, p_value.type != Variant::VECTOR2)
DEFAULT_OP_DVECTOR_SET(PACKED_VECTOR3_ARRAY, Vector3, p_value.type != Variant::VECTOR3)
DEFAULT_OP_DVECTOR_SET(PACKED_COLOR_ARRAY, Color, p_value.type != Variant::COLOR)
default:
@ -2660,7 +2660,7 @@ Variant Variant::get(const Variant &p_index, bool *r_valid) const {
}
}
} break; // 5
} break;
case VECTOR2I: {
if (p_index.get_type() == Variant::INT || p_index.get_type() == Variant::FLOAT) {
@ -2688,7 +2688,7 @@ Variant Variant::get(const Variant &p_index, bool *r_valid) const {
}
}
} break; // 5
} break;
case RECT2: {
if (p_index.get_type() == Variant::STRING) {
@ -2867,7 +2867,7 @@ Variant Variant::get(const Variant &p_index, bool *r_valid) const {
}
}
} break; // 10
} break;
case AABB: {
if (p_index.get_type() == Variant::STRING) {
@ -3000,9 +3000,9 @@ Variant Variant::get(const Variant &p_index, bool *r_valid) const {
} break;
case STRING_NAME: {
} break; // 15
} break;
case NODE_PATH: {
} break; // 15
} break;
case _RID: {
} break;
case OBJECT: {
@ -3034,14 +3034,14 @@ Variant Variant::get(const Variant &p_index, bool *r_valid) const {
return *res;
}
} break;
DEFAULT_OP_ARRAY_CMD(ARRAY, const Array, ;, return (*arr)[index]) // 20
DEFAULT_OP_ARRAY_CMD(ARRAY, const Array, ;, return (*arr)[index])
DEFAULT_OP_DVECTOR_GET(PACKED_BYTE_ARRAY, uint8_t)
DEFAULT_OP_DVECTOR_GET(PACKED_INT32_ARRAY, int32_t)
DEFAULT_OP_DVECTOR_GET(PACKED_INT64_ARRAY, int64_t)
DEFAULT_OP_DVECTOR_GET(PACKED_FLOAT32_ARRAY, float)
DEFAULT_OP_DVECTOR_GET(PACKED_FLOAT64_ARRAY, double)
DEFAULT_OP_DVECTOR_GET(PACKED_STRING_ARRAY, String)
DEFAULT_OP_DVECTOR_GET(PACKED_VECTOR2_ARRAY, Vector2) // 25
DEFAULT_OP_DVECTOR_GET(PACKED_VECTOR2_ARRAY, Vector2)
DEFAULT_OP_DVECTOR_GET(PACKED_VECTOR3_ARRAY, Vector3)
DEFAULT_OP_DVECTOR_GET(PACKED_COLOR_ARRAY, Color)
default:
@ -3103,7 +3103,7 @@ bool Variant::in(const Variant &p_index, bool *r_valid) const {
const Dictionary *dic = reinterpret_cast<const Dictionary *>(_data._mem);
return dic->has(p_index);
} break; // 20
} break;
case ARRAY: {
const Array *arr = reinterpret_cast<const Array *>(_data._mem);
@ -3302,13 +3302,13 @@ void Variant::get_property_list(List<PropertyInfo> *p_list) const {
p_list->push_back(PropertyInfo(Variant::FLOAT, "x"));
p_list->push_back(PropertyInfo(Variant::FLOAT, "y"));
} break; // 5
} break;
case VECTOR2I: {
p_list->push_back(PropertyInfo(Variant::INT, "x"));
p_list->push_back(PropertyInfo(Variant::INT, "y"));
} break; // 5
} break;
case RECT2: {
p_list->push_back(PropertyInfo(Variant::VECTOR2, "position"));
@ -3360,7 +3360,7 @@ void Variant::get_property_list(List<PropertyInfo> *p_list) const {
p_list->push_back(PropertyInfo(Variant::FLOAT, "z"));
p_list->push_back(PropertyInfo(Variant::FLOAT, "w"));
} break; // 10
} break;
case AABB: {
p_list->push_back(PropertyInfo(Variant::VECTOR3, "position"));
p_list->push_back(PropertyInfo(Variant::VECTOR3, "size"));
@ -3394,9 +3394,9 @@ void Variant::get_property_list(List<PropertyInfo> *p_list) const {
} break;
case STRING_NAME: {
} break; // 15
} break;
case NODE_PATH: {
} break; // 15
} break;
case _RID: {
} break;
case OBJECT: {
@ -3427,14 +3427,14 @@ void Variant::get_property_list(List<PropertyInfo> *p_list) const {
}
}
} break;
case ARRAY: // 20
case ARRAY:
case PACKED_BYTE_ARRAY:
case PACKED_INT32_ARRAY:
case PACKED_INT64_ARRAY:
case PACKED_FLOAT32_ARRAY:
case PACKED_FLOAT64_ARRAY:
case PACKED_STRING_ARRAY:
case PACKED_VECTOR2_ARRAY: // 25
case PACKED_VECTOR2_ARRAY:
case PACKED_VECTOR3_ARRAY:
case PACKED_COLOR_ARRAY: {

View file

@ -1480,76 +1480,88 @@
<constant name="TYPE_VECTOR2" value="5" enum="Variant.Type">
Variable is of type [Vector2].
</constant>
<constant name="TYPE_RECT2" value="6" enum="Variant.Type">
<constant name="TYPE_VECTOR2I" value="6" enum="Variant.Type">
Variable is of type [Vector2i].
</constant>
<constant name="TYPE_RECT2" value="7" enum="Variant.Type">
Variable is of type [Rect2].
</constant>
<constant name="TYPE_VECTOR3" value="7" enum="Variant.Type">
<constant name="TYPE_RECT2I" value="8" enum="Variant.Type">
Variable is of type [Rect2i].
</constant>
<constant name="TYPE_VECTOR3" value="9" enum="Variant.Type">
Variable is of type [Vector3].
</constant>
<constant name="TYPE_TRANSFORM2D" value="8" enum="Variant.Type">
<constant name="TYPE_VECTOR3I" value="10" enum="Variant.Type">
Variable is of type [Vector3i].
</constant>
<constant name="TYPE_TRANSFORM2D" value="11" enum="Variant.Type">
Variable is of type [Transform2D].
</constant>
<constant name="TYPE_PLANE" value="9" enum="Variant.Type">
<constant name="TYPE_PLANE" value="12" enum="Variant.Type">
Variable is of type [Plane].
</constant>
<constant name="TYPE_QUAT" value="10" enum="Variant.Type">
<constant name="TYPE_QUAT" value="13" enum="Variant.Type">
Variable is of type [Quat].
</constant>
<constant name="TYPE_AABB" value="11" enum="Variant.Type">
<constant name="TYPE_AABB" value="14" enum="Variant.Type">
Variable is of type [AABB].
</constant>
<constant name="TYPE_BASIS" value="12" enum="Variant.Type">
<constant name="TYPE_BASIS" value="15" enum="Variant.Type">
Variable is of type [Basis].
</constant>
<constant name="TYPE_TRANSFORM" value="13" enum="Variant.Type">
<constant name="TYPE_TRANSFORM" value="16" enum="Variant.Type">
Variable is of type [Transform].
</constant>
<constant name="TYPE_COLOR" value="14" enum="Variant.Type">
<constant name="TYPE_COLOR" value="17" enum="Variant.Type">
Variable is of type [Color].
</constant>
<constant name="TYPE_STRING_NAME" value="15" enum="Variant.Type">
<constant name="TYPE_STRING_NAME" value="18" enum="Variant.Type">
Variable is of type [StringName].
</constant>
<constant name="TYPE_NODE_PATH" value="16" enum="Variant.Type">
<constant name="TYPE_NODE_PATH" value="19" enum="Variant.Type">
Variable is of type [NodePath].
</constant>
<constant name="TYPE_RID" value="17" enum="Variant.Type">
<constant name="TYPE_RID" value="20" enum="Variant.Type">
Variable is of type [RID].
</constant>
<constant name="TYPE_OBJECT" value="18" enum="Variant.Type">
<constant name="TYPE_OBJECT" value="21" enum="Variant.Type">
Variable is of type [Object].
</constant>
<constant name="TYPE_CALLABLE" value="19" enum="Variant.Type">
<constant name="TYPE_CALLABLE" value="22" enum="Variant.Type">
Variable is of type [Callable].
</constant>
<constant name="TYPE_SIGNAL" value="20" enum="Variant.Type">
<constant name="TYPE_SIGNAL" value="23" enum="Variant.Type">
Variable is of type [Signal].
</constant>
<constant name="TYPE_DICTIONARY" value="21" enum="Variant.Type">
<constant name="TYPE_DICTIONARY" value="24" enum="Variant.Type">
Variable is of type [Dictionary].
</constant>
<constant name="TYPE_ARRAY" value="22" enum="Variant.Type">
<constant name="TYPE_ARRAY" value="25" enum="Variant.Type">
Variable is of type [Array].
</constant>
<constant name="TYPE_RAW_ARRAY" value="23" enum="Variant.Type">
<constant name="TYPE_RAW_ARRAY" value="26" enum="Variant.Type">
Variable is of type [PackedByteArray].
</constant>
<constant name="TYPE_INT_ARRAY" value="24" enum="Variant.Type">
<constant name="TYPE_INT_ARRAY" value="27" enum="Variant.Type">
Variable is of type [PackedIntArray].
</constant>
<constant name="TYPE_REAL_ARRAY" value="25" enum="Variant.Type">
<constant name="TYPE_REAL_ARRAY" value="28" enum="Variant.Type">
Variable is of type [PackedRealArray].
</constant>
<constant name="TYPE_STRING_ARRAY" value="26" enum="Variant.Type">
<constant name="TYPE_STRING_ARRAY" value="29" enum="Variant.Type">
Variable is of type [PackedStringArray].
</constant>
<constant name="TYPE_VECTOR2_ARRAY" value="27" enum="Variant.Type">
<constant name="TYPE_VECTOR2_ARRAY" value="30" enum="Variant.Type">
Variable is of type [PackedVector2Array].
</constant>
<constant name="TYPE_VECTOR3_ARRAY" value="28" enum="Variant.Type">
<constant name="TYPE_VECTOR3_ARRAY" value="31" enum="Variant.Type">
Variable is of type [PackedVector3Array].
</constant>
<constant name="TYPE_COLOR_ARRAY" value="29" enum="Variant.Type">
<constant name="TYPE_COLOR_ARRAY" value="32" enum="Variant.Type">
Variable is of type [PackedColorArray].
</constant>
<constant name="TYPE_MAX" value="30" enum="Variant.Type">
<constant name="TYPE_MAX" value="33" enum="Variant.Type">
Represents the size of the [enum Variant.Type] enum.
</constant>
<constant name="OP_EQUAL" value="0" enum="Variant.Operator">

View file

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Rect2" version="4.0">
<brief_description>
2D axis-aligned bounding box.
2D axis-aligned bounding box using floating point coordinates.
</brief_description>
<description>
Rect2 consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
[Rect2] consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
It uses floating point coordinates.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
@ -36,6 +37,15 @@
Constructs a [Rect2] by x, y, width, and height.
</description>
</method>
<method name="Rect2">
<return type="Rect2">
</return>
<argument index="0" name="from" type="Rect2i">
</argument>
<description>
Constructs a [Rect2] from a [Rect2i].
</description>
</method>
<method name="abs">
<return type="Rect2">
</return>

52
doc/classes/Rect2i.xml Normal file
View file

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Rect2i" version="4.0">
<brief_description>
2D axis-aligned bounding box using integer coordinates.
</brief_description>
<description>
[Rect2i] consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
It uses integer coordinates.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
</tutorials>
<methods>
<method name="Rect2i">
<return type="Rect2i">
</return>
<argument index="0" name="position" type="Vector2">
</argument>
<argument index="1" name="size" type="Vector2">
</argument>
<description>
Constructs a [Rect2i] by position and size.
</description>
</method>
<method name="Rect2i">
<return type="Rect2i">
</return>
<argument index="0" name="x" type="int">
</argument>
<argument index="1" name="y" type="int">
</argument>
<argument index="2" name="width" type="int">
</argument>
<argument index="3" name="height" type="int">
</argument>
<description>
Constructs a [Rect2i] by x, y, width, and height.
</description>
</method>
<method name="Rect2i">
<return type="Rect2i">
</return>
<argument index="0" name="from" type="Rect2">
</argument>
<description>
Constructs a new [Rect2i] from [Rect2]. The floating point coordinates will be truncated.
</description>
</method>
</methods>
<constants>
</constants>
</class>

View file

@ -46,6 +46,15 @@
Constructs a new String from the given [Vector2].
</description>
</method>
<method name="String">
<return type="String">
</return>
<argument index="0" name="from" type="Vector2i">
</argument>
<description>
Constructs a new String from the given [Vector2i].
</description>
</method>
<method name="String">
<return type="String">
</return>
@ -55,6 +64,15 @@
Constructs a new String from the given [Rect2].
</description>
</method>
<method name="String">
<return type="String">
</return>
<argument index="0" name="from" type="Rect2i">
</argument>
<description>
Constructs a new String from the given [Rect2i].
</description>
</method>
<method name="String">
<return type="String">
</return>
@ -64,6 +82,15 @@
Constructs a new String from the given [Vector3].
</description>
</method>
<method name="String">
<return type="String">
</return>
<argument index="0" name="from" type="Vector3i">
</argument>
<description>
Constructs a new String from the given [Vector3i].
</description>
</method>
<method name="String">
<return type="String">
</return>
@ -133,6 +160,7 @@
<argument index="0" name="from" type="StringName">
</argument>
<description>
Constructs a new String from the given [StringName].
</description>
</method>
<method name="String">
@ -159,6 +187,7 @@
<argument index="0" name="from" type="Callable">
</argument>
<description>
Constructs a new String from the given [Callable].
</description>
</method>
<method name="String">
@ -167,6 +196,7 @@
<argument index="0" name="from" type="Signal">
</argument>
<description>
Constructs a new String from the given [Signal].
</description>
</method>
<method name="String">

View file

@ -1,15 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Vector2" version="4.0">
<brief_description>
Vector used for 2D math.
Vector used for 2D math using floating point coordinates.
</brief_description>
<description>
2-element structure that can be used to represent positions in 2D space or any other pair of numeric values.
It uses floating point coordinates.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
</tutorials>
<methods>
<method name="Vector2">
<return type="Vector2">
</return>
<argument index="0" name="from" type="Vector2i">
</argument>
<description>
Constructs a new [Vector2] from [Vector2i].
</description>
</method>
<method name="Vector2">
<return type="Vector2">
</return>
@ -18,7 +28,7 @@
<argument index="1" name="y" type="float">
</argument>
<description>
Constructs a new Vector2 from the given [code]x[/code] and [code]y[/code].
Constructs a new [Vector2] from the given [code]x[/code] and [code]y[/code].
</description>
</method>
<method name="abs">

61
doc/classes/Vector2i.xml Normal file
View file

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Vector2i" version="4.0">
<brief_description>
Vector used for 2D math using integer coordinates.
</brief_description>
<description>
2-element structure that can be used to represent positions in 2D space or any other pair of numeric values.
It uses integer coordinates.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
</tutorials>
<methods>
<method name="Vector2i">
<return type="Vector2i">
</return>
<argument index="0" name="x" type="int">
</argument>
<argument index="1" name="y" type="int">
</argument>
<description>
Constructs a new [Vector2i] from the given [code]x[/code] and [code]y[/code].
</description>
</method>
<method name="Vector2i">
<return type="Vector2i">
</return>
<argument index="0" name="from" type="Vector2">
</argument>
<description>
Constructs a new [Vector2i] from [Vector2]. The floating point coordinates will be truncated.
</description>
</method>
</methods>
<constants>
<constant name="AXIS_X" value="0">
Enumerated value for the X axis.
</constant>
<constant name="AXIS_Y" value="1">
Enumerated value for the Y axis.
</constant>
<constant name="ZERO" value="Vector2i( 0, 0 )">
Zero vector.
</constant>
<constant name="ONE" value="Vector2i( 1, 1 )">
One vector.
</constant>
<constant name="LEFT" value="Vector2i( -1, 0 )">
Left unit vector.
</constant>
<constant name="RIGHT" value="Vector2i( 1, 0 )">
Right unit vector.
</constant>
<constant name="UP" value="Vector2i( 0, -1 )">
Up unit vector.
</constant>
<constant name="DOWN" value="Vector2i( 0, 1 )">
Down unit vector.
</constant>
</constants>
</class>

View file

@ -1,15 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Vector3" version="4.0">
<brief_description>
Vector used for 3D math.
Vector used for 3D math using floating point coordinates.
</brief_description>
<description>
3-element structure that can be used to represent positions in 3D space or any other pair of numeric values.
It uses floating point coordinates.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
</tutorials>
<methods>
<method name="Vector3">
<return type="Vector3">
</return>
<argument index="0" name="from" type="Vector3i">
</argument>
<description>
Constructs a new [Vector3] from [Vector3i].
</description>
</method>
<method name="Vector3">
<return type="Vector3">
</return>
@ -20,7 +30,7 @@
<argument index="2" name="z" type="float">
</argument>
<description>
Returns a Vector3 with the given components.
Returns a [Vector3] with the given components.
</description>
</method>
<method name="abs">

72
doc/classes/Vector3i.xml Normal file
View file

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Vector3i" version="4.0">
<brief_description>
Vector used for 3D math using integer coordinates.
</brief_description>
<description>
3-element structure that can be used to represent positions in 3D space or any other pair of numeric values.
It uses integer coordinates.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
</tutorials>
<methods>
<method name="Vector3i">
<return type="Vector3i">
</return>
<argument index="0" name="x" type="int">
</argument>
<argument index="1" name="y" type="int">
</argument>
<argument index="2" name="z" type="int">
</argument>
<description>
Returns a [Vector3i] with the given components.
</description>
</method>
<method name="Vector3i">
<return type="Vector3i">
</return>
<argument index="0" name="from" type="Vector3">
</argument>
<description>
Constructs a new [Vector3i] from [Vector3]. The floating point coordinates will be truncated.
</description>
</method>
</methods>
<constants>
<constant name="AXIS_X" value="0">
Enumerated value for the X axis.
</constant>
<constant name="AXIS_Y" value="1">
Enumerated value for the Y axis.
</constant>
<constant name="AXIS_Z" value="2">
Enumerated value for the Z axis.
</constant>
<constant name="ZERO" value="Vector3i( 0, 0, 0 )">
Zero vector.
</constant>
<constant name="ONE" value="Vector3i( 1, 1, 1 )">
One vector.
</constant>
<constant name="LEFT" value="Vector3i( -1, 0, 0 )">
Left unit vector.
</constant>
<constant name="RIGHT" value="Vector3i( 1, 0, 0 )">
Right unit vector.
</constant>
<constant name="UP" value="Vector3i( 0, 1, 0 )">
Up unit vector.
</constant>
<constant name="DOWN" value="Vector3i( 0, -1, 0 )">
Down unit vector.
</constant>
<constant name="FORWARD" value="Vector3i( 0, 0, -1 )">
Forward unit vector.
</constant>
<constant name="BACK" value="Vector3i( 0, 0, 1 )">
Back unit vector.
</constant>
</constants>
</class>

View file

@ -198,7 +198,7 @@ void DocDump::dump(const String &p_file) {
default_arg_text = Variant::get_type_name(default_arg.get_type()) + "(" + default_arg_text + ")";
break;
case Variant::OBJECT:
case Variant::DICTIONARY: // 20
case Variant::DICTIONARY:
case Variant::ARRAY:
case Variant::_RID:

View file

@ -3173,7 +3173,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
editor->setup(min, max, step, hide_slider);
add_property_editor(p_path, editor);
} break; // 5
} break;
case Variant::RECT2: {
EditorPropertyRect2 *editor = memnew(EditorPropertyRect2);
double min = -65535, max = 65535, step = default_float_step;
@ -3260,7 +3260,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
editor->setup(min, max, step, hide_slider);
add_property_editor(p_path, editor);
} break; // 10
} break;
case Variant::AABB: {
EditorPropertyAABB *editor = memnew(EditorPropertyAABB);
double min = -65535, max = 65535, step = default_float_step;
@ -3349,7 +3349,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
}
add_property_editor(p_path, editor);
} break; // 15
} break;
case Variant::_RID: {
EditorPropertyRID *editor = memnew(EditorPropertyRID);
add_property_editor(p_path, editor);
@ -3388,7 +3388,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
EditorPropertyArray *editor = memnew(EditorPropertyArray);
editor->setup(Variant::PACKED_BYTE_ARRAY);
add_property_editor(p_path, editor);
} break; // 20
} break;
case Variant::PACKED_INT32_ARRAY: {
EditorPropertyArray *editor = memnew(EditorPropertyArray);
editor->setup(Variant::PACKED_INT32_ARRAY);
@ -3423,7 +3423,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
EditorPropertyArray *editor = memnew(EditorPropertyArray);
editor->setup(Variant::PACKED_VECTOR3_ARRAY);
add_property_editor(p_path, editor);
} break; // 25
} break;
case Variant::PACKED_COLOR_ARRAY: {
EditorPropertyArray *editor = memnew(EditorPropertyArray);
editor->setup(Variant::PACKED_COLOR_ARRAY);

View file

@ -56,31 +56,33 @@ typedef enum godot_variant_type {
GODOT_VARIANT_TYPE_STRING,
// math types
GODOT_VARIANT_TYPE_VECTOR2, // 5
GODOT_VARIANT_TYPE_VECTOR2,
GODOT_VARIANT_TYPE_VECTOR2I,
GODOT_VARIANT_TYPE_RECT2,
GODOT_VARIANT_TYPE_RECT2I,
GODOT_VARIANT_TYPE_VECTOR3,
GODOT_VARIANT_TYPE_VECTOR3I,
GODOT_VARIANT_TYPE_TRANSFORM2D,
GODOT_VARIANT_TYPE_PLANE,
GODOT_VARIANT_TYPE_QUAT, // 10
GODOT_VARIANT_TYPE_QUAT,
GODOT_VARIANT_TYPE_AABB,
GODOT_VARIANT_TYPE_BASIS,
GODOT_VARIANT_TYPE_TRANSFORM,
// misc types
GODOT_VARIANT_TYPE_COLOR,
GODOT_VARIANT_TYPE_NODE_PATH, // 15
GODOT_VARIANT_TYPE_NODE_PATH,
GODOT_VARIANT_TYPE_RID,
GODOT_VARIANT_TYPE_OBJECT,
GODOT_VARIANT_TYPE_DICTIONARY,
GODOT_VARIANT_TYPE_ARRAY, // 20
GODOT_VARIANT_TYPE_ARRAY,
// arrays
GODOT_VARIANT_TYPE_PACKED_BYTE_ARRAY,
GODOT_VARIANT_TYPE_PACKED_INT_ARRAY,
GODOT_VARIANT_TYPE_PACKED_REAL_ARRAY,
GODOT_VARIANT_TYPE_PACKED_STRING_ARRAY,
GODOT_VARIANT_TYPE_PACKED_VECTOR2_ARRAY, // 25
GODOT_VARIANT_TYPE_PACKED_VECTOR2_ARRAY,
GODOT_VARIANT_TYPE_PACKED_VECTOR3_ARRAY,
GODOT_VARIANT_TYPE_PACKED_COLOR_ARRAY,
} godot_variant_type;