aboutsummaryrefslogtreecommitdiff
path: root/scene/resources/shape_line_2d.cpp
diff options
context:
space:
mode:
authorRémi Verschelde2018-01-03 11:15:28 +0100
committerGitHub2018-01-03 11:15:28 +0100
commit459ee51338ff9ffb8248a4351eee3b558438aa50 (patch)
treeb366aad4e6ee15907af75cb659f42b5ec79b6f58 /scene/resources/shape_line_2d.cpp
parent0b235a5efa9f6825e638d98d9eaadcc11423b3c3 (diff)
parent8505871a87b59b27acc0912a6dd815231c3b78b1 (diff)
downloadgodot-459ee51338ff9ffb8248a4351eee3b558438aa50.tar.gz
godot-459ee51338ff9ffb8248a4351eee3b558438aa50.tar.zst
godot-459ee51338ff9ffb8248a4351eee3b558438aa50.zip
Merge pull request #15093 from poke1024/canvas-editor-select
More exact picking for canvas editor
Diffstat (limited to 'scene/resources/shape_line_2d.cpp')
-rw-r--r--scene/resources/shape_line_2d.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/scene/resources/shape_line_2d.cpp b/scene/resources/shape_line_2d.cpp
index c6cc3659f..9548d3537 100644
--- a/scene/resources/shape_line_2d.cpp
+++ b/scene/resources/shape_line_2d.cpp
@@ -30,6 +30,21 @@
#include "shape_line_2d.h"
#include "servers/physics_2d_server.h"
#include "servers/visual_server.h"
+
+bool LineShape2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const {
+
+ Vector2 point = get_d() * get_normal();
+ Vector2 l[2][2] = { { point - get_normal().tangent() * 100, point + get_normal().tangent() * 100 }, { point, point + get_normal() * 30 } };
+
+ for (int i = 0; i < 2; i++) {
+ Vector2 closest = Geometry::get_closest_point_to_segment_2d(p_point, l[i]);
+ if (p_point.distance_to(closest) < p_tolerance)
+ return true;
+ }
+
+ return false;
+}
+
void LineShape2D::_update_shape() {
Array arr;