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