Fix: Fix possible division by zero
- closes https://github.com/assimp/assimp/issues/4860pull/4861/head
parent
767644cd3f
commit
96b071bdb1
|
@ -162,8 +162,11 @@ void AnimResolver::UpdateAnimRangeSetup() {
|
|||
const double my_last = (*it).keys.back().time;
|
||||
|
||||
const double delta = my_last - my_first;
|
||||
const size_t old_size = (*it).keys.size();
|
||||
if (delta == 0.0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const size_t old_size = (*it).keys.size();
|
||||
const float value_delta = (*it).keys.back().value - (*it).keys.front().value;
|
||||
|
||||
// NOTE: We won't handle reset, linear and constant here.
|
||||
|
@ -176,8 +179,7 @@ void AnimResolver::UpdateAnimRangeSetup() {
|
|||
case LWO::PrePostBehaviour_Oscillate: {
|
||||
const double start_time = delta - std::fmod(my_first - first, delta);
|
||||
std::vector<LWO::Key>::iterator n = std::find_if((*it).keys.begin(), (*it).keys.end(),
|
||||
[start_time](double t) { return start_time > t; }),
|
||||
m;
|
||||
[start_time](double t) { return start_time > t; }), m;
|
||||
|
||||
size_t ofs = 0;
|
||||
if (n != (*it).keys.end()) {
|
||||
|
|
Loading…
Reference in New Issue