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

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

Issue 2920093002: [css-typed-om] use DOMMatrix::Create() instead of fromMatrix(). (Closed)
Patch Set: 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/CSSMatrixComponent.h" 5 #include "core/css/cssom/CSSMatrixComponent.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <memory> 8 #include <memory>
9 #include "core/css/CSSPrimitiveValue.h" 9 #include "core/css/CSSPrimitiveValue.h"
10 #include "platform/wtf/MathExtras.h" 10 #include "platform/wtf/MathExtras.h"
(...skipping 24 matching lines...) Expand all
35 for (double value : values) { 35 for (double value : values) {
36 result->Append(*CSSPrimitiveValue::Create( 36 result->Append(*CSSPrimitiveValue::Create(
37 value, CSSPrimitiveValue::UnitType::kNumber)); 37 value, CSSPrimitiveValue::UnitType::kNumber));
38 } 38 }
39 } 39 }
40 40
41 return result; 41 return result;
42 } 42 }
43 43
44 CSSMatrixComponent* CSSMatrixComponent::Perspective(double length) { 44 CSSMatrixComponent* CSSMatrixComponent::Perspective(double length) {
45 DOMMatrixInit init; 45 DOMMatrix* matrix = DOMMatrix::Create();
46 DOMMatrix* matrix = DOMMatrix::fromMatrix(init, ASSERT_NO_EXCEPTION);
47 46
48 if (length != 0) 47 if (length != 0)
49 matrix->setM34(-1 / length); 48 matrix->setM34(-1 / length);
50 return new CSSMatrixComponent(matrix, kPerspectiveType); 49 return new CSSMatrixComponent(matrix, kPerspectiveType);
51 } 50 }
52 51
53 CSSMatrixComponent* CSSMatrixComponent::Rotate(double angle) { 52 CSSMatrixComponent* CSSMatrixComponent::Rotate(double angle) {
54 DOMMatrixInit init; 53 DOMMatrix* matrix = DOMMatrix::Create();
55 DOMMatrix* matrix = DOMMatrix::fromMatrix(init, ASSERT_NO_EXCEPTION);
56 54
57 matrix->rotateSelf(angle); 55 matrix->rotateSelf(angle);
58 return new CSSMatrixComponent(matrix, kRotationType); 56 return new CSSMatrixComponent(matrix, kRotationType);
59 } 57 }
60 58
61 CSSMatrixComponent* CSSMatrixComponent::Rotate3d(double angle, 59 CSSMatrixComponent* CSSMatrixComponent::Rotate3d(double angle,
62 double x, 60 double x,
63 double y, 61 double y,
64 double z) { 62 double z) {
65 DOMMatrixInit init; 63 DOMMatrix* matrix = DOMMatrix::Create();
66 DOMMatrix* matrix = DOMMatrix::fromMatrix(init, ASSERT_NO_EXCEPTION);
67 64
68 matrix->rotateAxisAngleSelf(x, y, z, angle); 65 matrix->rotateAxisAngleSelf(x, y, z, angle);
69 return new CSSMatrixComponent(matrix, kRotation3DType); 66 return new CSSMatrixComponent(matrix, kRotation3DType);
70 } 67 }
71 68
72 CSSMatrixComponent* CSSMatrixComponent::Scale(double x, double y) { 69 CSSMatrixComponent* CSSMatrixComponent::Scale(double x, double y) {
73 DOMMatrixInit init; 70 DOMMatrix* matrix = DOMMatrix::Create();
74 DOMMatrix* matrix = DOMMatrix::fromMatrix(init, ASSERT_NO_EXCEPTION);
75 71
76 matrix->setM11(x); 72 matrix->setM11(x);
77 matrix->setM22(y); 73 matrix->setM22(y);
78 return new CSSMatrixComponent(matrix, kScaleType); 74 return new CSSMatrixComponent(matrix, kScaleType);
79 } 75 }
80 76
81 CSSMatrixComponent* CSSMatrixComponent::Scale3d(double x, double y, double z) { 77 CSSMatrixComponent* CSSMatrixComponent::Scale3d(double x, double y, double z) {
82 DOMMatrixInit init; 78 DOMMatrix* matrix = DOMMatrix::Create();
83 DOMMatrix* matrix = DOMMatrix::fromMatrix(init, ASSERT_NO_EXCEPTION);
84 79
85 matrix->setM11(x); 80 matrix->setM11(x);
86 matrix->setM22(y); 81 matrix->setM22(y);
87 matrix->setM33(z); 82 matrix->setM33(z);
88 return new CSSMatrixComponent(matrix, kScale3DType); 83 return new CSSMatrixComponent(matrix, kScale3DType);
89 } 84 }
90 85
91 CSSMatrixComponent* CSSMatrixComponent::Skew(double ax, double ay) { 86 CSSMatrixComponent* CSSMatrixComponent::Skew(double ax, double ay) {
92 double tan_ax = std::tan(deg2rad(ax)); 87 double tan_ax = std::tan(deg2rad(ax));
93 double tan_ay = std::tan(deg2rad(ay)); 88 double tan_ay = std::tan(deg2rad(ay));
94 89
95 DOMMatrixInit init; 90 DOMMatrix* matrix = DOMMatrix::Create();
96 DOMMatrix* matrix = DOMMatrix::fromMatrix(init, ASSERT_NO_EXCEPTION);
97 91
98 matrix->setM12(tan_ay); 92 matrix->setM12(tan_ay);
99 matrix->setM21(tan_ax); 93 matrix->setM21(tan_ax);
100 return new CSSMatrixComponent(matrix, kSkewType); 94 return new CSSMatrixComponent(matrix, kSkewType);
101 } 95 }
102 96
103 CSSMatrixComponent* CSSMatrixComponent::Translate(double x, double y) { 97 CSSMatrixComponent* CSSMatrixComponent::Translate(double x, double y) {
104 DOMMatrixInit init; 98 DOMMatrix* matrix = DOMMatrix::Create();
105 DOMMatrix* matrix = DOMMatrix::fromMatrix(init, ASSERT_NO_EXCEPTION);
106 99
107 matrix->setM41(x); 100 matrix->setM41(x);
108 matrix->setM42(y); 101 matrix->setM42(y);
109 return new CSSMatrixComponent(matrix, kTranslationType); 102 return new CSSMatrixComponent(matrix, kTranslationType);
110 } 103 }
111 104
112 CSSMatrixComponent* CSSMatrixComponent::Translate3d(double x, 105 CSSMatrixComponent* CSSMatrixComponent::Translate3d(double x,
113 double y, 106 double y,
114 double z) { 107 double z) {
115 DOMMatrixInit init; 108 DOMMatrix* matrix = DOMMatrix::Create();
116 DOMMatrix* matrix = DOMMatrix::fromMatrix(init, ASSERT_NO_EXCEPTION);
117 109
118 matrix->setM41(x); 110 matrix->setM41(x);
119 matrix->setM42(y); 111 matrix->setM42(y);
120 matrix->setM43(z); 112 matrix->setM43(z);
121 return new CSSMatrixComponent(matrix, kTranslation3DType); 113 return new CSSMatrixComponent(matrix, kTranslation3DType);
122 } 114 }
123 115
124 CSSMatrixComponent::CSSMatrixComponent(DOMMatrixReadOnly* matrix) 116 CSSMatrixComponent::CSSMatrixComponent(DOMMatrixReadOnly* matrix)
125 : CSSTransformComponent() { 117 : CSSTransformComponent() {
126 matrix_ = DOMMatrix::Create(matrix); 118 matrix_ = DOMMatrix::Create(matrix);
127 is2d_ = matrix->is2D(); 119 is2d_ = matrix->is2D();
128 } 120 }
129 121
130 CSSMatrixComponent::CSSMatrixComponent(DOMMatrixReadOnly* matrix, 122 CSSMatrixComponent::CSSMatrixComponent(DOMMatrixReadOnly* matrix,
131 TransformComponentType from_type) 123 TransformComponentType from_type)
132 : CSSTransformComponent() { 124 : CSSTransformComponent() {
133 matrix_ = DOMMatrix::Create(matrix); 125 matrix_ = DOMMatrix::Create(matrix);
134 is2d_ = Is2DComponentType(from_type); 126 is2d_ = Is2DComponentType(from_type);
135 } 127 }
136 128
137 } // namespace blink 129 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698