double valueForProgress(double a_fProgress) const { double fPeriod = (m_fPeriod < 0) ? 0.3 : m_fPeriod; double fAmplitude = (m_fAmplitude < 0) ? 1.0 : m_fAmplitude; switch (m_eType) { case In: return easeInElastic(a_fProgress, fAmplitude, fPeriod); case Out: return easeOutElastic(a_fProgress, fAmplitude, fPeriod); case InOut: return easeInOutElastic(a_fProgress, fAmplitude, fPeriod); case OutIn: return easeOutInElastic(a_fProgress, fAmplitude, fPeriod); default: return a_fProgress; } }
static qreal easeInOutElastic(qreal t) { const qreal a = 0; const qreal p = 0.3; return easeInOutElastic(t, a, p); }