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

Side by Side Diff: third_party/WebKit/Source/core/css/cssom/CSSRotation.cpp

Issue 2867883003: [CSS Typed OM] Delete obsolete number and length classes from Typed OM (Closed)
Patch Set: rebase Created 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/css/cssom/CSSRotation.h" 5 #include "core/css/cssom/CSSRotation.h"
6 6
7 #include "core/css/CSSFunctionValue.h" 7 #include "core/css/CSSFunctionValue.h"
8 #include "core/css/CSSPrimitiveValue.h" 8 #include "core/css/CSSPrimitiveValue.h"
9 9
10 namespace blink { 10 namespace blink {
11 11
12 namespace { 12 namespace {
13 13
14 bool IsNumberValue(const CSSValue& value) { 14 bool IsNumberValue(const CSSValue& value) {
15 return value.IsPrimitiveValue() && ToCSSPrimitiveValue(value).IsNumber(); 15 return value.IsPrimitiveValue() && ToCSSPrimitiveValue(value).IsNumber();
16 } 16 }
17 17
18 CSSRotation* FromCSSRotate(const CSSFunctionValue& value) { 18 CSSRotation* FromCSSRotate(const CSSFunctionValue& value) {
19 DCHECK_EQ(value.length(), 1UL); 19 DCHECK_EQ(value.length(), 1UL);
20 const CSSPrimitiveValue& primitive_value = ToCSSPrimitiveValue(value.Item(0)); 20 const CSSPrimitiveValue& primitive_value = ToCSSPrimitiveValue(value.Item(0));
21 if (primitive_value.IsCalculated() || !primitive_value.IsAngle()) 21 if (primitive_value.IsCalculated() || !primitive_value.IsAngle())
22 return nullptr; 22 return nullptr;
23 return CSSRotation::Create(CSSAngleValue::FromCSSValue(primitive_value)); 23 return CSSRotation::Create(CSSNumericValue::FromCSSValue(primitive_value));
24 } 24 }
25 25
26 CSSRotation* FromCSSRotate3d(const CSSFunctionValue& value) { 26 CSSRotation* FromCSSRotate3d(const CSSFunctionValue& value) {
27 DCHECK_EQ(value.length(), 4UL); 27 DCHECK_EQ(value.length(), 4UL);
28 DCHECK(IsNumberValue(value.Item(0))); 28 DCHECK(IsNumberValue(value.Item(0)));
29 DCHECK(IsNumberValue(value.Item(1))); 29 DCHECK(IsNumberValue(value.Item(1)));
30 DCHECK(IsNumberValue(value.Item(2))); 30 DCHECK(IsNumberValue(value.Item(2)));
31 const CSSPrimitiveValue& angle = ToCSSPrimitiveValue(value.Item(3)); 31 const CSSPrimitiveValue& angle = ToCSSPrimitiveValue(value.Item(3));
32 if (angle.IsCalculated() || !angle.IsAngle()) 32 if (angle.IsCalculated() || !angle.IsAngle())
33 return nullptr; 33 return nullptr;
34 34
35 double x = ToCSSPrimitiveValue(value.Item(0)).GetDoubleValue(); 35 double x = ToCSSPrimitiveValue(value.Item(0)).GetDoubleValue();
36 double y = ToCSSPrimitiveValue(value.Item(1)).GetDoubleValue(); 36 double y = ToCSSPrimitiveValue(value.Item(1)).GetDoubleValue();
37 double z = ToCSSPrimitiveValue(value.Item(2)).GetDoubleValue(); 37 double z = ToCSSPrimitiveValue(value.Item(2)).GetDoubleValue();
38 38
39 return CSSRotation::Create(x, y, z, CSSAngleValue::FromCSSValue(angle)); 39 return CSSRotation::Create(x, y, z, CSSNumericValue::FromCSSValue(angle));
40 } 40 }
41 41
42 CSSRotation* FromCSSRotateXYZ(const CSSFunctionValue& value) { 42 CSSRotation* FromCSSRotateXYZ(const CSSFunctionValue& value) {
43 DCHECK_EQ(value.length(), 1UL); 43 DCHECK_EQ(value.length(), 1UL);
44 const CSSPrimitiveValue& primitive_value = ToCSSPrimitiveValue(value.Item(0)); 44 const CSSPrimitiveValue& primitive_value = ToCSSPrimitiveValue(value.Item(0));
45 if (primitive_value.IsCalculated()) 45 if (primitive_value.IsCalculated())
46 return nullptr; 46 return nullptr;
47 CSSAngleValue* angle = CSSAngleValue::FromCSSValue(primitive_value); 47 CSSNumericValue* angle = CSSNumericValue::FromCSSValue(primitive_value);
48 switch (value.FunctionType()) { 48 switch (value.FunctionType()) {
49 case CSSValueRotateX: 49 case CSSValueRotateX:
50 return CSSRotation::Create(1, 0, 0, angle); 50 return CSSRotation::Create(1, 0, 0, angle);
51 case CSSValueRotateY: 51 case CSSValueRotateY:
52 return CSSRotation::Create(0, 1, 0, angle); 52 return CSSRotation::Create(0, 1, 0, angle);
53 case CSSValueRotateZ: 53 case CSSValueRotateZ:
54 return CSSRotation::Create(0, 0, 1, angle); 54 return CSSRotation::Create(0, 0, 1, angle);
55 default: 55 default:
56 NOTREACHED(); 56 NOTREACHED();
57 return nullptr; 57 return nullptr;
(...skipping 12 matching lines...) Expand all
70 case CSSValueRotateY: 70 case CSSValueRotateY:
71 case CSSValueRotateZ: 71 case CSSValueRotateZ:
72 return FromCSSRotateXYZ(value); 72 return FromCSSRotateXYZ(value);
73 default: 73 default:
74 NOTREACHED(); 74 NOTREACHED();
75 return nullptr; 75 return nullptr;
76 } 76 }
77 } 77 }
78 78
79 CSSFunctionValue* CSSRotation::ToCSSValue() const { 79 CSSFunctionValue* CSSRotation::ToCSSValue() const {
80 CSSFunctionValue* result = 80 return nullptr;
81 CSSFunctionValue::Create(is2d_ ? CSSValueRotate : CSSValueRotate3d); 81 // TODO(meade): Re-implement this when we finish rewriting number/length
82 if (!is2d_) { 82 // types.
83 result->Append( 83 // CSSFunctionValue* result =
84 *CSSPrimitiveValue::Create(x_, CSSPrimitiveValue::UnitType::kNumber)); 84 // CSSFunctionValue::Create(is2d_ ? CSSValueRotate : CSSValueRotate3d);
85 result->Append( 85 // if (!is2d_) {
86 *CSSPrimitiveValue::Create(y_, CSSPrimitiveValue::UnitType::kNumber)); 86 // result->Append(
87 result->Append( 87 // *CSSPrimitiveValue::Create(x_, CSSPrimitiveValue::UnitType::kNumber));
88 *CSSPrimitiveValue::Create(z_, CSSPrimitiveValue::UnitType::kNumber)); 88 // result->Append(
89 } 89 // *CSSPrimitiveValue::Create(y_, CSSPrimitiveValue::UnitType::kNumber));
90 result->Append(*CSSPrimitiveValue::Create(angle_->Value(), angle_->Unit())); 90 // result->Append(
91 return result; 91 // *CSSPrimitiveValue::Create(z_, CSSPrimitiveValue::UnitType::kNumber));
92 // }
93 // result->Append(*CSSPrimitiveValue::Create(angle_->Value(),
94 // angle_->Unit()));
95 // return result;
92 } 96 }
93 97
94 } // namespace blink 98 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/cssom/CSSRotation.h ('k') | third_party/WebKit/Source/core/css/cssom/CSSRotation.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698