Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / dom / DOMMatrixReadOnly.h
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
3 // found in the LICENSE file.
4
5 #ifndef DOMMatrixReadOnly_h
6 #define DOMMatrixReadOnly_h
7
8 #include "bindings/core/v8/ScriptWrappable.h"
9 #include "platform/heap/Handle.h"
10
11 namespace blink {
12
13 class DOMMatrixReadOnly : public GarbageCollected<DOMMatrixReadOnly>, public ScriptWrappableBase {
14 public:
15     double a() const { return m11(); }
16     double b() const { return m12(); }
17     double c() const { return m21(); }
18     double d() const { return m22(); }
19     double e() const { return m41(); }
20     double f() const { return m42(); }
21
22     double m11() const { return m_matrix[0][0]; }
23     double m12() const { return m_matrix[0][1]; }
24     double m13() const { return m_matrix[0][2]; }
25     double m14() const { return m_matrix[0][3]; }
26     double m21() const { return m_matrix[1][0]; }
27     double m22() const { return m_matrix[1][1]; }
28     double m23() const { return m_matrix[1][2]; }
29     double m24() const { return m_matrix[1][3]; }
30     double m31() const { return m_matrix[2][0]; }
31     double m32() const { return m_matrix[2][1]; }
32     double m33() const { return m_matrix[2][2]; }
33     double m34() const { return m_matrix[2][3]; }
34     double m41() const { return m_matrix[3][0]; }
35     double m42() const { return m_matrix[3][1]; }
36     double m43() const { return m_matrix[3][2]; }
37     double m44() const { return m_matrix[3][3]; }
38
39     bool is2D() const;
40     bool isIdentity() const;
41
42     void trace(Visitor*) { }
43
44 protected:
45     double m_matrix[4][4];
46     bool m_is2D;
47 };
48
49 } // namespace blink
50
51 #endif