Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: Source/core/animation/TransformSVGInterpolation.cpp

Issue 1276183004: Oilpan: Unship oilpan from temporary animation objects (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/animation/TransformSVGInterpolation.h" 6 #include "core/animation/TransformSVGInterpolation.h"
7 7
8 namespace blink { 8 namespace blink {
9 9
10 namespace { 10 namespace {
11 11
12 PassOwnPtrWillBeRawPtr<InterpolableValue> translateToInterpolableValue(SVGTransf orm* transform) 12 PassOwnPtr<InterpolableValue> translateToInterpolableValue(SVGTransform* transfo rm)
13 { 13 {
14 FloatPoint translate = transform->translate(); 14 FloatPoint translate = transform->translate();
15 OwnPtrWillBeRawPtr<InterpolableList> result = InterpolableList::create(2); 15 OwnPtr<InterpolableList> result = InterpolableList::create(2);
16 result->set(0, InterpolableNumber::create(translate.x())); 16 result->set(0, InterpolableNumber::create(translate.x()));
17 result->set(1, InterpolableNumber::create(translate.y())); 17 result->set(1, InterpolableNumber::create(translate.y()));
18 return result.release(); 18 return result.release();
19 } 19 }
20 20
21 PassRefPtrWillBeRawPtr<SVGTransform> translateFromInterpolableValue(const Interp olableValue& value) 21 PassRefPtrWillBeRawPtr<SVGTransform> translateFromInterpolableValue(const Interp olableValue& value)
22 { 22 {
23 const InterpolableList& list = toInterpolableList(value); 23 const InterpolableList& list = toInterpolableList(value);
24 24
25 RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSF ORM_TRANSLATE); 25 RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSF ORM_TRANSLATE);
26 transform->setTranslate( 26 transform->setTranslate(
27 toInterpolableNumber(list.get(0))->value(), 27 toInterpolableNumber(list.get(0))->value(),
28 toInterpolableNumber(list.get(1))->value()); 28 toInterpolableNumber(list.get(1))->value());
29 return transform.release(); 29 return transform.release();
30 } 30 }
31 31
32 PassOwnPtrWillBeRawPtr<InterpolableValue> scaleToInterpolableValue(SVGTransform* transform) 32 PassOwnPtr<InterpolableValue> scaleToInterpolableValue(SVGTransform* transform)
33 { 33 {
34 FloatSize scale = transform->scale(); 34 FloatSize scale = transform->scale();
35 OwnPtrWillBeRawPtr<InterpolableList> result = InterpolableList::create(2); 35 OwnPtr<InterpolableList> result = InterpolableList::create(2);
36 result->set(0, InterpolableNumber::create(scale.width())); 36 result->set(0, InterpolableNumber::create(scale.width()));
37 result->set(1, InterpolableNumber::create(scale.height())); 37 result->set(1, InterpolableNumber::create(scale.height()));
38 return result.release(); 38 return result.release();
39 } 39 }
40 40
41 PassRefPtrWillBeRawPtr<SVGTransform> scaleFromInterpolableValue(const Interpolab leValue& value) 41 PassRefPtrWillBeRawPtr<SVGTransform> scaleFromInterpolableValue(const Interpolab leValue& value)
42 { 42 {
43 const InterpolableList& list = toInterpolableList(value); 43 const InterpolableList& list = toInterpolableList(value);
44 44
45 RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSF ORM_SCALE); 45 RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSF ORM_SCALE);
46 transform->setScale( 46 transform->setScale(
47 toInterpolableNumber(list.get(0))->value(), 47 toInterpolableNumber(list.get(0))->value(),
48 toInterpolableNumber(list.get(1))->value()); 48 toInterpolableNumber(list.get(1))->value());
49 return transform.release(); 49 return transform.release();
50 } 50 }
51 51
52 PassOwnPtrWillBeRawPtr<InterpolableValue> rotateToInterpolableValue(SVGTransform * transform) 52 PassOwnPtr<InterpolableValue> rotateToInterpolableValue(SVGTransform* transform)
53 { 53 {
54 FloatPoint rotationCenter = transform->rotationCenter(); 54 FloatPoint rotationCenter = transform->rotationCenter();
55 OwnPtrWillBeRawPtr<InterpolableList> result = InterpolableList::create(3); 55 OwnPtr<InterpolableList> result = InterpolableList::create(3);
56 result->set(0, InterpolableNumber::create(transform->angle())); 56 result->set(0, InterpolableNumber::create(transform->angle()));
57 result->set(1, InterpolableNumber::create(rotationCenter.x())); 57 result->set(1, InterpolableNumber::create(rotationCenter.x()));
58 result->set(2, InterpolableNumber::create(rotationCenter.y())); 58 result->set(2, InterpolableNumber::create(rotationCenter.y()));
59 return result.release(); 59 return result.release();
60 } 60 }
61 61
62 PassRefPtrWillBeRawPtr<SVGTransform> rotateFromInterpolableValue(const Interpola bleValue& value) 62 PassRefPtrWillBeRawPtr<SVGTransform> rotateFromInterpolableValue(const Interpola bleValue& value)
63 { 63 {
64 const InterpolableList& list = toInterpolableList(value); 64 const InterpolableList& list = toInterpolableList(value);
65 65
66 RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSF ORM_ROTATE); 66 RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSF ORM_ROTATE);
67 transform->setRotate( 67 transform->setRotate(
68 toInterpolableNumber(list.get(0))->value(), 68 toInterpolableNumber(list.get(0))->value(),
69 toInterpolableNumber(list.get(1))->value(), 69 toInterpolableNumber(list.get(1))->value(),
70 toInterpolableNumber(list.get(2))->value()); 70 toInterpolableNumber(list.get(2))->value());
71 return transform.release(); 71 return transform.release();
72 } 72 }
73 73
74 PassOwnPtrWillBeRawPtr<InterpolableValue> skewXToInterpolableValue(SVGTransform* transform) 74 PassOwnPtr<InterpolableValue> skewXToInterpolableValue(SVGTransform* transform)
75 { 75 {
76 return InterpolableNumber::create(transform->angle()); 76 return InterpolableNumber::create(transform->angle());
77 } 77 }
78 78
79 PassRefPtrWillBeRawPtr<SVGTransform> skewXFromInterpolableValue(const Interpolab leValue& value) 79 PassRefPtrWillBeRawPtr<SVGTransform> skewXFromInterpolableValue(const Interpolab leValue& value)
80 { 80 {
81 RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSF ORM_SKEWX); 81 RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSF ORM_SKEWX);
82 transform->setSkewX(toInterpolableNumber(value).value()); 82 transform->setSkewX(toInterpolableNumber(value).value());
83 return transform.release(); 83 return transform.release();
84 } 84 }
85 85
86 PassOwnPtrWillBeRawPtr<InterpolableValue> skewYToInterpolableValue(SVGTransform* transform) 86 PassOwnPtr<InterpolableValue> skewYToInterpolableValue(SVGTransform* transform)
87 { 87 {
88 return InterpolableNumber::create(transform->angle()); 88 return InterpolableNumber::create(transform->angle());
89 } 89 }
90 90
91 PassRefPtrWillBeRawPtr<SVGTransform> skewYFromInterpolableValue(const Interpolab leValue& value) 91 PassRefPtrWillBeRawPtr<SVGTransform> skewYFromInterpolableValue(const Interpolab leValue& value)
92 { 92 {
93 RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSF ORM_SKEWY); 93 RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSF ORM_SKEWY);
94 transform->setSkewY(toInterpolableNumber(value).value()); 94 transform->setSkewY(toInterpolableNumber(value).value());
95 return transform.release(); 95 return transform.release();
96 } 96 }
97 97
98 } // namespace 98 } // namespace
99 99
100 bool TransformSVGInterpolation::canCreateFrom(SVGTransform* start, SVGTransform* end) 100 bool TransformSVGInterpolation::canCreateFrom(SVGTransform* start, SVGTransform* end)
101 { 101 {
102 // TODO(ericwilligers): Support matrix interpolation. 102 // TODO(ericwilligers): Support matrix interpolation.
103 return start->transformType() == end->transformType() 103 return start->transformType() == end->transformType()
104 && start->transformType() != SVG_TRANSFORM_MATRIX; 104 && start->transformType() != SVG_TRANSFORM_MATRIX;
105 } 105 }
106 106
107 PassOwnPtrWillBeRawPtr<InterpolableValue> TransformSVGInterpolation::toInterpola bleValue(SVGTransform* transform, const SVGAnimatedPropertyBase*, SVGTransformTy pe* transformTypePtr) 107 PassOwnPtr<InterpolableValue> TransformSVGInterpolation::toInterpolableValue(SVG Transform* transform, const SVGAnimatedPropertyBase*, SVGTransformType* transfor mTypePtr)
108 { 108 {
109 SVGTransformType transformType = static_cast<SVGTransformType>(transform->tr ansformType()); 109 SVGTransformType transformType = static_cast<SVGTransformType>(transform->tr ansformType());
110 if (transformTypePtr) 110 if (transformTypePtr)
111 *transformTypePtr = transformType; 111 *transformTypePtr = transformType;
112 112
113 switch (transformType) { 113 switch (transformType) {
114 case SVG_TRANSFORM_TRANSLATE: 114 case SVG_TRANSFORM_TRANSLATE:
115 return translateToInterpolableValue(transform); 115 return translateToInterpolableValue(transform);
116 case SVG_TRANSFORM_SCALE: 116 case SVG_TRANSFORM_SCALE:
117 return scaleToInterpolableValue(transform); 117 return scaleToInterpolableValue(transform);
(...skipping 26 matching lines...) Expand all
144 return skewYFromInterpolableValue(value); 144 return skewYFromInterpolableValue(value);
145 case SVG_TRANSFORM_MATRIX: 145 case SVG_TRANSFORM_MATRIX:
146 case SVG_TRANSFORM_UNKNOWN: 146 case SVG_TRANSFORM_UNKNOWN:
147 ASSERT_NOT_REACHED(); 147 ASSERT_NOT_REACHED();
148 } 148 }
149 ASSERT_NOT_REACHED(); 149 ASSERT_NOT_REACHED();
150 return nullptr; 150 return nullptr;
151 } 151 }
152 152
153 } // namespace blink 153 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698