Quellcode durchsuchen

Merge pull request #794 from turol/master

LWO: Fix division by zero
Alexander Gessler vor 9 Jahren
Ursprung
Commit
4866191b21
1 geänderte Dateien mit 6 neuen und 1 gelöschten Zeilen
  1. 6 1
      code/LWOAnimation.cpp

+ 6 - 1
code/LWOAnimation.cpp

@@ -328,7 +328,12 @@ void AnimResolver::DoInterpolation2(std::vector<LWO::Key>::const_iterator beg,
             break;
     }
     // linear interpolation - default
-    fill = (*beg).value + ((*end).value - (*beg).value)*(float)(((time - (*beg).time) / ((*end).time - (*beg).time)));
+    double duration = (*end).time - (*beg).time;
+    if (duration > 0.0) {
+        fill = (*beg).value + ((*end).value - (*beg).value)*(float)(((time - (*beg).time) / duration));
+    } else {
+        fill = (*beg).value;
+    }
 }
 
 // ------------------------------------------------------------------------------------------------