summaryrefslogtreecommitdiffstats
path: root/core/math/transform_2d.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2021-06-06 01:29:20 +0200
committerGitHub <noreply@github.com>2021-06-06 01:29:20 +0200
commit94c31ba3006b071a6fe03b29a86d0a415351a50f (patch)
treef25a24d54a7370e6f972729ea53131fb5f61f7c6 /core/math/transform_2d.cpp
parent7085c0d80110c4c3f90fcc12f609650144e08712 (diff)
parent8aa3c2f0918707c2243b86ac53c02c27ceb9a266 (diff)
downloadredot-engine-94c31ba3006b071a6fe03b29a86d0a415351a50f.tar.gz
Merge pull request #47872 from TwistedTwigleg/GSOC_2020_Working_Branch_2D_IK_SQUISHED
New and improved IK system for Skeleton2D - Squished
Diffstat (limited to 'core/math/transform_2d.cpp')
-rw-r--r--core/math/transform_2d.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/core/math/transform_2d.cpp b/core/math/transform_2d.cpp
index 4a521b96ae..9189234d04 100644
--- a/core/math/transform_2d.cpp
+++ b/core/math/transform_2d.cpp
@@ -158,6 +158,13 @@ bool Transform2D::is_equal_approx(const Transform2D &p_transform) const {
return elements[0].is_equal_approx(p_transform.elements[0]) && elements[1].is_equal_approx(p_transform.elements[1]) && elements[2].is_equal_approx(p_transform.elements[2]);
}
+Transform2D Transform2D::looking_at(const Vector2 &p_target) const {
+ Transform2D return_trans = Transform2D(get_rotation(), get_origin());
+ Vector2 target_position = affine_inverse().xform(p_target);
+ return_trans.set_rotation(return_trans.get_rotation() + (target_position * get_scale()).angle());
+ return return_trans;
+}
+
bool Transform2D::operator==(const Transform2D &p_transform) const {
for (int i = 0; i < 3; i++) {
if (elements[i] != p_transform.elements[i]) {