#ifndef WebKitCSSMatrix_h
#define WebKitCSSMatrix_h
#include "StyleBase.h"
#include "PlatformString.h"
#include "Transform3D.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
namespace WebCore {
typedef int ExceptionCode;
class WebKitCSSMatrix : public StyleBase {
public:
WebKitCSSMatrix();
WebKitCSSMatrix(const WebKitCSSMatrix& m);
WebKitCSSMatrix(const Transform3D& m);
WebKitCSSMatrix(const String& s);
virtual ~WebKitCSSMatrix();
float m11() const { return m_matrix.m11(); }
float m12() const { return m_matrix.m12(); }
float m13() const { return m_matrix.m13(); }
float m14() const { return m_matrix.m14(); }
float m21() const { return m_matrix.m21(); }
float m22() const { return m_matrix.m22(); }
float m23() const { return m_matrix.m23(); }
float m24() const { return m_matrix.m24(); }
float m31() const { return m_matrix.m31(); }
float m32() const { return m_matrix.m32(); }
float m33() const { return m_matrix.m33(); }
float m34() const { return m_matrix.m34(); }
float m41() const { return m_matrix.m41(); }
float m42() const { return m_matrix.m42(); }
float m43() const { return m_matrix.m43(); }
float m44() const { return m_matrix.m44(); }
void setM11(float f) { m_matrix.setM11(f); }
void setM12(float f) { m_matrix.setM12(f); }
void setM13(float f) { m_matrix.setM13(f); }
void setM14(float f) { m_matrix.setM14(f); }
void setM21(float f) { m_matrix.setM21(f); }
void setM22(float f) { m_matrix.setM22(f); }
void setM23(float f) { m_matrix.setM23(f); }
void setM24(float f) { m_matrix.setM24(f); }
void setM31(float f) { m_matrix.setM31(f); }
void setM32(float f) { m_matrix.setM32(f); }
void setM33(float f) { m_matrix.setM33(f); }
void setM34(float f) { m_matrix.setM34(f); }
void setM41(float f) { m_matrix.setM41(f); }
void setM42(float f) { m_matrix.setM42(f); }
void setM43(float f) { m_matrix.setM43(f); }
void setM44(float f) { m_matrix.setM44(f); }
void setMatrixValue(const String& string);
WebKitCSSMatrix* multiply(WebKitCSSMatrix* secondMatrix);
WebKitCSSMatrix* inverse();
WebKitCSSMatrix* translate(float x, float y, float z);
WebKitCSSMatrix* scale(float scaleX, float scaleY, float scaleZ);
WebKitCSSMatrix* rotate(float rotZ, float rotY, float rotZ);
WebKitCSSMatrix* rotateAxisAngle(float x, float y, float z, float angle);
const Transform3D& transform() { return m_matrix; }
String toString();
protected:
Transform3D m_matrix;
};
}
#endif // WebKitCSSMatrix_h