OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. |
6 * All rights reserved. | 6 * All rights reserved. |
7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
10 * (http://www.torchmobile.com/) | 10 * (http://www.torchmobile.com/) |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 } | 222 } |
223 | 223 |
224 operations.operations().append( | 224 operations.operations().append( |
225 TranslateTransformOperation::create(tx, ty, tz, transformType)); | 225 TranslateTransformOperation::create(tx, ty, tz, transformType)); |
226 break; | 226 break; |
227 } | 227 } |
228 case TransformOperation::RotateX: | 228 case TransformOperation::RotateX: |
229 case TransformOperation::RotateY: | 229 case TransformOperation::RotateY: |
230 case TransformOperation::RotateZ: { | 230 case TransformOperation::RotateZ: { |
231 double angle = firstValue.computeDegrees(); | 231 double angle = firstValue.computeDegrees(); |
232 double x = transformType == TransformOperation::RotateX; | 232 if (transformValue->length() == 1) { |
233 double y = transformType == TransformOperation::RotateY; | 233 double x = transformType == TransformOperation::RotateX; |
234 double z = transformType == TransformOperation::RotateZ; | 234 double y = transformType == TransformOperation::RotateY; |
235 operations.operations().append( | 235 double z = transformType == TransformOperation::RotateZ; |
236 RotateTransformOperation::create(x, y, z, angle, transformType)); | 236 operations.operations().append( |
| 237 RotateTransformOperation::create(x, y, z, angle, transformType)); |
| 238 } else { |
| 239 // For SVG 'transform' attributes we generate 3-argument rotate() |
| 240 // functions. |
| 241 DCHECK_EQ(transformValue->length(), 3u); |
| 242 const CSSPrimitiveValue& secondValue = |
| 243 toCSSPrimitiveValue(transformValue->item(1)); |
| 244 const CSSPrimitiveValue& thirdValue = |
| 245 toCSSPrimitiveValue(transformValue->item(2)); |
| 246 operations.operations().append( |
| 247 RotateAroundOriginTransformOperation::create( |
| 248 angle, secondValue.computeLength<double>(conversionData), |
| 249 thirdValue.computeLength<double>(conversionData))); |
| 250 } |
237 break; | 251 break; |
238 } | 252 } |
239 case TransformOperation::Rotate3D: { | 253 case TransformOperation::Rotate3D: { |
240 const CSSPrimitiveValue& secondValue = | 254 const CSSPrimitiveValue& secondValue = |
241 toCSSPrimitiveValue(transformValue->item(1)); | 255 toCSSPrimitiveValue(transformValue->item(1)); |
242 const CSSPrimitiveValue& thirdValue = | 256 const CSSPrimitiveValue& thirdValue = |
243 toCSSPrimitiveValue(transformValue->item(2)); | 257 toCSSPrimitiveValue(transformValue->item(2)); |
244 const CSSPrimitiveValue& fourthValue = | 258 const CSSPrimitiveValue& fourthValue = |
245 toCSSPrimitiveValue(transformValue->item(3)); | 259 toCSSPrimitiveValue(transformValue->item(3)); |
246 double x = firstValue.getDoubleValue(); | 260 double x = firstValue.getDoubleValue(); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 } | 337 } |
324 default: | 338 default: |
325 ASSERT_NOT_REACHED(); | 339 ASSERT_NOT_REACHED(); |
326 break; | 340 break; |
327 } | 341 } |
328 } | 342 } |
329 return operations; | 343 return operations; |
330 } | 344 } |
331 | 345 |
332 } // namespace blink | 346 } // namespace blink |
OLD | NEW |