PassRefPtr<SVGPathByteStream> PathInterpolationFunctions::appliedValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue) { RefPtr<SVGPathByteStream> pathByteStream = SVGPathByteStream::create(); InterpolatedSVGPathSource source( toInterpolableList(*toInterpolableList(interpolableValue).get(PathArgsIndex)), toSVGPathNonInterpolableValue(nonInterpolableValue)->pathSegTypes()); SVGPathByteStreamBuilder builder(*pathByteStream); SVGPathParser(&source, &builder).parsePathDataFromSource(false); return pathByteStream.release(); }
PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGPathInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue) const { OwnPtr<SVGPathByteStream> pathByteStream = SVGPathByteStream::create(); InterpolatedSVGPathSource source( toInterpolableList(*toInterpolableList(interpolableValue).get(PathArgsIndex)), toSVGPathNonInterpolableValue(nonInterpolableValue)->pathSegTypes()); SVGPathByteStreamBuilder builder(*pathByteStream); SVGPathParser(&source, &builder).parsePathDataFromSource(UnalteredParsing, false); return SVGPath::create(CSSPathValue::create(pathByteStream.release())); }