Просмотр исходного кода

-fixed crash with skeletal animation sample: added key clamping to QuaternionCurve

bagobor 11 лет назад
Родитель
Сommit
d33269a388
1 измененных файлов с 5 добавлено и 5 удалено
  1. 5 5
      Core/Contents/Source/PolyQuaternionCurve.cpp

+ 5 - 5
Core/Contents/Source/PolyQuaternionCurve.cpp

@@ -62,12 +62,12 @@ void QuaternionCurve::generatePointsFromCurves(BezierCurve *wCurve, BezierCurve
 
 Quaternion QuaternionCurve::interpolate(Number t, bool useShortestPath)
 {
-        Number fSeg = t * (tPoints.size() - 1);
-        unsigned int segIdx = (unsigned int)fSeg;
-        t = fSeg - segIdx;
-
-        return interpolate(segIdx, t, useShortestPath);
+	t = std::min(std::max(t, 0.0), 1.0);
+    Number fSeg = t * (tPoints.size() - 1);
+    unsigned int segIdx = (unsigned int)fSeg;
+    t = fSeg - segIdx;
 
+    return interpolate(segIdx, t, useShortestPath);
 }
 
 Quaternion QuaternionCurve::interpolate(unsigned int fromIndex, Number t, bool useShortestPath) {