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

Side by Side Diff: third_party/WebKit/Source/core/animation/SVGPathSegInterpolationFunctions.cpp

Issue 2050123002: Remove OwnPtr from Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: First attempt to land. Created 4 years, 6 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
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 "core/animation/SVGPathSegInterpolationFunctions.h" 5 #include "core/animation/SVGPathSegInterpolationFunctions.h"
6 6
7 #include <memory>
8
7 namespace blink { 9 namespace blink {
8 10
9 11
10 PassOwnPtr<InterpolableNumber> consumeControlAxis(double value, bool isAbsolute, double currentValue) 12 std::unique_ptr<InterpolableNumber> consumeControlAxis(double value, bool isAbso lute, double currentValue)
11 { 13 {
12 return InterpolableNumber::create(isAbsolute ? value : currentValue + value) ; 14 return InterpolableNumber::create(isAbsolute ? value : currentValue + value) ;
13 } 15 }
14 16
15 double consumeInterpolableControlAxis(const InterpolableValue* number, bool isAb solute, double currentValue) 17 double consumeInterpolableControlAxis(const InterpolableValue* number, bool isAb solute, double currentValue)
16 { 18 {
17 double value = toInterpolableNumber(number)->value(); 19 double value = toInterpolableNumber(number)->value();
18 return isAbsolute ? value : value - currentValue; 20 return isAbsolute ? value : value - currentValue;
19 } 21 }
20 22
21 PassOwnPtr<InterpolableNumber> consumeCoordinateAxis(double value, bool isAbsolu te, double& currentValue) 23 std::unique_ptr<InterpolableNumber> consumeCoordinateAxis(double value, bool isA bsolute, double& currentValue)
22 { 24 {
23 if (isAbsolute) 25 if (isAbsolute)
24 currentValue = value; 26 currentValue = value;
25 else 27 else
26 currentValue += value; 28 currentValue += value;
27 return InterpolableNumber::create(currentValue); 29 return InterpolableNumber::create(currentValue);
28 } 30 }
29 31
30 double consumeInterpolableCoordinateAxis(const InterpolableValue* number, bool i sAbsolute, double& currentValue) 32 double consumeInterpolableCoordinateAxis(const InterpolableValue* number, bool i sAbsolute, double& currentValue)
31 { 33 {
32 double previousValue = currentValue; 34 double previousValue = currentValue;
33 currentValue = toInterpolableNumber(number)->value(); 35 currentValue = toInterpolableNumber(number)->value();
34 return isAbsolute ? currentValue : currentValue - previousValue; 36 return isAbsolute ? currentValue : currentValue - previousValue;
35 } 37 }
36 38
37 PassOwnPtr<InterpolableValue> consumeClosePath(const PathSegmentData&, PathCoord inates& coordinates) 39 std::unique_ptr<InterpolableValue> consumeClosePath(const PathSegmentData&, Path Coordinates& coordinates)
38 { 40 {
39 coordinates.currentX = coordinates.initialX; 41 coordinates.currentX = coordinates.initialX;
40 coordinates.currentY = coordinates.initialY; 42 coordinates.currentY = coordinates.initialY;
41 return InterpolableList::create(0); 43 return InterpolableList::create(0);
42 } 44 }
43 45
44 PathSegmentData consumeInterpolableClosePath(const InterpolableValue&, SVGPathSe gType segType, PathCoordinates& coordinates) 46 PathSegmentData consumeInterpolableClosePath(const InterpolableValue&, SVGPathSe gType segType, PathCoordinates& coordinates)
45 { 47 {
46 coordinates.currentX = coordinates.initialX; 48 coordinates.currentX = coordinates.initialX;
47 coordinates.currentY = coordinates.initialY; 49 coordinates.currentY = coordinates.initialY;
48 50
49 PathSegmentData segment; 51 PathSegmentData segment;
50 segment.command = segType; 52 segment.command = segType;
51 return segment; 53 return segment;
52 } 54 }
53 55
54 PassOwnPtr<InterpolableValue> consumeSingleCoordinate(const PathSegmentData& seg ment, PathCoordinates& coordinates) 56 std::unique_ptr<InterpolableValue> consumeSingleCoordinate(const PathSegmentData & segment, PathCoordinates& coordinates)
55 { 57 {
56 bool isAbsolute = isAbsolutePathSegType(segment.command); 58 bool isAbsolute = isAbsolutePathSegType(segment.command);
57 OwnPtr<InterpolableList> result = InterpolableList::create(2); 59 std::unique_ptr<InterpolableList> result = InterpolableList::create(2);
58 result->set(0, consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.cu rrentX)); 60 result->set(0, consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.cu rrentX));
59 result->set(1, consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.cu rrentY)); 61 result->set(1, consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.cu rrentY));
60 62
61 if (toAbsolutePathSegType(segment.command) == PathSegMoveToAbs) { 63 if (toAbsolutePathSegType(segment.command) == PathSegMoveToAbs) {
62 // Any upcoming 'closepath' commands bring us back to the location we ha ve just moved to. 64 // Any upcoming 'closepath' commands bring us back to the location we ha ve just moved to.
63 coordinates.initialX = coordinates.currentX; 65 coordinates.initialX = coordinates.currentX;
64 coordinates.initialY = coordinates.currentY; 66 coordinates.initialY = coordinates.currentY;
65 } 67 }
66 68
67 return std::move(result); 69 return std::move(result);
(...skipping 10 matching lines...) Expand all
78 80
79 if (toAbsolutePathSegType(segType) == PathSegMoveToAbs) { 81 if (toAbsolutePathSegType(segType) == PathSegMoveToAbs) {
80 // Any upcoming 'closepath' commands bring us back to the location we ha ve just moved to. 82 // Any upcoming 'closepath' commands bring us back to the location we ha ve just moved to.
81 coordinates.initialX = coordinates.currentX; 83 coordinates.initialX = coordinates.currentX;
82 coordinates.initialY = coordinates.currentY; 84 coordinates.initialY = coordinates.currentY;
83 } 85 }
84 86
85 return segment; 87 return segment;
86 } 88 }
87 89
88 PassOwnPtr<InterpolableValue> consumeCurvetoCubic(const PathSegmentData& segment , PathCoordinates& coordinates) 90 std::unique_ptr<InterpolableValue> consumeCurvetoCubic(const PathSegmentData& se gment, PathCoordinates& coordinates)
89 { 91 {
90 bool isAbsolute = isAbsolutePathSegType(segment.command); 92 bool isAbsolute = isAbsolutePathSegType(segment.command);
91 OwnPtr<InterpolableList> result = InterpolableList::create(6); 93 std::unique_ptr<InterpolableList> result = InterpolableList::create(6);
92 result->set(0, consumeControlAxis(segment.x1(), isAbsolute, coordinates.curr entX)); 94 result->set(0, consumeControlAxis(segment.x1(), isAbsolute, coordinates.curr entX));
93 result->set(1, consumeControlAxis(segment.y1(), isAbsolute, coordinates.curr entY)); 95 result->set(1, consumeControlAxis(segment.y1(), isAbsolute, coordinates.curr entY));
94 result->set(2, consumeControlAxis(segment.x2(), isAbsolute, coordinates.curr entX)); 96 result->set(2, consumeControlAxis(segment.x2(), isAbsolute, coordinates.curr entX));
95 result->set(3, consumeControlAxis(segment.y2(), isAbsolute, coordinates.curr entY)); 97 result->set(3, consumeControlAxis(segment.y2(), isAbsolute, coordinates.curr entY));
96 result->set(4, consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.cu rrentX)); 98 result->set(4, consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.cu rrentX));
97 result->set(5, consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.cu rrentY)); 99 result->set(5, consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.cu rrentY));
98 return std::move(result); 100 return std::move(result);
99 } 101 }
100 102
101 PathSegmentData consumeInterpolableCurvetoCubic(const InterpolableValue& value, SVGPathSegType segType, PathCoordinates& coordinates) 103 PathSegmentData consumeInterpolableCurvetoCubic(const InterpolableValue& value, SVGPathSegType segType, PathCoordinates& coordinates)
102 { 104 {
103 const InterpolableList& list = toInterpolableList(value); 105 const InterpolableList& list = toInterpolableList(value);
104 bool isAbsolute = isAbsolutePathSegType(segType); 106 bool isAbsolute = isAbsolutePathSegType(segType);
105 PathSegmentData segment; 107 PathSegmentData segment;
106 segment.command = segType; 108 segment.command = segType;
107 segment.point1.setX(consumeInterpolableControlAxis(list.get(0), isAbsolute, coordinates.currentX)); 109 segment.point1.setX(consumeInterpolableControlAxis(list.get(0), isAbsolute, coordinates.currentX));
108 segment.point1.setY(consumeInterpolableControlAxis(list.get(1), isAbsolute, coordinates.currentY)); 110 segment.point1.setY(consumeInterpolableControlAxis(list.get(1), isAbsolute, coordinates.currentY));
109 segment.point2.setX(consumeInterpolableControlAxis(list.get(2), isAbsolute, coordinates.currentX)); 111 segment.point2.setX(consumeInterpolableControlAxis(list.get(2), isAbsolute, coordinates.currentX));
110 segment.point2.setY(consumeInterpolableControlAxis(list.get(3), isAbsolute, coordinates.currentY)); 112 segment.point2.setY(consumeInterpolableControlAxis(list.get(3), isAbsolute, coordinates.currentY));
111 segment.targetPoint.setX(consumeInterpolableCoordinateAxis(list.get(4), isAb solute, coordinates.currentX)); 113 segment.targetPoint.setX(consumeInterpolableCoordinateAxis(list.get(4), isAb solute, coordinates.currentX));
112 segment.targetPoint.setY(consumeInterpolableCoordinateAxis(list.get(5), isAb solute, coordinates.currentY)); 114 segment.targetPoint.setY(consumeInterpolableCoordinateAxis(list.get(5), isAb solute, coordinates.currentY));
113 return segment; 115 return segment;
114 } 116 }
115 117
116 PassOwnPtr<InterpolableValue> consumeCurvetoQuadratic(const PathSegmentData& seg ment, PathCoordinates& coordinates) 118 std::unique_ptr<InterpolableValue> consumeCurvetoQuadratic(const PathSegmentData & segment, PathCoordinates& coordinates)
117 { 119 {
118 bool isAbsolute = isAbsolutePathSegType(segment.command); 120 bool isAbsolute = isAbsolutePathSegType(segment.command);
119 OwnPtr<InterpolableList> result = InterpolableList::create(4); 121 std::unique_ptr<InterpolableList> result = InterpolableList::create(4);
120 result->set(0, consumeControlAxis(segment.x1(), isAbsolute, coordinates.curr entX)); 122 result->set(0, consumeControlAxis(segment.x1(), isAbsolute, coordinates.curr entX));
121 result->set(1, consumeControlAxis(segment.y1(), isAbsolute, coordinates.curr entY)); 123 result->set(1, consumeControlAxis(segment.y1(), isAbsolute, coordinates.curr entY));
122 result->set(2, consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.cu rrentX)); 124 result->set(2, consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.cu rrentX));
123 result->set(3, consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.cu rrentY)); 125 result->set(3, consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.cu rrentY));
124 return std::move(result); 126 return std::move(result);
125 } 127 }
126 128
127 PathSegmentData consumeInterpolableCurvetoQuadratic(const InterpolableValue& val ue, SVGPathSegType segType, PathCoordinates& coordinates) 129 PathSegmentData consumeInterpolableCurvetoQuadratic(const InterpolableValue& val ue, SVGPathSegType segType, PathCoordinates& coordinates)
128 { 130 {
129 const InterpolableList& list = toInterpolableList(value); 131 const InterpolableList& list = toInterpolableList(value);
130 bool isAbsolute = isAbsolutePathSegType(segType); 132 bool isAbsolute = isAbsolutePathSegType(segType);
131 PathSegmentData segment; 133 PathSegmentData segment;
132 segment.command = segType; 134 segment.command = segType;
133 segment.point1.setX(consumeInterpolableControlAxis(list.get(0), isAbsolute, coordinates.currentX)); 135 segment.point1.setX(consumeInterpolableControlAxis(list.get(0), isAbsolute, coordinates.currentX));
134 segment.point1.setY(consumeInterpolableControlAxis(list.get(1), isAbsolute, coordinates.currentY)); 136 segment.point1.setY(consumeInterpolableControlAxis(list.get(1), isAbsolute, coordinates.currentY));
135 segment.targetPoint.setX(consumeInterpolableCoordinateAxis(list.get(2), isAb solute, coordinates.currentX)); 137 segment.targetPoint.setX(consumeInterpolableCoordinateAxis(list.get(2), isAb solute, coordinates.currentX));
136 segment.targetPoint.setY(consumeInterpolableCoordinateAxis(list.get(3), isAb solute, coordinates.currentY)); 138 segment.targetPoint.setY(consumeInterpolableCoordinateAxis(list.get(3), isAb solute, coordinates.currentY));
137 return segment; 139 return segment;
138 } 140 }
139 141
140 PassOwnPtr<InterpolableValue> consumeArc(const PathSegmentData& segment, PathCoo rdinates& coordinates) 142 std::unique_ptr<InterpolableValue> consumeArc(const PathSegmentData& segment, Pa thCoordinates& coordinates)
141 { 143 {
142 bool isAbsolute = isAbsolutePathSegType(segment.command); 144 bool isAbsolute = isAbsolutePathSegType(segment.command);
143 OwnPtr<InterpolableList> result = InterpolableList::create(7); 145 std::unique_ptr<InterpolableList> result = InterpolableList::create(7);
144 result->set(0, consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.cu rrentX)); 146 result->set(0, consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.cu rrentX));
145 result->set(1, consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.cu rrentY)); 147 result->set(1, consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.cu rrentY));
146 result->set(2, InterpolableNumber::create(segment.r1())); 148 result->set(2, InterpolableNumber::create(segment.r1()));
147 result->set(3, InterpolableNumber::create(segment.r2())); 149 result->set(3, InterpolableNumber::create(segment.r2()));
148 result->set(4, InterpolableNumber::create(segment.arcAngle())); 150 result->set(4, InterpolableNumber::create(segment.arcAngle()));
149 result->set(5, InterpolableBool::create(segment.largeArcFlag())); 151 result->set(5, InterpolableBool::create(segment.largeArcFlag()));
150 result->set(6, InterpolableBool::create(segment.sweepFlag())); 152 result->set(6, InterpolableBool::create(segment.sweepFlag()));
151 return std::move(result); 153 return std::move(result);
152 } 154 }
153 155
154 PathSegmentData consumeInterpolableArc(const InterpolableValue& value, SVGPathSe gType segType, PathCoordinates& coordinates) 156 PathSegmentData consumeInterpolableArc(const InterpolableValue& value, SVGPathSe gType segType, PathCoordinates& coordinates)
155 { 157 {
156 const InterpolableList& list = toInterpolableList(value); 158 const InterpolableList& list = toInterpolableList(value);
157 bool isAbsolute = isAbsolutePathSegType(segType); 159 bool isAbsolute = isAbsolutePathSegType(segType);
158 PathSegmentData segment; 160 PathSegmentData segment;
159 segment.command = segType; 161 segment.command = segType;
160 segment.targetPoint.setX(consumeInterpolableCoordinateAxis(list.get(0), isAb solute, coordinates.currentX)); 162 segment.targetPoint.setX(consumeInterpolableCoordinateAxis(list.get(0), isAb solute, coordinates.currentX));
161 segment.targetPoint.setY(consumeInterpolableCoordinateAxis(list.get(1), isAb solute, coordinates.currentY)); 163 segment.targetPoint.setY(consumeInterpolableCoordinateAxis(list.get(1), isAb solute, coordinates.currentY));
162 segment.arcRadii().setX(toInterpolableNumber(list.get(2))->value()); 164 segment.arcRadii().setX(toInterpolableNumber(list.get(2))->value());
163 segment.arcRadii().setY(toInterpolableNumber(list.get(3))->value()); 165 segment.arcRadii().setY(toInterpolableNumber(list.get(3))->value());
164 segment.setArcAngle(toInterpolableNumber(list.get(4))->value()); 166 segment.setArcAngle(toInterpolableNumber(list.get(4))->value());
165 segment.arcLarge = toInterpolableBool(list.get(5))->value(); 167 segment.arcLarge = toInterpolableBool(list.get(5))->value();
166 segment.arcSweep = toInterpolableBool(list.get(6))->value(); 168 segment.arcSweep = toInterpolableBool(list.get(6))->value();
167 return segment; 169 return segment;
168 } 170 }
169 171
170 PassOwnPtr<InterpolableValue> consumeLinetoHorizontal(const PathSegmentData& seg ment, PathCoordinates& coordinates) 172 std::unique_ptr<InterpolableValue> consumeLinetoHorizontal(const PathSegmentData & segment, PathCoordinates& coordinates)
171 { 173 {
172 bool isAbsolute = isAbsolutePathSegType(segment.command); 174 bool isAbsolute = isAbsolutePathSegType(segment.command);
173 return consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.currentX); 175 return consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.currentX);
174 } 176 }
175 177
176 PathSegmentData consumeInterpolableLinetoHorizontal(const InterpolableValue& val ue, SVGPathSegType segType, PathCoordinates& coordinates) 178 PathSegmentData consumeInterpolableLinetoHorizontal(const InterpolableValue& val ue, SVGPathSegType segType, PathCoordinates& coordinates)
177 { 179 {
178 bool isAbsolute = isAbsolutePathSegType(segType); 180 bool isAbsolute = isAbsolutePathSegType(segType);
179 PathSegmentData segment; 181 PathSegmentData segment;
180 segment.command = segType; 182 segment.command = segType;
181 segment.targetPoint.setX(consumeInterpolableCoordinateAxis(&value, isAbsolut e, coordinates.currentX)); 183 segment.targetPoint.setX(consumeInterpolableCoordinateAxis(&value, isAbsolut e, coordinates.currentX));
182 return segment; 184 return segment;
183 } 185 }
184 186
185 PassOwnPtr<InterpolableValue> consumeLinetoVertical(const PathSegmentData& segme nt, PathCoordinates& coordinates) 187 std::unique_ptr<InterpolableValue> consumeLinetoVertical(const PathSegmentData& segment, PathCoordinates& coordinates)
186 { 188 {
187 bool isAbsolute = isAbsolutePathSegType(segment.command); 189 bool isAbsolute = isAbsolutePathSegType(segment.command);
188 return consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.currentY); 190 return consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.currentY);
189 } 191 }
190 192
191 PathSegmentData consumeInterpolableLinetoVertical(const InterpolableValue& value , SVGPathSegType segType, PathCoordinates& coordinates) 193 PathSegmentData consumeInterpolableLinetoVertical(const InterpolableValue& value , SVGPathSegType segType, PathCoordinates& coordinates)
192 { 194 {
193 bool isAbsolute = isAbsolutePathSegType(segType); 195 bool isAbsolute = isAbsolutePathSegType(segType);
194 PathSegmentData segment; 196 PathSegmentData segment;
195 segment.command = segType; 197 segment.command = segType;
196 segment.targetPoint.setY(consumeInterpolableCoordinateAxis(&value, isAbsolut e, coordinates.currentY)); 198 segment.targetPoint.setY(consumeInterpolableCoordinateAxis(&value, isAbsolut e, coordinates.currentY));
197 return segment; 199 return segment;
198 } 200 }
199 201
200 PassOwnPtr<InterpolableValue> consumeCurvetoCubicSmooth(const PathSegmentData& s egment, PathCoordinates& coordinates) 202 std::unique_ptr<InterpolableValue> consumeCurvetoCubicSmooth(const PathSegmentDa ta& segment, PathCoordinates& coordinates)
201 { 203 {
202 bool isAbsolute = isAbsolutePathSegType(segment.command); 204 bool isAbsolute = isAbsolutePathSegType(segment.command);
203 OwnPtr<InterpolableList> result = InterpolableList::create(4); 205 std::unique_ptr<InterpolableList> result = InterpolableList::create(4);
204 result->set(0, consumeControlAxis(segment.x2(), isAbsolute, coordinates.curr entX)); 206 result->set(0, consumeControlAxis(segment.x2(), isAbsolute, coordinates.curr entX));
205 result->set(1, consumeControlAxis(segment.y2(), isAbsolute, coordinates.curr entY)); 207 result->set(1, consumeControlAxis(segment.y2(), isAbsolute, coordinates.curr entY));
206 result->set(2, consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.cu rrentX)); 208 result->set(2, consumeCoordinateAxis(segment.x(), isAbsolute, coordinates.cu rrentX));
207 result->set(3, consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.cu rrentY)); 209 result->set(3, consumeCoordinateAxis(segment.y(), isAbsolute, coordinates.cu rrentY));
208 return std::move(result); 210 return std::move(result);
209 } 211 }
210 212
211 PathSegmentData consumeInterpolableCurvetoCubicSmooth(const InterpolableValue& v alue, SVGPathSegType segType, PathCoordinates& coordinates) 213 PathSegmentData consumeInterpolableCurvetoCubicSmooth(const InterpolableValue& v alue, SVGPathSegType segType, PathCoordinates& coordinates)
212 { 214 {
213 const InterpolableList& list = toInterpolableList(value); 215 const InterpolableList& list = toInterpolableList(value);
214 bool isAbsolute = isAbsolutePathSegType(segType); 216 bool isAbsolute = isAbsolutePathSegType(segType);
215 PathSegmentData segment; 217 PathSegmentData segment;
216 segment.command = segType; 218 segment.command = segType;
217 segment.point2.setX(consumeInterpolableControlAxis(list.get(0), isAbsolute, coordinates.currentX)); 219 segment.point2.setX(consumeInterpolableControlAxis(list.get(0), isAbsolute, coordinates.currentX));
218 segment.point2.setY(consumeInterpolableControlAxis(list.get(1), isAbsolute, coordinates.currentY)); 220 segment.point2.setY(consumeInterpolableControlAxis(list.get(1), isAbsolute, coordinates.currentY));
219 segment.targetPoint.setX(consumeInterpolableCoordinateAxis(list.get(2), isAb solute, coordinates.currentX)); 221 segment.targetPoint.setX(consumeInterpolableCoordinateAxis(list.get(2), isAb solute, coordinates.currentX));
220 segment.targetPoint.setY(consumeInterpolableCoordinateAxis(list.get(3), isAb solute, coordinates.currentY)); 222 segment.targetPoint.setY(consumeInterpolableCoordinateAxis(list.get(3), isAb solute, coordinates.currentY));
221 return segment; 223 return segment;
222 } 224 }
223 225
224 PassOwnPtr<InterpolableValue> SVGPathSegInterpolationFunctions::consumePathSeg(c onst PathSegmentData& segment, PathCoordinates& coordinates) 226 std::unique_ptr<InterpolableValue> SVGPathSegInterpolationFunctions::consumePath Seg(const PathSegmentData& segment, PathCoordinates& coordinates)
225 { 227 {
226 switch (segment.command) { 228 switch (segment.command) {
227 case PathSegClosePath: 229 case PathSegClosePath:
228 return consumeClosePath(segment, coordinates); 230 return consumeClosePath(segment, coordinates);
229 231
230 case PathSegMoveToAbs: 232 case PathSegMoveToAbs:
231 case PathSegMoveToRel: 233 case PathSegMoveToRel:
232 case PathSegLineToAbs: 234 case PathSegLineToAbs:
233 case PathSegLineToRel: 235 case PathSegLineToRel:
234 case PathSegCurveToQuadraticSmoothAbs: 236 case PathSegCurveToQuadraticSmoothAbs:
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 return consumeInterpolableCurvetoCubicSmooth(value, segType, coordinates ); 307 return consumeInterpolableCurvetoCubicSmooth(value, segType, coordinates );
306 308
307 case PathSegUnknown: 309 case PathSegUnknown:
308 default: 310 default:
309 ASSERT_NOT_REACHED(); 311 ASSERT_NOT_REACHED();
310 return PathSegmentData(); 312 return PathSegmentData();
311 } 313 }
312 } 314 }
313 315
314 } // namespace blink 316 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698