43void QSvgAbstractAnimation::evaluateAnimation(qreal elapsedTime)
45 if (m_duration == 0 || m_start > elapsedTime)
48 qreal fractionOfTotalTime = (elapsedTime - m_start) / m_duration;
50 if (m_iterationCount >= 0 && m_iterationCount < fractionOfTotalTime)
58 qreal fractionOfCurrentIterationTime = fractionOfTotalTime - std::trunc(fractionOfTotalTime);
60 for (QSvgAbstractAnimatedProperty *animProperty : m_properties) {
61 const QList<qreal> keyFrames = animProperty->keyFrames();
62 for (
int i = 1; i < keyFrames.size(); i++) {
63 qreal from = keyFrames.at(i - 1);
64 qreal to = keyFrames.at(i);
65 if (fractionOfCurrentIterationTime >= from && fractionOfCurrentIterationTime < to) {
66 qreal currFraction = (fractionOfCurrentIterationTime - from) / (to - from);
67 animProperty->interpolate(i, currFraction);