| Index: Source/core/animation/InterpolableValue.cpp
|
| diff --git a/Source/core/animation/InterpolableValue.cpp b/Source/core/animation/InterpolableValue.cpp
|
| index 733cfd19f73979cec29a305e80e2783c8959dcfb..cd132abed93fe353b893ca20a458fb7be1902cb1 100644
|
| --- a/Source/core/animation/InterpolableValue.cpp
|
| +++ b/Source/core/animation/InterpolableValue.cpp
|
| @@ -48,54 +48,17 @@ void InterpolableList::interpolate(const InterpolableValue& to, const double pro
|
| }
|
| }
|
|
|
| -void InterpolableNumber::add(const InterpolableValue& rhs, InterpolableValue& result) const
|
| +void InterpolableNumber::scaleAndAdd(double scale, const InterpolableValue& other)
|
| {
|
| - const InterpolableNumber& rhsNumber = toInterpolableNumber(rhs);
|
| - InterpolableNumber& resultNumber = toInterpolableNumber(result);
|
| -
|
| - resultNumber.m_value = m_value + rhsNumber.m_value;
|
| -}
|
| -
|
| -void InterpolableNumber::multiply(double scalar, InterpolableValue& result) const
|
| -{
|
| - InterpolableNumber& resultNumber = toInterpolableNumber(result);
|
| -
|
| - resultNumber.m_value = scalar * m_value;
|
| + m_value = m_value * scale + toInterpolableNumber(other).m_value;
|
| }
|
|
|
| -void InterpolableBool::add(const InterpolableValue& rhs, InterpolableValue& result) const
|
| +void InterpolableList::scaleAndAdd(double scale, const InterpolableValue& other)
|
| {
|
| - const InterpolableBool& rhsBool = toInterpolableBool(rhs);
|
| - InterpolableBool& resultBool = toInterpolableBool(result);
|
| -
|
| - resultBool.m_value = m_value || rhsBool.m_value;
|
| -}
|
| -
|
| -void InterpolableList::add(const InterpolableValue& rhs, InterpolableValue& result) const
|
| -{
|
| - const InterpolableList& rhsList = toInterpolableList(rhs);
|
| - InterpolableList& resultList = toInterpolableList(result);
|
| -
|
| - ASSERT(rhsList.m_size == m_size);
|
| - ASSERT(resultList.m_size == m_size);
|
| -
|
| - for (size_t i = 0; i < m_size; i++) {
|
| - ASSERT(m_values[i]);
|
| - ASSERT(rhsList.m_values[i]);
|
| - m_values[i]->add(*(rhsList.m_values[i]), *(resultList.m_values[i]));
|
| - }
|
| -}
|
| -
|
| -void InterpolableList::multiply(double scalar, InterpolableValue& result) const
|
| -{
|
| - InterpolableList& resultList = toInterpolableList(result);
|
| -
|
| - ASSERT(resultList.m_size == m_size);
|
| -
|
| - for (size_t i = 0; i < m_size; i++) {
|
| - ASSERT(m_values[i]);
|
| - m_values[i]->multiply(scalar, *(resultList.m_values[i]));
|
| - }
|
| + const InterpolableList& otherList = toInterpolableList(other);
|
| + ASSERT(otherList.m_size == m_size);
|
| + for (size_t i = 0; i < m_size; i++)
|
| + m_values[i]->scaleAndAdd(scale, *otherList.m_values[i]);
|
| }
|
|
|
| DEFINE_TRACE(InterpolableList)
|
|
|