PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGTransformListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue) const { RefPtrWillBeRawPtr<SVGTransformList> result = SVGTransformList::create(); const InterpolableList& list = toInterpolableList(interpolableValue); const Vector<SVGTransformType>& transformTypes = toSVGTransformNonInterpolableValue(nonInterpolableValue)->transformTypes(); for (size_t i = 0; i < list.length(); ++i) result->append(fromInterpolableValue(*list.get(i), transformTypes.at(i))); return result.release(); }
PassOwnPtr<InterpolationValue> SVGTransformListInterpolationType::maybeConvertNeutral(const UnderlyingValue& underlyingValue, ConversionCheckers& conversionCheckers) const { Vector<SVGTransformType> underlyingTypes(toSVGTransformNonInterpolableValue(underlyingValue->nonInterpolableValue())->transformTypes()); conversionCheckers.append(UnderlyingTypesChecker::create(*this, underlyingTypes)); if (underlyingTypes.isEmpty()) return nullptr; OwnPtr<InterpolationValue> result = underlyingValue->clone(); result->mutableComponent().interpolableValue = result->interpolableValue().cloneAndZero(); return result.release(); }