Curve2D/3D: Add clear_points method.

Adds a method to the Curve2D and Curve3D classes to easily clear the curve.
So you don't have to remove each point manually.

(cherry picked from commit e741da869a)
This commit is contained in:
Andreas Haas
2016-12-03 21:35:59 +01:00
committed by Rémi Verschelde
parent 01f3399ed0
commit fa816730c0
2 changed files with 21 additions and 0 deletions

View File

@@ -464,6 +464,14 @@ void Curve2D::remove_point(int p_index) {
emit_signal(CoreStringNames::get_singleton()->changed);
}
void Curve2D::clear_points() {
if (!points.empty()) {
points.clear();
baked_cache_dirty=true;
emit_signal(CoreStringNames::get_singleton()->changed);
}
}
Vector2 Curve2D::interpolate(int p_index, float p_offset) const {
int pc = points.size();
@@ -790,6 +798,7 @@ void Curve2D::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_point_out","idx","pos"),&Curve2D::set_point_out);
ObjectTypeDB::bind_method(_MD("get_point_out","idx"),&Curve2D::get_point_out);
ObjectTypeDB::bind_method(_MD("remove_point","idx"),&Curve2D::remove_point);
ObjectTypeDB::bind_method(_MD("clear_points"),&Curve2D::clear_points);
ObjectTypeDB::bind_method(_MD("interpolate","idx","t"),&Curve2D::interpolate);
ObjectTypeDB::bind_method(_MD("interpolatef","fofs"),&Curve2D::interpolatef);
//ObjectTypeDB::bind_method(_MD("bake","subdivs"),&Curve2D::bake,DEFVAL(10));
@@ -930,6 +939,15 @@ void Curve3D::remove_point(int p_index) {
emit_signal(CoreStringNames::get_singleton()->changed);
}
void Curve3D::clear_points() {
if (!points.empty()) {
points.clear();
baked_cache_dirty=true;
emit_signal(CoreStringNames::get_singleton()->changed);
}
}
Vector3 Curve3D::interpolate(int p_index, float p_offset) const {
int pc = points.size();
@@ -1322,6 +1340,7 @@ void Curve3D::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_point_out","idx","pos"),&Curve3D::set_point_out);
ObjectTypeDB::bind_method(_MD("get_point_out","idx"),&Curve3D::get_point_out);
ObjectTypeDB::bind_method(_MD("remove_point","idx"),&Curve3D::remove_point);
ObjectTypeDB::bind_method(_MD("clear_points"),&Curve3D::clear_points);
ObjectTypeDB::bind_method(_MD("interpolate","idx","t"),&Curve3D::interpolate);
ObjectTypeDB::bind_method(_MD("interpolatef","fofs"),&Curve3D::interpolatef);
//ObjectTypeDB::bind_method(_MD("bake","subdivs"),&Curve3D::bake,DEFVAL(10));

View File

@@ -133,6 +133,7 @@ public:
void set_point_out(int p_index, const Vector2& p_out);
Vector2 get_point_out(int p_index) const;
void remove_point(int p_index);
void clear_points();
Vector2 interpolate(int p_index, float p_offset) const;
Vector2 interpolatef(real_t p_findex) const;
@@ -211,6 +212,7 @@ public:
void set_point_out(int p_index, const Vector3& p_out);
Vector3 get_point_out(int p_index) const;
void remove_point(int p_index);
void clear_points();
Vector3 interpolate(int p_index, float p_offset) const;
Vector3 interpolatef(real_t p_findex) const;