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

Side by Side Diff: third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.h

Issue 2283363003: GeometryInterface: Add DOMMatrixInit and fromMatrix(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 3 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef DOMMatrixReadOnly_h 5 #ifndef DOMMatrixReadOnly_h
6 #define DOMMatrixReadOnly_h 6 #define DOMMatrixReadOnly_h
7 7
8 #include "bindings/core/v8/ExceptionState.h" 8 #include "bindings/core/v8/ExceptionState.h"
9 #include "bindings/core/v8/ScriptWrappable.h" 9 #include "bindings/core/v8/ScriptWrappable.h"
10 #include "core/dom/DOMTypedArray.h" 10 #include "core/dom/DOMTypedArray.h"
11 #include "platform/heap/Handle.h" 11 #include "platform/heap/Handle.h"
12 #include "platform/transforms/TransformationMatrix.h" 12 #include "platform/transforms/TransformationMatrix.h"
13 #include <memory> 13 #include <memory>
14 14
15 namespace blink { 15 namespace blink {
16 16
17 class DOMMatrix; 17 class DOMMatrix;
18 class DOMMatrixInit;
18 19
19 class DOMMatrixReadOnly : public GarbageCollectedFinalized<DOMMatrixReadOnly>, p ublic ScriptWrappable { 20 class CORE_EXPORT DOMMatrixReadOnly : public GarbageCollectedFinalized<DOMMatrix ReadOnly>, public ScriptWrappable {
20 DEFINE_WRAPPERTYPEINFO(); 21 DEFINE_WRAPPERTYPEINFO();
21 public: 22 public:
22 static DOMMatrixReadOnly* create(Vector<double>, ExceptionState&); 23 static DOMMatrixReadOnly* create(Vector<double>, ExceptionState&);
23 static DOMMatrixReadOnly* fromFloat32Array(DOMFloat32Array*, ExceptionState& ); 24 static DOMMatrixReadOnly* fromFloat32Array(DOMFloat32Array*, ExceptionState& );
24 static DOMMatrixReadOnly* fromFloat64Array(DOMFloat64Array*, ExceptionState& ); 25 static DOMMatrixReadOnly* fromFloat64Array(DOMFloat64Array*, ExceptionState& );
25 26 static DOMMatrixReadOnly* fromMatrix(DOMMatrixInit&, ExceptionState&);
26 virtual ~DOMMatrixReadOnly(); 27 virtual ~DOMMatrixReadOnly();
27 28
28 double a() const { return m_matrix->m11(); } 29 double a() const { return m_matrix->m11(); }
29 double b() const { return m_matrix->m12(); } 30 double b() const { return m_matrix->m12(); }
30 double c() const { return m_matrix->m21(); } 31 double c() const { return m_matrix->m21(); }
31 double d() const { return m_matrix->m22(); } 32 double d() const { return m_matrix->m22(); }
32 double e() const { return m_matrix->m41(); } 33 double e() const { return m_matrix->m41(); }
33 double f() const { return m_matrix->m42(); } 34 double f() const { return m_matrix->m42(); }
34 35
35 double m11() const { return m_matrix->m11(); } 36 double m11() const { return m_matrix->m11(); }
36 double m12() const { return m_matrix->m12(); } 37 double m12() const { return m_matrix->m12(); }
37 double m13() const { return m_matrix->m13(); } 38 double m13() const { return m_matrix->m13(); }
38 double m14() const { return m_matrix->m14(); } 39 double m14() const { return m_matrix->m14(); }
39 double m21() const { return m_matrix->m21(); } 40 double m21() const { return m_matrix->m21(); }
40 double m22() const { return m_matrix->m22(); } 41 double m22() const { return m_matrix->m22(); }
41 double m23() const { return m_matrix->m23(); } 42 double m23() const { return m_matrix->m23(); }
42 double m24() const { return m_matrix->m24(); } 43 double m24() const { return m_matrix->m24(); }
43 double m31() const { return m_matrix->m31(); } 44 double m31() const { return m_matrix->m31(); }
44 double m32() const { return m_matrix->m32(); } 45 double m32() const { return m_matrix->m32(); }
45 double m33() const { return m_matrix->m33(); } 46 double m33() const { return m_matrix->m33(); }
46 double m34() const { return m_matrix->m34(); } 47 double m34() const { return m_matrix->m34(); }
47 double m41() const { return m_matrix->m41(); } 48 double m41() const { return m_matrix->m41(); }
48 double m42() const { return m_matrix->m42(); } 49 double m42() const { return m_matrix->m42(); }
49 double m43() const { return m_matrix->m43(); } 50 double m43() const { return m_matrix->m43(); }
50 double m44() const { return m_matrix->m44(); } 51 double m44() const { return m_matrix->m44(); }
51 52
52 bool is2D() const; 53 bool is2D() const;
53 bool isIdentity() const; 54 bool isIdentity() const;
54 55
55 DOMMatrix* multiply(DOMMatrix*); 56 DOMMatrix* multiply(DOMMatrixInit&, ExceptionState&);
56 DOMMatrix* translate(double tx, double ty, double tz = 0); 57 DOMMatrix* translate(double tx, double ty, double tz = 0);
57 DOMMatrix* scale(double scale, double ox = 0, double oy = 0); 58 DOMMatrix* scale(double scale, double ox = 0, double oy = 0);
58 DOMMatrix* scale3d(double scale, double ox = 0, double oy = 0, double oz = 0 ); 59 DOMMatrix* scale3d(double scale, double ox = 0, double oy = 0, double oz = 0 );
59 DOMMatrix* scaleNonUniform(double sx, double sy = 1, double sz = 1, 60 DOMMatrix* scaleNonUniform(double sx, double sy = 1, double sz = 1,
60 double ox = 0, double oy = 0, double oz = 0); 61 double ox = 0, double oy = 0, double oz = 0);
61 DOMMatrix* skewX(double sx); 62 DOMMatrix* skewX(double sx);
62 DOMMatrix* skewY(double sy); 63 DOMMatrix* skewY(double sy);
63 DOMMatrix* flipX(); 64 DOMMatrix* flipX();
64 DOMMatrix* flipY(); 65 DOMMatrix* flipY();
65 DOMMatrix* inverse(); 66 DOMMatrix* inverse();
(...skipping 23 matching lines...) Expand all
89 sequence[0], sequence[1], sequence[2], sequence[3], 90 sequence[0], sequence[1], sequence[2], sequence[3],
90 sequence[4], sequence[5], sequence[6], sequence[7], 91 sequence[4], sequence[5], sequence[6], sequence[7],
91 sequence[8], sequence[9], sequence[10], sequence[11], 92 sequence[8], sequence[9], sequence[10], sequence[11],
92 sequence[12], sequence[13], sequence[14], sequence[15]); 93 sequence[12], sequence[13], sequence[14], sequence[15]);
93 m_is2D = false; 94 m_is2D = false;
94 } else { 95 } else {
95 NOTREACHED(); 96 NOTREACHED();
96 } 97 }
97 } 98 }
98 99
100 static bool validateAndFixup(DOMMatrixInit&, ExceptionState&);
99 // TransformationMatrix needs to be 16-byte aligned. PartitionAlloc 101 // TransformationMatrix needs to be 16-byte aligned. PartitionAlloc
100 // supports 16-byte alignment but Oilpan doesn't. So we use an std::unique_p tr 102 // supports 16-byte alignment but Oilpan doesn't. So we use an std::unique_p tr
101 // to allocate TransformationMatrix on PartitionAlloc. 103 // to allocate TransformationMatrix on PartitionAlloc.
102 // TODO(oilpan): Oilpan should support 16-byte aligned allocations. 104 // TODO(oilpan): Oilpan should support 16-byte aligned allocations.
103 std::unique_ptr<TransformationMatrix> m_matrix; 105 std::unique_ptr<TransformationMatrix> m_matrix;
104 bool m_is2D; 106 bool m_is2D;
105 }; 107 };
106 108
107 } // namespace blink 109 } // namespace blink
108 110
109 #endif 111 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698