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

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

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

Powered by Google App Engine
This is Rietveld 408576698