[core] fix division by zero when defaultFadeDuration is 0

This commit is contained in:
Konstantin Käfer
2017-07-13 16:57:31 +02:00
parent 86682f2507
commit 13d6920661

View File

@@ -27,7 +27,10 @@ Faded<T> CrossFadedPropertyEvaluator<T>::calculate(const T& min, const T& mid, c
const float z = parameters.z;
const float fraction = z - std::floor(z);
const std::chrono::duration<float> d = parameters.defaultFadeDuration;
const float t = std::min((parameters.now - parameters.zoomHistory.lastIntegerZoomTime) / d, 1.0f);
const float t =
d != std::chrono::duration<float>::zero()
? std::min((parameters.now - parameters.zoomHistory.lastIntegerZoomTime) / d, 1.0f)
: 1.0f;
return z > parameters.zoomHistory.lastIntegerZoom
? Faded<T> { min, mid, 2.0f, 1.0f, fraction + (1.0f - fraction) * t }