1c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// found in the LICENSE file. 4c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 5c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "config.h" 69e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#include "core/dom/DOMMatrix.h" 7c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 8c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 9c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)bool DOMMatrixReadOnly::is2D() const 11c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles){ 12c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) return m_is2D; 13c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} 14c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 15c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)bool DOMMatrixReadOnly::isIdentity() const 16c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles){ 179e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) return m_matrix.isIdentity(); 189e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)} 199e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) 207242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano TucciDOMMatrix* DOMMatrixReadOnly::multiply(DOMMatrix* other) 217242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci{ 227242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return DOMMatrix::create(this)->multiplySelf(other); 237242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} 247242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 259e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)DOMMatrix* DOMMatrixReadOnly::translate(double tx, double ty, double tz) 269e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles){ 279e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) return DOMMatrix::create(this)->translateSelf(tx, ty, tz); 289e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)} 299e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) 309e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)DOMMatrix* DOMMatrixReadOnly::scale(double scale, double ox, double oy) 319e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles){ 329e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) return DOMMatrix::create(this)->scaleSelf(scale, ox, oy); 339e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)} 349e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) 359e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)DOMMatrix* DOMMatrixReadOnly::scale3d(double scale, double ox, double oy, double oz) 369e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles){ 379e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) return DOMMatrix::create(this)->scale3dSelf(scale, ox, oy, oz); 389e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)} 399e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) 409e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)DOMMatrix* DOMMatrixReadOnly::scaleNonUniform(double sx, double sy, double sz, 419e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) double ox, double oy, double oz) 429e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles){ 439e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) return DOMMatrix::create(this)->scaleNonUniformSelf(sx, sy, sz, ox, oy, oz); 44c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} 45c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 467242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano TucciPassRefPtr<Float32Array> DOMMatrixReadOnly::toFloat32Array() const 477242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci{ 487242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci float array[] = { 497242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci m_matrix.m11(), m_matrix.m12(), m_matrix.m13(), m_matrix.m14(), 507242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci m_matrix.m21(), m_matrix.m22(), m_matrix.m23(), m_matrix.m24(), 517242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci m_matrix.m31(), m_matrix.m32(), m_matrix.m33(), m_matrix.m34(), 527242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci m_matrix.m41(), m_matrix.m42(), m_matrix.m43(), m_matrix.m44() 537242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci }; 547242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 557242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return Float32Array::create(array, 16); 567242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} 577242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 587242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano TucciPassRefPtr<Float64Array> DOMMatrixReadOnly::toFloat64Array() const 597242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci{ 607242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci double array[] = { 617242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci m_matrix.m11(), m_matrix.m12(), m_matrix.m13(), m_matrix.m14(), 627242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci m_matrix.m21(), m_matrix.m22(), m_matrix.m23(), m_matrix.m24(), 637242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci m_matrix.m31(), m_matrix.m32(), m_matrix.m33(), m_matrix.m34(), 647242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci m_matrix.m41(), m_matrix.m42(), m_matrix.m43(), m_matrix.m44() 657242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci }; 667242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 677242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return Float64Array::create(array, 16); 687242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} 697242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 70c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 71