Move parseFontFaceDescriptor to CSSPropertyParser.cpp
[chromium-blink-merge.git] / third_party / WebKit / Source / core / animation / RectSVGInterpolation.cpp
blobe732c0d66c2c2acba8381e2163eca5967bd3d7e5
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "config.h"
6 #include "core/animation/RectSVGInterpolation.h"
8 #include "wtf/StdLibExtras.h"
10 namespace blink {
12 PassOwnPtr<InterpolableValue> RectSVGInterpolation::toInterpolableValue(SVGPropertyBase* value)
14 RefPtrWillBeRawPtr<SVGRect> rect = toSVGRect(value);
15 float element[] = { rect->x(), rect->y(), rect->width(), rect->height() };
16 OwnPtr<InterpolableList> result = InterpolableList::create(WTF_ARRAY_LENGTH(element));
17 for (size_t i = 0; i < WTF_ARRAY_LENGTH(element); i++) {
18 result->set(i, InterpolableNumber::create(element[i]));
20 return result.release();
23 PassRefPtrWillBeRawPtr<SVGRect> RectSVGInterpolation::fromInterpolableValue(const InterpolableValue& value)
25 const InterpolableList& list = toInterpolableList(value);
26 RefPtrWillBeRawPtr<SVGRect> result = SVGRect::create();
27 result->setX(toInterpolableNumber(list.get(0))->value());
28 result->setY(toInterpolableNumber(list.get(1))->value());
29 result->setWidth(toInterpolableNumber(list.get(2))->value());
30 result->setHeight(toInterpolableNumber(list.get(3))->value());
31 return result;