Skip to content

Commit 906c00c

Browse files
committed
Expose vec/arr to string functions in VectorND
1 parent a013daa commit 906c00c

File tree

5 files changed

+37
-8
lines changed

5 files changed

+37
-8
lines changed

addons/nd/doc_classes/VectorND.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@
4040
Returns the angle in radians between two N-dimensional vectors. The dimensions of the vectors do not need to match.
4141
</description>
4242
</method>
43+
<method name="arr_to_string" qualifiers="static">
44+
<return type="String" />
45+
<param index="0" name="vectors" type="PackedFloat64Array[]" />
46+
<description>
47+
Converts an array of VectorN (array of [PackedFloat64Array]) to a string representation, with the outer brackets denoting the array and inner parenthesis denoting each vector. For example, [code][(1.0, 2.0), (3.0, 4.0)][/code].
48+
</description>
49+
</method>
4350
<method name="average" qualifiers="static">
4451
<return type="PackedFloat64Array" />
4552
<param index="0" name="vectors" type="PackedFloat64Array[]" />
@@ -475,6 +482,13 @@
475482
Returns a new VectorN ([PackedFloat64Array]) that has the value of [param value] on the given [param axis] index, and [code]0.0[/code] on all axes with lower indices.
476483
</description>
477484
</method>
485+
<method name="vec_to_string" qualifiers="static">
486+
<return type="String" />
487+
<param index="0" name="vector" type="PackedFloat64Array" />
488+
<description>
489+
Converts the given VectorN ([PackedFloat64Array]) to a string representation. For example, [code][1.0, 2.0, 3.0][/code] will be converted to [code]"(1.0, 2.0, 3.0)"[/code].
490+
</description>
491+
</method>
478492
<method name="with_dimension" qualifiers="static">
479493
<return type="PackedFloat64Array" />
480494
<param index="0" name="vector" type="PackedFloat64Array" />

math/basis_nd.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -863,7 +863,7 @@ String BasisND::to_string() {
863863
const int column_count = _columns.size();
864864
for (int i = 0; i < column_count; i++) {
865865
const VectorN &column = _columns[i];
866-
ret += String::num_int64(i) + ":" + VectorND::to_string(column);
866+
ret += String::num_int64(i) + ":" + VectorND::vec_to_string(column);
867867
if (i < column_count - 1) {
868868
ret += ", ";
869869
}

math/transform_nd.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -968,12 +968,12 @@ String TransformND::to_string() {
968968
const int column_count = _columns.size();
969969
for (int i = 0; i < column_count; i++) {
970970
const VectorN &column = _columns[i];
971-
ret += String::num_int64(i) + ":" + VectorND::to_string(column);
971+
ret += String::num_int64(i) + ":" + VectorND::vec_to_string(column);
972972
if (i < column_count - 1) {
973973
ret += ", ";
974974
}
975975
}
976-
ret += "], O" + VectorND::to_string(_origin) + ")";
976+
ret += "], O" + VectorND::vec_to_string(_origin) + ")";
977977
return ret;
978978
}
979979

math/vector_nd.cpp

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -938,7 +938,7 @@ Vector4 VectorND::to_4d(const VectorN &p_vector) {
938938
return Vector4();
939939
}
940940

941-
String VectorND::to_string(const VectorN &p_vector) {
941+
String VectorND::vec_to_string(const VectorN &p_vector) {
942942
String str = "(";
943943
for (int64_t i = 0; i < p_vector.size(); i++) {
944944
str += String::num(p_vector[i]);
@@ -950,10 +950,22 @@ String VectorND::to_string(const VectorN &p_vector) {
950950
return str;
951951
}
952952

953-
String VectorND::to_string(const Vector<VectorN> &p_vectors) {
953+
String VectorND::arr_to_string(const Vector<VectorN> &p_vectors) {
954954
String str = "[";
955955
for (int64_t i = 0; i < p_vectors.size(); i++) {
956-
str += VectorND::to_string(p_vectors[i]);
956+
str += VectorND::vec_to_string(p_vectors[i]);
957+
if (i < p_vectors.size() - 1) {
958+
str += ", ";
959+
}
960+
}
961+
str += "]";
962+
return str;
963+
}
964+
965+
String VectorND::arr_to_string_bind(const TypedArray<VectorN> &p_vectors) {
966+
String str = "[";
967+
for (int64_t i = 0; i < p_vectors.size(); i++) {
968+
str += VectorND::vec_to_string(PackedFloat64Array(p_vectors[i]));
957969
if (i < p_vectors.size() - 1) {
958970
str += ", ";
959971
}
@@ -1031,4 +1043,6 @@ void VectorND::_bind_methods() {
10311043
ClassDB::bind_static_method("VectorND", D_METHOD("to_2d", "vector"), &VectorND::to_2d);
10321044
ClassDB::bind_static_method("VectorND", D_METHOD("to_3d", "vector"), &VectorND::to_3d);
10331045
ClassDB::bind_static_method("VectorND", D_METHOD("to_4d", "vector"), &VectorND::to_4d);
1046+
ClassDB::bind_static_method("VectorND", D_METHOD("vec_to_string", "vector"), &VectorND::vec_to_string);
1047+
ClassDB::bind_static_method("VectorND", D_METHOD("arr_to_string", "vectors"), &VectorND::arr_to_string_bind);
10341048
}

math/vector_nd.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,9 @@ class VectorND : public Object {
120120
static Vector2 to_2d(const VectorN &p_vector);
121121
static Vector3 to_3d(const VectorN &p_vector);
122122
static Vector4 to_4d(const VectorN &p_vector);
123-
static String to_string(const VectorN &p_vector);
124-
static String to_string(const Vector<VectorN> &p_vectors);
123+
static String vec_to_string(const VectorN &p_vector);
124+
static String arr_to_string(const Vector<VectorN> &p_vectors);
125+
static String arr_to_string_bind(const TypedArray<VectorN> &p_vectors);
125126

126127
static VectorND *get_singleton() { return singleton; }
127128
VectorND() { singleton = this; }

0 commit comments

Comments
 (0)