Merge pull request #4724 from Cybolic/optional-loop-interpolation
Added toggle for loop interpolation based on adolson's code
This commit is contained in:
commit
3520902194
6 changed files with 58 additions and 2 deletions
|
|
@ -38,6 +38,8 @@ 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/")) {
|
||||
|
|
@ -1233,7 +1235,7 @@ T Animation::_interpolate( const Vector< TKey<T> >& p_keys, float p_time, Inter
|
|||
float c=0;
|
||||
// prepare for all cases of interpolation
|
||||
|
||||
if (loop) {
|
||||
if (loop and loop_interpolation) {
|
||||
// loop
|
||||
if (idx>=0) {
|
||||
|
||||
|
|
@ -1621,10 +1623,19 @@ 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) {
|
||||
|
||||
|
|
@ -1703,7 +1714,9 @@ 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);
|
||||
|
|
@ -1731,6 +1744,7 @@ void Animation::clear() {
|
|||
memdelete( tracks[i] );
|
||||
tracks.clear();
|
||||
loop=false;
|
||||
loop_interpolation=true;
|
||||
length=1;
|
||||
|
||||
}
|
||||
|
|
@ -1990,6 +2004,7 @@ Animation::Animation() {
|
|||
|
||||
step=0.1;
|
||||
loop=false;
|
||||
loop_interpolation=true;
|
||||
length=1;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue