1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-20 14:45:44 +00:00

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));