diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2021-06-06 01:29:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-06 01:29:20 +0200 |
commit | 94c31ba3006b071a6fe03b29a86d0a415351a50f (patch) | |
tree | f25a24d54a7370e6f972729ea53131fb5f61f7c6 /core/math/transform_2d.cpp | |
parent | 7085c0d80110c4c3f90fcc12f609650144e08712 (diff) | |
parent | 8aa3c2f0918707c2243b86ac53c02c27ceb9a266 (diff) | |
download | redot-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.cpp | 7 |
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]) { |