diff options
Diffstat (limited to 'scene/resources/animation.cpp')
-rw-r--r-- | scene/resources/animation.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp index 7fa606f5da..67f45ced2b 100644 --- a/scene/resources/animation.cpp +++ b/scene/resources/animation.cpp @@ -1716,7 +1716,7 @@ void Animation::clear() { } -void Animation::_transform_track_optimize(int p_idx,float p_allowed_err) { +void Animation::_transform_track_optimize(int p_idx,float p_alowed_linear_err,float p_alowed_angular_err) { ERR_FAIL_INDEX(p_idx,tracks.size()); ERR_FAIL_COND(tracks[p_idx]->type!=TYPE_TRANSFORM); @@ -1756,7 +1756,7 @@ void Animation::_transform_track_optimize(int p_idx,float p_allowed_err) { Vector3 s[2]={ v0, v2 }; real_t d =Geometry::get_closest_point_to_segment(v1,s).distance_to(v1); - if (d>pd.length()*p_allowed_err) { + if (d>pd.length()*p_alowed_linear_err) { continue; //beyond allowed error for colinearity } @@ -1795,7 +1795,7 @@ void Animation::_transform_track_optimize(int p_idx,float p_allowed_err) { } real_t err_01 = Math::acos(v01.normalized().dot(v02.normalized()))/Math_PI; - if (err_01>p_allowed_err) { + if (err_01>p_alowed_angular_err) { //not rotating in the same axis continue; } @@ -1841,7 +1841,7 @@ void Animation::_transform_track_optimize(int p_idx,float p_allowed_err) { Vector3 s[2]={ v0, v2 }; real_t d =Geometry::get_closest_point_to_segment(v1,s).distance_to(v1); - if (d>pd.length()*p_allowed_err) { + if (d>pd.length()*p_alowed_linear_err) { continue; //beyond allowed error for colinearity } @@ -1866,7 +1866,7 @@ void Animation::_transform_track_optimize(int p_idx,float p_allowed_err) { if (t[k]==-1) continue; - if (Math::abs(lt-t[k])>p_allowed_err) { + if (Math::abs(lt-t[k])>p_alowed_linear_err) { erase=false; break; } @@ -1879,7 +1879,7 @@ void Animation::_transform_track_optimize(int p_idx,float p_allowed_err) { if (erase) { - if (Math::abs(lt-c)>p_allowed_err) { + if (Math::abs(lt-c)>p_alowed_linear_err) { //todo, evaluate changing the transition if this fails? //this could be done as a second pass and would be //able to optimize more @@ -1905,7 +1905,7 @@ void Animation::_transform_track_optimize(int p_idx,float p_allowed_err) { } -void Animation::optimize(float p_allowed_err) { +void Animation::optimize(float p_allowed_linear_err,float p_allowed_angular_err) { int total_tt=0; @@ -1913,7 +1913,7 @@ void Animation::optimize(float p_allowed_err) { for(int i=0;i<tracks.size();i++) { if (tracks[i]->type==TYPE_TRANSFORM) - _transform_track_optimize(i,p_allowed_err); + _transform_track_optimize(i,p_allowed_linear_err,p_allowed_angular_err); } |