Home | History | Annotate | Download | only in dom
      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 #include "config.h"
      6 #include "core/dom/DOMMatrix.h"
      7 
      8 namespace blink {
      9 
     10 bool DOMMatrixReadOnly::is2D() const
     11 {
     12     return m_is2D;
     13 }
     14 
     15 bool DOMMatrixReadOnly::isIdentity() const
     16 {
     17     return m_matrix.isIdentity();
     18 }
     19 
     20 DOMMatrix* DOMMatrixReadOnly::multiply(DOMMatrix* other)
     21 {
     22     return DOMMatrix::create(this)->multiplySelf(other);
     23 }
     24 
     25 DOMMatrix* DOMMatrixReadOnly::translate(double tx, double ty, double tz)
     26 {
     27     return DOMMatrix::create(this)->translateSelf(tx, ty, tz);
     28 }
     29 
     30 DOMMatrix* DOMMatrixReadOnly::scale(double scale, double ox, double oy)
     31 {
     32     return DOMMatrix::create(this)->scaleSelf(scale, ox, oy);
     33 }
     34 
     35 DOMMatrix* DOMMatrixReadOnly::scale3d(double scale, double ox, double oy, double oz)
     36 {
     37     return DOMMatrix::create(this)->scale3dSelf(scale, ox, oy, oz);
     38 }
     39 
     40 DOMMatrix* DOMMatrixReadOnly::scaleNonUniform(double sx, double sy, double sz,
     41     double ox, double oy, double oz)
     42 {
     43     return DOMMatrix::create(this)->scaleNonUniformSelf(sx, sy, sz, ox, oy, oz);
     44 }
     45 
     46 PassRefPtr<Float32Array> DOMMatrixReadOnly::toFloat32Array() const
     47 {
     48     float array[] = {
     49         m_matrix.m11(), m_matrix.m12(), m_matrix.m13(), m_matrix.m14(),
     50         m_matrix.m21(), m_matrix.m22(), m_matrix.m23(), m_matrix.m24(),
     51         m_matrix.m31(), m_matrix.m32(), m_matrix.m33(), m_matrix.m34(),
     52         m_matrix.m41(), m_matrix.m42(), m_matrix.m43(), m_matrix.m44()
     53     };
     54 
     55     return Float32Array::create(array, 16);
     56 }
     57 
     58 PassRefPtr<Float64Array> DOMMatrixReadOnly::toFloat64Array() const
     59 {
     60     double array[] = {
     61         m_matrix.m11(), m_matrix.m12(), m_matrix.m13(), m_matrix.m14(),
     62         m_matrix.m21(), m_matrix.m22(), m_matrix.m23(), m_matrix.m24(),
     63         m_matrix.m31(), m_matrix.m32(), m_matrix.m33(), m_matrix.m34(),
     64         m_matrix.m41(), m_matrix.m42(), m_matrix.m43(), m_matrix.m44()
     65     };
     66 
     67     return Float64Array::create(array, 16);
     68 }
     69 
     70 } // namespace blink
     71