summaryrefslogtreecommitdiff
path: root/scene/2d
diff options
context:
space:
mode:
authorKanabenki <18357657+Kanabenki@users.noreply.github.com>2019-04-08 11:14:10 +0200
committerKanabenki <18357657+Kanabenki@users.noreply.github.com>2019-04-08 11:29:13 +0200
commit714953b3ac697f0925c740581880cb71e2f94777 (patch)
tree3d906160c48f40ffedd912163db4f966c5a820de /scene/2d
parent5a64c679cfc5463afd4a703b1c6e437d894b22b1 (diff)
Add optional position argument for add_point in Line2D
Diffstat (limited to 'scene/2d')
-rw-r--r--scene/2d/line_2d.cpp10
-rw-r--r--scene/2d/line_2d.h2
2 files changed, 8 insertions, 4 deletions
diff --git a/scene/2d/line_2d.cpp b/scene/2d/line_2d.cpp
index 73692e0535..ba06b3ebff 100644
--- a/scene/2d/line_2d.cpp
+++ b/scene/2d/line_2d.cpp
@@ -120,8 +120,12 @@ void Line2D::clear_points() {
}
}
-void Line2D::add_point(Vector2 pos) {
- _points.append(pos);
+void Line2D::add_point(Vector2 pos, int atpos) {
+ if (atpos < 0 || _points.size() < atpos) {
+ _points.append(pos);
+ } else {
+ _points.insert(atpos, pos);
+ }
update();
}
@@ -318,7 +322,7 @@ void Line2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_point_count"), &Line2D::get_point_count);
- ClassDB::bind_method(D_METHOD("add_point", "position"), &Line2D::add_point);
+ ClassDB::bind_method(D_METHOD("add_point", "position", "at_position"), &Line2D::add_point, DEFVAL(-1));
ClassDB::bind_method(D_METHOD("remove_point", "i"), &Line2D::remove_point);
ClassDB::bind_method(D_METHOD("clear_points"), &Line2D::clear_points);
diff --git a/scene/2d/line_2d.h b/scene/2d/line_2d.h
index 32befab2d3..8a6f7b2dc5 100644
--- a/scene/2d/line_2d.h
+++ b/scene/2d/line_2d.h
@@ -72,7 +72,7 @@ public:
void clear_points();
- void add_point(Vector2 pos);
+ void add_point(Vector2 pos, int atpos = -1);
void remove_point(int i);
void set_width(float width);