aboutsummaryrefslogtreecommitdiff
path: root/core/math/math_2d.cpp
diff options
context:
space:
mode:
authorFerenc Arn2017-03-29 11:51:31 -0500
committerFerenc Arn2017-03-29 12:04:49 -0500
commit97d510531a56acba1898a863efe113bf24acc0a2 (patch)
treeb353e10ee5bfcd38ef9d2d95d0b40a37a44d0f7a /core/math/math_2d.cpp
parent000e8730088ed241439a311c1bd0167f741ffbd1 (diff)
downloadgodot-97d510531a56acba1898a863efe113bf24acc0a2.tar.gz
godot-97d510531a56acba1898a863efe113bf24acc0a2.tar.zst
godot-97d510531a56acba1898a863efe113bf24acc0a2.zip
Diffstat (limited to 'core/math/math_2d.cpp')
-rw-r--r--core/math/math_2d.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/core/math/math_2d.cpp b/core/math/math_2d.cpp
index 021b1fbf5..8f942c423 100644
--- a/core/math/math_2d.cpp
+++ b/core/math/math_2d.cpp
@@ -449,7 +449,7 @@ real_t Transform2D::get_rotation() const {
real_t det = basis_determinant();
Transform2D m = orthonormalized();
if (det < 0) {
- m.scale_basis(Size2(-1, -1));
+ m.scale_basis(Size2(1, -1)); // convention to separate rotation and reflection for 2D is to absorb a flip along y into scaling.
}
return Math::atan2(m[0].y, m[0].x);
}
@@ -477,7 +477,7 @@ Transform2D::Transform2D(real_t p_rot, const Vector2 &p_pos) {
Size2 Transform2D::get_scale() const {
real_t det_sign = basis_determinant() > 0 ? 1 : -1;
- return det_sign * Size2(elements[0].length(), elements[1].length());
+ return Size2(elements[0].length(), det_sign * elements[1].length());
}
void Transform2D::scale(const Size2 &p_scale) {