Skip to content

Commit

Permalink
Fix stringification of Vector4
Browse files Browse the repository at this point in the history
  • Loading branch information
KoBeWi committed Nov 22, 2024
1 parent f952bfe commit ed20bfe
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 9 deletions.
7 changes: 6 additions & 1 deletion core/math/projection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -915,7 +915,12 @@ Projection::operator String() const {
String str;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
str += String((j > 0) ? ", " : "\n") + rtos(columns[i][j]);
if (j > 0) {
str += ", ";
} else if (i > 0) {
str += "\n";
}
str += rtos(columns[i][j]);
}
}

Expand Down
2 changes: 1 addition & 1 deletion core/math/vector4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ Vector4 Vector4::clampf(real_t p_min, real_t p_max) const {
}

Vector4::operator String() const {
return "(" + String::num_real(x, false) + ", " + String::num_real(y, false) + ", " + String::num_real(z, false) + ", " + String::num_real(w, false) + ")";
return "(" + String::num_real(x, true) + ", " + String::num_real(y, true) + ", " + String::num_real(z, true) + ", " + String::num_real(w, true) + ")";
}

static_assert(sizeof(Vector4) == 4 * sizeof(real_t));
Expand Down
10 changes: 7 additions & 3 deletions modules/gdscript/tests/scripts/runtime/features/stringify.gd
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,25 @@ func test():
print(-1.25, 0.25, 1.25)
print("hello world")

print(Vector2(0.25, 0.25))
print(Vector2(0.25, 1))
print(Vector2i(0, 0))

print(Rect2(0.25, 0.25, 0.5, 0.5))
print(Rect2(0.25, 0.25, 0.5, 1))
print(Rect2i(0, 0, 0, 0))

print(Vector3(0.25, 0.25, 0.25))
print(Vector3(0.25, 0.25, 1))
print(Vector3i(0, 0, 0))

print(Vector4(0.25, 0.25, 0.25, 1))
print(Vector4i(0, 0, 0, 0))

print(Transform2D.IDENTITY)
print(Plane(1, 2, 3, 4))
print(Quaternion(1, 2, 3, 4))
print(AABB(Vector3.ZERO, Vector3.ONE))
print(Basis.from_euler(Vector3(0, 0, 0)))
print(Transform3D.IDENTITY)
print(Projection.IDENTITY)

print(Color(1, 2, 3, 4))
print(StringName("hello"))
Expand Down
14 changes: 10 additions & 4 deletions modules/gdscript/tests/scripts/runtime/features/stringify.out
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,24 @@ truefalse
-101
-1.250.251.25
hello world
(0.25, 0.25)
(0.25, 1.0)
(0, 0)
[P: (0.25, 0.25), S: (0.5, 0.5)]
[P: (0.25, 0.25), S: (0.5, 1.0)]
[P: (0, 0), S: (0, 0)]
(0.25, 0.25, 0.25)
(0.25, 0.25, 1.0)
(0, 0, 0)
(0.25, 0.25, 0.25, 1.0)
(0, 0, 0, 0)
[X: (1.0, 0.0), Y: (0.0, 1.0), O: (0.0, 0.0)]
[N: (1.0, 2.0, 3.0), D: 4]
(1, 2, 3, 4)
[P: (0.0, 0.0, 0.0), S: (1.0, 1.0, 1.0)]
[X: (1.0, 0.0, 0.0), Y: (0.0, 1.0, 0.0), Z: (0.0, 0.0, 1.0)]
[X: (1.0, 0.0, 0.0), Y: (0.0, 1.0, 0.0), Z: (0.0, 0.0, 1.0), O: (0.0, 0.0, 0.0)]
1.0, 0.0, 0.0, 0.0
0.0, 1.0, 0.0, 0.0
0.0, 0.0, 1.0, 0.0
0.0, 0.0, 0.0, 1.0
(1.0, 2.0, 3.0, 4.0)
hello
hello/world
Expand All @@ -32,4 +38,4 @@ Node::[signal]property_list_changed
[(1.0, 1.0), (0.0, 0.0)]
[(1.0, 1.0, 1.0), (0.0, 0.0, 0.0)]
[(1.0, 0.0, 0.0, 1.0), (0.0, 0.0, 1.0, 1.0), (0.0, 1.0, 0.0, 1.0)]
[(1, 1, 1, 1), (0, 0, 0, 0)]
[(1.0, 1.0, 1.0, 1.0), (0.0, 0.0, 0.0, 0.0)]

0 comments on commit ed20bfe

Please sign in to comment.