44void QSvgAbstractAnimation::evaluateAnimation(qreal elapsedTime)
46 if (m_duration == 0 || m_start > elapsedTime)
49 qreal fractionOfTotalTime = (elapsedTime - m_start) / m_duration;
51 if (m_iterationCount >= 0 && m_iterationCount < fractionOfTotalTime)
59 qreal fractionOfCurrentIterationTime = fractionOfTotalTime - std::trunc(fractionOfTotalTime);
61 for (QSvgAbstractAnimatedProperty *animProperty : m_properties) {
62 const QList<qreal> keyFrames = animProperty->keyFrames();
63 for (
int i = 1; i < keyFrames.size(); i++) {
64 qreal from = keyFrames.at(i - 1);
65 qreal to = keyFrames.at(i);
66 if (fractionOfCurrentIterationTime >= from && fractionOfCurrentIterationTime < to) {
67 qreal currFraction = (fractionOfCurrentIterationTime - from) / (to - from);
68 qreal effectiveFraction = m_easing->progress(currFraction);
69 animProperty->interpolate(i, effectiveFraction);