void SVGNumberListInterpolationType::composite(UnderlyingValue& underlyingValue, double underlyingFraction, const InterpolationValue& value) const { const InterpolableList& list = toInterpolableList(value.interpolableValue()); if (toInterpolableList(underlyingValue->interpolableValue()).length() <= list.length()) padWithZeroes(underlyingValue.mutableComponent().interpolableValue, list.length()); InterpolableList& underlyingList = *toInterpolableList(underlyingValue.mutableComponent().interpolableValue.get()); ASSERT(underlyingList.length() >= list.length()); size_t i = 0; for (; i < list.length(); i++) underlyingList.getMutable(i)->scaleAndAdd(underlyingFraction, *list.get(i)); for (; i < underlyingList.length(); i++) underlyingList.getMutable(i)->scale(underlyingFraction); }
void SVGNumberListInterpolationType::composite( UnderlyingValueOwner& underlyingValueOwner, double underlyingFraction, const InterpolationValue& value, double interpolationFraction) const { const InterpolableList& list = toInterpolableList(*value.interpolableValue); if (toInterpolableList(*underlyingValueOwner.value().interpolableValue) .length() <= list.length()) padWithZeroes(underlyingValueOwner.mutableValue().interpolableValue, list.length()); InterpolableList& underlyingList = toInterpolableList( *underlyingValueOwner.mutableValue().interpolableValue); DCHECK_GE(underlyingList.length(), list.length()); size_t i = 0; for (; i < list.length(); i++) underlyingList.getMutable(i)->scaleAndAdd(underlyingFraction, *list.get(i)); for (; i < underlyingList.length(); i++) underlyingList.getMutable(i)->scale(underlyingFraction); }