diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp index dd4fa992ac..30af9b0094 100644 --- a/scene/animation/animation_player.cpp +++ b/scene/animation/animation_player.cpp @@ -540,7 +540,6 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd,float p_delta,flo float len=cd.from->animation->get_length(); bool loop=cd.from->animation->has_loop(); - bool loop_interpolation=cd.from->animation->has_loop_interpolation(); if (!loop) { @@ -566,21 +565,10 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd,float p_delta,flo } - } else if (loop_interpolation) { + } else { next_pos=Math::fposmod(next_pos,len); - } else { - - if (next_pos<0 || next_pos>len) { - if (!backwards) - next_pos=0; - else if (backwards) - next_pos=len; - } - // fix delta - not sure if needed here - delta=next_pos-cd.pos; - } cd.pos=next_pos; diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp index 8be39e3021..098801bcf5 100644 --- a/scene/resources/animation.cpp +++ b/scene/resources/animation.cpp @@ -38,8 +38,6 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) { set_length(p_value); else if (name=="loop") set_loop(p_value); - else if (name=="loop_interpolation") - set_loop_interpolation(p_value); else if (name=="step") set_step(p_value); else if (name.begins_with("tracks/")) { @@ -270,8 +268,6 @@ bool Animation::_get(const StringName& p_name,Variant &r_ret) const { r_ret= length; else if (name=="loop") r_ret= loop; - else if (name=="loop_interpolation") - r_ret= loop_interpolation; else if (name=="step") r_ret= step; else if (name.begins_with("tracks/")) { @@ -437,7 +433,6 @@ void Animation::_get_property_list( List *p_list) const { p_list->push_back( PropertyInfo( Variant::REAL, "length", PROPERTY_HINT_RANGE, "0.001,99999,0.001")); p_list->push_back( PropertyInfo( Variant::BOOL, "loop" )); - p_list->push_back( PropertyInfo( Variant::BOOL, "loop_interpolation")); p_list->push_back( PropertyInfo( Variant::REAL, "step", PROPERTY_HINT_RANGE, "0,4096,0.001" )); for (int i=0;i >& p_keys, float p_time, Inter float c=0; // prepare for all cases of interpolation - if (loop && loop_interpolation) { + if (loop) { // loop if (idx>=0) { @@ -1632,19 +1627,10 @@ void Animation::set_loop(bool p_enabled) { loop=p_enabled; emit_changed(); } -void Animation::set_loop_interpolation(bool p_enabled) { - - loop_interpolation=p_enabled; - emit_changed(); -} bool Animation::has_loop() const { return loop; } -bool Animation::has_loop_interpolation() const { - - return loop_interpolation; -} void Animation::track_move_up(int p_track) { @@ -1741,9 +1727,7 @@ void Animation::_bind_methods() { ObjectTypeDB::bind_method(_MD("get_length"),&Animation::get_length); ObjectTypeDB::bind_method(_MD("set_loop","enabled"),&Animation::set_loop); - ObjectTypeDB::bind_method(_MD("set_loop_interpolation","enabled"),&Animation::set_loop_interpolation); ObjectTypeDB::bind_method(_MD("has_loop"),&Animation::has_loop); - ObjectTypeDB::bind_method(_MD("has_loop_interpolation"),&Animation::has_loop_interpolation); ObjectTypeDB::bind_method(_MD("set_step","size_sec"),&Animation::set_step); ObjectTypeDB::bind_method(_MD("get_step"),&Animation::get_step); @@ -1771,7 +1755,6 @@ void Animation::clear() { memdelete( tracks[i] ); tracks.clear(); loop=false; - loop_interpolation=true; length=1; } @@ -2031,7 +2014,6 @@ Animation::Animation() { step=0.1; loop=false; - loop_interpolation=true; length=1; } @@ -2042,3 +2024,5 @@ Animation::~Animation() { memdelete( tracks[i] ); } + + diff --git a/scene/resources/animation.h b/scene/resources/animation.h index ee643c9678..6c8d7252aa 100644 --- a/scene/resources/animation.h +++ b/scene/resources/animation.h @@ -172,7 +172,6 @@ private: float length; float step; bool loop; - bool loop_interpolation; // bind helpers private: @@ -279,9 +278,7 @@ public: float get_length() const; void set_loop(bool p_enabled); - void set_loop_interpolation(bool p_enabled); bool has_loop() const; - bool has_loop_interpolation() const; void set_step(float p_step); float get_step() const; diff --git a/tools/editor/animation_editor.cpp b/tools/editor/animation_editor.cpp index dd3c3fee32..7582162b72 100644 --- a/tools/editor/animation_editor.cpp +++ b/tools/editor/animation_editor.cpp @@ -2922,7 +2922,6 @@ void AnimationKeyEditor::_notification(int p_what) { edit_button->connect("pressed",this,"_toggle_edit_curves"); loop->set_icon(get_icon("Loop","EditorIcons")); - loop_interpolation->set_icon(get_icon("LoopInterpolation","EditorIcons")); curve_edit->connect("transition_changed",this,"_curve_transition_changed"); //edit_button->add_color_override("font_color",get_color("font_color","Tree")); @@ -3013,7 +3012,6 @@ void AnimationKeyEditor::_update_menu() { length->set_val(animation->get_length()); loop->set_pressed(animation->has_loop()); - loop_interpolation->set_pressed(animation->has_loop_interpolation()); step->set_val(animation->get_step()); } @@ -3469,21 +3467,6 @@ void AnimationKeyEditor::_animation_loop_changed() { } -void AnimationKeyEditor::_animation_loop_interpolation_changed() { - - if (updating) - return; - - if (!animation.is_null()) { - - undo_redo->create_action(TTR("Change Anim Loop Interpolation")); - undo_redo->add_do_method(animation.ptr(),"set_loop_interpolation",loop_interpolation->is_pressed()); - undo_redo->add_undo_method(animation.ptr(),"set_loop_interpolation",!loop_interpolation->is_pressed()); - undo_redo->commit_action(); - } - -} - void AnimationKeyEditor::_create_value_item(int p_type) { @@ -3769,7 +3752,6 @@ void AnimationKeyEditor::_bind_methods() { ObjectTypeDB::bind_method(_MD("_animation_loop_changed"),&AnimationKeyEditor::_animation_loop_changed); - ObjectTypeDB::bind_method(_MD("_animation_loop_interpolation_changed"),&AnimationKeyEditor::_animation_loop_interpolation_changed); ObjectTypeDB::bind_method(_MD("_animation_len_changed"),&AnimationKeyEditor::_animation_len_changed); ObjectTypeDB::bind_method(_MD("_create_value_item"),&AnimationKeyEditor::_create_value_item); ObjectTypeDB::bind_method(_MD("_pane_drag"),&AnimationKeyEditor::_pane_drag); @@ -3880,12 +3862,6 @@ AnimationKeyEditor::AnimationKeyEditor() { hb->add_child(loop); loop->set_tooltip(TTR("Enable/Disable looping in animation.")); - loop_interpolation = memnew( ToolButton ); - loop_interpolation->set_toggle_mode(true); - loop_interpolation->connect("pressed",this,"_animation_loop_interpolation_changed"); - hb->add_child(loop_interpolation); - loop_interpolation->set_tooltip(TTR("Enable/Disable interpolation when looping animation.")); - hb->add_child( memnew( VSeparator ) ); menu_add_track = memnew( MenuButton ); diff --git a/tools/editor/animation_editor.h b/tools/editor/animation_editor.h index c8de1d87c1..413c73b4b9 100644 --- a/tools/editor/animation_editor.h +++ b/tools/editor/animation_editor.h @@ -173,7 +173,6 @@ class AnimationKeyEditor : public VBoxContainer { //MenuButton *menu; SpinBox *length; Button *loop; - Button *loop_interpolation; bool keying; ToolButton *edit_button; ToolButton *move_up_button; @@ -239,7 +238,6 @@ class AnimationKeyEditor : public VBoxContainer { void _animation_len_changed(float p_len); void _animation_loop_changed(); - void _animation_loop_interpolation_changed(); void _step_changed(float p_len); struct InsertData { diff --git a/tools/editor/icons/icon_loop_interpolation.png b/tools/editor/icons/icon_loop_interpolation.png deleted file mode 100644 index 488b33316e..0000000000 Binary files a/tools/editor/icons/icon_loop_interpolation.png and /dev/null differ