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)#ifndef DOMMatrix_h 6c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define DOMMatrix_h 7c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 8c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "core/dom/DOMMatrixReadOnly.h" 9c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 11c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 12c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)class DOMMatrix : public DOMMatrixReadOnly { 13c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)public: 14c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) static DOMMatrix* create(); 15c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) static DOMMatrix* create(DOMMatrixReadOnly*); 16c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 179e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setA(double value) { m_matrix.setM11(value); } 189e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setB(double value) { m_matrix.setM12(value); } 199e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setC(double value) { m_matrix.setM21(value); } 209e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setD(double value) { m_matrix.setM22(value); } 219e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setE(double value) { m_matrix.setM41(value); } 229e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setF(double value) { m_matrix.setM42(value); } 239e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) 249e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM11(double value) { m_matrix.setM11(value); } 259e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM12(double value) { m_matrix.setM12(value); } 269e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM13(double value) { m_matrix.setM13(value); setIs2D(!value); } 279e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM14(double value) { m_matrix.setM14(value); setIs2D(!value); } 289e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM21(double value) { m_matrix.setM21(value); } 299e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM22(double value) { m_matrix.setM22(value); } 309e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM23(double value) { m_matrix.setM23(value); setIs2D(!value); } 319e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM24(double value) { m_matrix.setM24(value); setIs2D(!value); } 329e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM31(double value) { m_matrix.setM31(value); setIs2D(!value); } 339e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM32(double value) { m_matrix.setM32(value); setIs2D(!value); } 349e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM33(double value) { m_matrix.setM33(value); setIs2D(value != 1); } 359e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM34(double value) { m_matrix.setM34(value); setIs2D(!value); } 369e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM41(double value) { m_matrix.setM41(value); } 379e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM42(double value) { m_matrix.setM42(value); } 389e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM43(double value) { m_matrix.setM43(value); setIs2D(!value); } 399e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setM44(double value) { m_matrix.setM44(value); setIs2D(value != 1); } 409e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) 417242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci DOMMatrix* multiplySelf(DOMMatrix*); 427242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci DOMMatrix* preMultiplySelf(DOMMatrix*); 439e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) DOMMatrix* translateSelf(double tx, double ty, double tz = 0); 449e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) DOMMatrix* scaleSelf(double scale, double ox = 0, double oy = 0); 459e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) DOMMatrix* scale3dSelf(double scale, double ox = 0, double oy = 0, double oz = 0); 469e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) DOMMatrix* scaleNonUniformSelf(double sx, double sy = 1, double sz = 1, 479e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) double ox = 0, double oy = 0, double oz = 0); 48c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 49c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)private: 509e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) DOMMatrix(const TransformationMatrix&, bool is2D = true); 51c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 52c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) void setIs2D(bool value); 53c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)}; 54c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 55c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 56c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 57c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#endif 58