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 my_last = (*it).keys.back().time;
|
||||||
|
|
||||||
const double delta = my_last - my_first;
|
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;
|
const float value_delta = (*it).keys.back().value - (*it).keys.front().value;
|
||||||
|
|
||||||
// NOTE: We won't handle reset, linear and constant here.
|
// NOTE: We won't handle reset, linear and constant here.
|
||||||
|
@ -176,8 +179,7 @@ void AnimResolver::UpdateAnimRangeSetup() {
|
||||||
case LWO::PrePostBehaviour_Oscillate: {
|
case LWO::PrePostBehaviour_Oscillate: {
|
||||||
const double start_time = delta - std::fmod(my_first - first, delta);
|
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(),
|
std::vector<LWO::Key>::iterator n = std::find_if((*it).keys.begin(), (*it).keys.end(),
|
||||||
[start_time](double t) { return start_time > t; }),
|
[start_time](double t) { return start_time > t; }), m;
|
||||||
m;
|
|
||||||
|
|
||||||
size_t ofs = 0;
|
size_t ofs = 0;
|
||||||
if (n != (*it).keys.end()) {
|
if (n != (*it).keys.end()) {
|
||||||
|
|
Loading…
Reference in New Issue