Procházet zdrojové kódy

Added method to clear all points in Line2D

(cherry picked from commit 61b22beeae31590fc726cb593252c6fa5edc13d5)
Chaosus před 6 roky
rodič
revize
4f3fc559bc
3 změnil soubory, kde provedl 19 přidání a 0 odebrání
  1. 7 0
      doc/classes/Line2D.xml
  2. 10 0
      scene/2d/line_2d.cpp
  3. 2 0
      scene/2d/line_2d.h

+ 7 - 0
doc/classes/Line2D.xml

@@ -18,6 +18,13 @@
 				Add a point at the [code]position[/code]. Appends the point at the end of the line.
 			</description>
 		</method>
+		<method name="clear_points">
+			<return type="void">
+			</return>
+			<description>
+				Removes all points from the line.
+			</description>
+		</method>
 		<method name="get_point_count" qualifiers="const">
 			<return type="int">
 			</return>

+ 10 - 0
scene/2d/line_2d.cpp

@@ -112,6 +112,14 @@ int Line2D::get_point_count() const {
 	return _points.size();
 }
 
+void Line2D::clear_points() {
+	int count = _points.size();
+	if (count > 0) {
+		_points.resize(0);
+		update();
+	}
+}
+
 void Line2D::add_point(Vector2 pos) {
 	_points.append(pos);
 	update();
@@ -313,6 +321,8 @@ void Line2D::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("add_point", "position"), &Line2D::add_point);
 	ClassDB::bind_method(D_METHOD("remove_point", "i"), &Line2D::remove_point);
 
+	ClassDB::bind_method(D_METHOD("clear_points"), &Line2D::clear_points);
+
 	ClassDB::bind_method(D_METHOD("set_width", "width"), &Line2D::set_width);
 	ClassDB::bind_method(D_METHOD("get_width"), &Line2D::get_width);
 

+ 2 - 0
scene/2d/line_2d.h

@@ -70,6 +70,8 @@ public:
 
 	int get_point_count() const;
 
+	void clear_points();
+
 	void add_point(Vector2 pos);
 	void remove_point(int i);