blob: 4ce3c350bf1cadd79355314f2d48e3577c4d2a6c [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "config.h"
#include "core/dom/DOMMatrix.h"
namespace blink {
bool DOMMatrixReadOnly::is2D() const
{
return m_is2D;
}
bool DOMMatrixReadOnly::isIdentity() const
{
return m_matrix.isIdentity();
}
DOMMatrix* DOMMatrixReadOnly::multiply(DOMMatrix* other)
{
return DOMMatrix::create(this)->multiplySelf(other);
}
DOMMatrix* DOMMatrixReadOnly::translate(double tx, double ty, double tz)
{
return DOMMatrix::create(this)->translateSelf(tx, ty, tz);
}
DOMMatrix* DOMMatrixReadOnly::scale(double scale, double ox, double oy)
{
return DOMMatrix::create(this)->scaleSelf(scale, ox, oy);
}
DOMMatrix* DOMMatrixReadOnly::scale3d(double scale, double ox, double oy, double oz)
{
return DOMMatrix::create(this)->scale3dSelf(scale, ox, oy, oz);
}
DOMMatrix* DOMMatrixReadOnly::scaleNonUniform(double sx, double sy, double sz,
double ox, double oy, double oz)
{
return DOMMatrix::create(this)->scaleNonUniformSelf(sx, sy, sz, ox, oy, oz);
}
PassRefPtr<DOMFloat32Array> DOMMatrixReadOnly::toFloat32Array() const
{
float array[] = {
m_matrix.m11(), m_matrix.m12(), m_matrix.m13(), m_matrix.m14(),
m_matrix.m21(), m_matrix.m22(), m_matrix.m23(), m_matrix.m24(),
m_matrix.m31(), m_matrix.m32(), m_matrix.m33(), m_matrix.m34(),
m_matrix.m41(), m_matrix.m42(), m_matrix.m43(), m_matrix.m44()
};
return DOMFloat32Array::create(array, 16);
}
PassRefPtr<DOMFloat64Array> DOMMatrixReadOnly::toFloat64Array() const
{
double array[] = {
m_matrix.m11(), m_matrix.m12(), m_matrix.m13(), m_matrix.m14(),
m_matrix.m21(), m_matrix.m22(), m_matrix.m23(), m_matrix.m24(),
m_matrix.m31(), m_matrix.m32(), m_matrix.m33(), m_matrix.m34(),
m_matrix.m41(), m_matrix.m42(), m_matrix.m43(), m_matrix.m44()
};
return DOMFloat64Array::create(array, 16);
}
} // namespace blink