Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / dom / DOMMatrix.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 DOMMatrix_h
6 #define DOMMatrix_h
7
8 #include "core/dom/DOMMatrixReadOnly.h"
9
10 namespace blink {
11
12 class DOMMatrix : public DOMMatrixReadOnly {
13 public:
14     static DOMMatrix* create();
15     static DOMMatrix* create(DOMMatrixReadOnly*);
16
17     void setA(double value) { setM11(value); }
18     void setB(double value) { setM12(value); }
19     void setC(double value) { setM21(value); }
20     void setD(double value) { setM22(value); }
21     void setE(double value) { setM41(value); }
22     void setF(double value) { setM42(value); }
23
24     void setM11(double value) { m_matrix[0][0] = value; }
25     void setM12(double value) { m_matrix[0][1] = value; }
26     void setM13(double value) { m_matrix[0][2] = value; setIs2D(!value); }
27     void setM14(double value) { m_matrix[0][3] = value; setIs2D(!value); }
28     void setM21(double value) { m_matrix[1][0] = value; }
29     void setM22(double value) { m_matrix[1][1] = value; }
30     void setM23(double value) { m_matrix[1][2] = value; setIs2D(!value); }
31     void setM24(double value) { m_matrix[1][3] = value; setIs2D(!value); }
32     void setM31(double value) { m_matrix[2][0] = value; setIs2D(!value); }
33     void setM32(double value) { m_matrix[2][1] = value; setIs2D(!value); }
34     void setM33(double value) { m_matrix[2][2] = value; setIs2D(value != 1); }
35     void setM34(double value) { m_matrix[2][3] = value; setIs2D(!value); }
36     void setM41(double value) { m_matrix[3][0] = value; }
37     void setM42(double value) { m_matrix[3][1] = value; }
38     void setM43(double value) { m_matrix[3][2] = value; setIs2D(!value); }
39     void setM44(double value) { m_matrix[3][3] = value; setIs2D(value != 1); }
40
41 private:
42     DOMMatrix(double m11, double m12, double m13, double m14,
43         double m21, double m22, double m23, double m24,
44         double m31, double m32, double m33, double m34,
45         double m41, double m42, double m43, double m44,
46         bool is2D = true);
47
48     void setIs2D(bool value);
49 };
50
51 } // namespace blink
52
53 #endif