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

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

Issue 2240513002: Implement DOMMatrixReadOnly multiple and constructor functions Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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 | third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/ScriptWrappable.h" 8 #include "bindings/core/v8/ScriptWrappable.h"
9 #include "core/dom/DOMTypedArray.h" 9 #include "core/dom/DOMTypedArray.h"
10 #include "platform/heap/Handle.h" 10 #include "platform/heap/Handle.h"
11 #include "platform/transforms/TransformationMatrix.h" 11 #include "platform/transforms/TransformationMatrix.h"
12 #include "wtf/Vector.h"
12 #include <memory> 13 #include <memory>
13 14
14 namespace blink { 15 namespace blink {
15 16
16 class DOMMatrix; 17 class DOMMatrix;
17 18
18 class DOMMatrixReadOnly : public GarbageCollectedFinalized<DOMMatrixReadOnly>, p ublic ScriptWrappable { 19 class DOMMatrixReadOnly : public GarbageCollectedFinalized<DOMMatrixReadOnly>, p ublic ScriptWrappable {
19 DEFINE_WRAPPERTYPEINFO(); 20 DEFINE_WRAPPERTYPEINFO();
20 public: 21 public:
21 virtual ~DOMMatrixReadOnly(); 22 virtual ~DOMMatrixReadOnly();
23 static DOMMatrixReadOnly* create(Vector<double>);
24 static DOMMatrixReadOnly* create(DOMMatrixReadOnly* other);
22 25
23 double a() const { return m_matrix->m11(); } 26 double a() const { return m_matrix->m11(); }
24 double b() const { return m_matrix->m12(); } 27 double b() const { return m_matrix->m12(); }
25 double c() const { return m_matrix->m21(); } 28 double c() const { return m_matrix->m21(); }
26 double d() const { return m_matrix->m22(); } 29 double d() const { return m_matrix->m22(); }
27 double e() const { return m_matrix->m41(); } 30 double e() const { return m_matrix->m41(); }
28 double f() const { return m_matrix->m42(); } 31 double f() const { return m_matrix->m42(); }
29 32
30 double m11() const { return m_matrix->m11(); } 33 double m11() const { return m_matrix->m11(); }
31 double m12() const { return m_matrix->m12(); } 34 double m12() const { return m_matrix->m12(); }
32 double m13() const { return m_matrix->m13(); } 35 double m13() const { return m_matrix->m13(); }
33 double m14() const { return m_matrix->m14(); } 36 double m14() const { return m_matrix->m14(); }
34 double m21() const { return m_matrix->m21(); } 37 double m21() const { return m_matrix->m21(); }
35 double m22() const { return m_matrix->m22(); } 38 double m22() const { return m_matrix->m22(); }
36 double m23() const { return m_matrix->m23(); } 39 double m23() const { return m_matrix->m23(); }
37 double m24() const { return m_matrix->m24(); } 40 double m24() const { return m_matrix->m24(); }
38 double m31() const { return m_matrix->m31(); } 41 double m31() const { return m_matrix->m31(); }
39 double m32() const { return m_matrix->m32(); } 42 double m32() const { return m_matrix->m32(); }
40 double m33() const { return m_matrix->m33(); } 43 double m33() const { return m_matrix->m33(); }
41 double m34() const { return m_matrix->m34(); } 44 double m34() const { return m_matrix->m34(); }
42 double m41() const { return m_matrix->m41(); } 45 double m41() const { return m_matrix->m41(); }
43 double m42() const { return m_matrix->m42(); } 46 double m42() const { return m_matrix->m42(); }
44 double m43() const { return m_matrix->m43(); } 47 double m43() const { return m_matrix->m43(); }
45 double m44() const { return m_matrix->m44(); } 48 double m44() const { return m_matrix->m44(); }
46 49
47 bool is2D() const; 50 bool is2D() const;
48 bool isIdentity() const; 51 bool isIdentity() const;
49 52
50 DOMMatrix* multiply(DOMMatrix*); 53 DOMMatrixReadOnly* multiply(DOMMatrixReadOnly*);
51 DOMMatrix* translate(double tx, double ty, double tz = 0); 54 DOMMatrix* translate(double tx, double ty, double tz = 0);
52 DOMMatrix* scale(double scale, double ox = 0, double oy = 0); 55 DOMMatrix* scale(double scale, double ox = 0, double oy = 0);
53 DOMMatrix* scale3d(double scale, double ox = 0, double oy = 0, double oz = 0 ); 56 DOMMatrix* scale3d(double scale, double ox = 0, double oy = 0, double oz = 0 );
54 DOMMatrix* scaleNonUniform(double sx, double sy = 1, double sz = 1, 57 DOMMatrix* scaleNonUniform(double sx, double sy = 1, double sz = 1,
55 double ox = 0, double oy = 0, double oz = 0); 58 double ox = 0, double oy = 0, double oz = 0);
56 59
57 DOMFloat32Array* toFloat32Array() const; 60 DOMFloat32Array* toFloat32Array() const;
58 DOMFloat64Array* toFloat64Array() const; 61 DOMFloat64Array* toFloat64Array() const;
59 62
60 const TransformationMatrix& matrix() const { return *m_matrix; } 63 const TransformationMatrix& matrix() const { return *m_matrix; }
61 64
62 DEFINE_INLINE_TRACE() { } 65 DEFINE_INLINE_TRACE() { }
63 66
64 protected: 67 protected:
68 DOMMatrixReadOnly() {}
65 // TransformationMatrix needs to be 16-byte aligned. PartitionAlloc 69 // TransformationMatrix needs to be 16-byte aligned. PartitionAlloc
66 // supports 16-byte alignment but Oilpan doesn't. So we use an std::unique_p tr 70 // supports 16-byte alignment but Oilpan doesn't. So we use an std::unique_p tr
67 // to allocate TransformationMatrix on PartitionAlloc. 71 // to allocate TransformationMatrix on PartitionAlloc.
68 // TODO(oilpan): Oilpan should support 16-byte aligned allocations. 72 // TODO(oilpan): Oilpan should support 16-byte aligned allocations.
69 std::unique_ptr<TransformationMatrix> m_matrix; 73 std::unique_ptr<TransformationMatrix> m_matrix;
70 bool m_is2D; 74 bool m_is2D;
75
76 private:
77 DOMMatrixReadOnly(const TransformationMatrix&, bool is2D);
78 DOMMatrixReadOnly(Vector<double> sequence);
71 }; 79 };
72 80
73 } // namespace blink 81 } // namespace blink
74 82
75 #endif 83 #endif
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698