diff options
| author | Bojidar Marinov | 2017-07-23 14:37:26 +0300 |
|---|---|---|
| committer | Bojidar Marinov | 2017-07-23 14:37:26 +0300 |
| commit | 140f189a65f991d5b44d49ad6b710f7512862d16 (patch) | |
| tree | 514c34550c6df621353e0163ebbeabf2e14ff8db /scene/2d/node_2d.cpp | |
| parent | aa798ebf8fcc0a72c837c7daea63e6d9ef51ff30 (diff) | |
| download | godot-140f189a65f991d5b44d49ad6b710f7512862d16.tar.gz godot-140f189a65f991d5b44d49ad6b710f7512862d16.tar.zst godot-140f189a65f991d5b44d49ad6b710f7512862d16.zip | |
Add .to_local/.to_global methods on Node2D and Spatial
Those are just helpers around get_global_transform().affine_inverse().xform() and get_global_transform().xform().
Closes #6087
Diffstat (limited to '')
| -rw-r--r-- | scene/2d/node_2d.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/scene/2d/node_2d.cpp b/scene/2d/node_2d.cpp index 9de46fd93..89b5981dc 100644 --- a/scene/2d/node_2d.cpp +++ b/scene/2d/node_2d.cpp @@ -398,6 +398,16 @@ float Node2D::get_angle_to(const Vector2 &p_pos) const { return (get_global_transform().affine_inverse().xform(p_pos)).angle(); } +Point2 Node2D::to_local(Point2 p_global) const { + + return get_global_transform().affine_inverse().xform(p_global); +} + +Point2 Node2D::to_global(Point2 p_local) const { + + return get_global_transform().xform(p_local); +} + void Node2D::_bind_methods() { // TODO: Obsolete those two methods (old name) properly (GH-4397) @@ -436,6 +446,9 @@ void Node2D::_bind_methods() { ClassDB::bind_method(D_METHOD("look_at", "point"), &Node2D::look_at); ClassDB::bind_method(D_METHOD("get_angle_to", "point"), &Node2D::get_angle_to); + ClassDB::bind_method(D_METHOD("to_local", "global_point"), &Node2D::to_local); + ClassDB::bind_method(D_METHOD("to_global", "local_point"), &Node2D::to_global); + ClassDB::bind_method(D_METHOD("set_z", "z"), &Node2D::set_z); ClassDB::bind_method(D_METHOD("get_z"), &Node2D::get_z); |
