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.
This commit is contained in:
parent
4d8bed3321
commit
e741da869a
2 changed files with 21 additions and 0 deletions
|
@ -464,6 +464,14 @@ void Curve2D::remove_point(int p_index) {
|
||||||
emit_signal(CoreStringNames::get_singleton()->changed);
|
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 {
|
Vector2 Curve2D::interpolate(int p_index, float p_offset) const {
|
||||||
|
|
||||||
int pc = points.size();
|
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("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("get_point_out","idx"),&Curve2D::get_point_out);
|
||||||
ObjectTypeDB::bind_method(_MD("remove_point","idx"),&Curve2D::remove_point);
|
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("interpolate","idx","t"),&Curve2D::interpolate);
|
||||||
ObjectTypeDB::bind_method(_MD("interpolatef","fofs"),&Curve2D::interpolatef);
|
ObjectTypeDB::bind_method(_MD("interpolatef","fofs"),&Curve2D::interpolatef);
|
||||||
//ObjectTypeDB::bind_method(_MD("bake","subdivs"),&Curve2D::bake,DEFVAL(10));
|
//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);
|
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 {
|
Vector3 Curve3D::interpolate(int p_index, float p_offset) const {
|
||||||
|
|
||||||
int pc = points.size();
|
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("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("get_point_out","idx"),&Curve3D::get_point_out);
|
||||||
ObjectTypeDB::bind_method(_MD("remove_point","idx"),&Curve3D::remove_point);
|
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("interpolate","idx","t"),&Curve3D::interpolate);
|
||||||
ObjectTypeDB::bind_method(_MD("interpolatef","fofs"),&Curve3D::interpolatef);
|
ObjectTypeDB::bind_method(_MD("interpolatef","fofs"),&Curve3D::interpolatef);
|
||||||
//ObjectTypeDB::bind_method(_MD("bake","subdivs"),&Curve3D::bake,DEFVAL(10));
|
//ObjectTypeDB::bind_method(_MD("bake","subdivs"),&Curve3D::bake,DEFVAL(10));
|
||||||
|
|
|
@ -133,6 +133,7 @@ public:
|
||||||
void set_point_out(int p_index, const Vector2& p_out);
|
void set_point_out(int p_index, const Vector2& p_out);
|
||||||
Vector2 get_point_out(int p_index) const;
|
Vector2 get_point_out(int p_index) const;
|
||||||
void remove_point(int p_index);
|
void remove_point(int p_index);
|
||||||
|
void clear_points();
|
||||||
|
|
||||||
Vector2 interpolate(int p_index, float p_offset) const;
|
Vector2 interpolate(int p_index, float p_offset) const;
|
||||||
Vector2 interpolatef(real_t p_findex) const;
|
Vector2 interpolatef(real_t p_findex) const;
|
||||||
|
@ -211,6 +212,7 @@ public:
|
||||||
void set_point_out(int p_index, const Vector3& p_out);
|
void set_point_out(int p_index, const Vector3& p_out);
|
||||||
Vector3 get_point_out(int p_index) const;
|
Vector3 get_point_out(int p_index) const;
|
||||||
void remove_point(int p_index);
|
void remove_point(int p_index);
|
||||||
|
void clear_points();
|
||||||
|
|
||||||
Vector3 interpolate(int p_index, float p_offset) const;
|
Vector3 interpolate(int p_index, float p_offset) const;
|
||||||
Vector3 interpolatef(real_t p_findex) const;
|
Vector3 interpolatef(real_t p_findex) const;
|
||||||
|
|
Loading…
Reference in a new issue