[
ExportMacro=WEBCORE_EXPORT,
Exposed=(Window,Worker),
LegacyWindowAlias=WebKitCSSMatrix,
ImplementationLacksVTable
] interface DOMMatrix : DOMMatrixReadOnly {
[CallWith=ScriptExecutionContext] constructor(optional (DOMString or sequence<unrestricted double>) init);
[MayThrowException, NewObject] static DOMMatrix fromMatrix(optional DOMMatrixInit other);
[MayThrowException, NewObject] static DOMMatrix fromFloat32Array(Float32Array array32);
[MayThrowException, NewObject] static DOMMatrix fromFloat64Array(Float64Array array64);
inherit attribute unrestricted double a; inherit attribute unrestricted double b; inherit attribute unrestricted double c; inherit attribute unrestricted double d; inherit attribute unrestricted double e; inherit attribute unrestricted double f;
inherit attribute unrestricted double m11;
inherit attribute unrestricted double m12;
inherit attribute unrestricted double m13;
inherit attribute unrestricted double m14;
inherit attribute unrestricted double m21;
inherit attribute unrestricted double m22;
inherit attribute unrestricted double m23;
inherit attribute unrestricted double m24;
inherit attribute unrestricted double m31;
inherit attribute unrestricted double m32;
inherit attribute unrestricted double m33;
inherit attribute unrestricted double m34;
inherit attribute unrestricted double m41;
inherit attribute unrestricted double m42;
inherit attribute unrestricted double m43;
inherit attribute unrestricted double m44;
[MayThrowException] DOMMatrix multiplySelf(optional DOMMatrixInit other);
[MayThrowException] DOMMatrix preMultiplySelf(optional DOMMatrixInit other);
DOMMatrix translateSelf(optional unrestricted double tx = 0,
optional unrestricted double ty = 0,
optional unrestricted double tz = 0);
DOMMatrix scaleSelf(optional unrestricted double scaleX = 1,
optional unrestricted double scaleY,
optional unrestricted double scaleZ = 1,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0,
optional unrestricted double originZ = 0);
DOMMatrix scale3dSelf(optional unrestricted double scale = 1,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0,
optional unrestricted double originZ = 0);
DOMMatrix rotateSelf(optional unrestricted double rotX = 0,
optional unrestricted double rotY,
optional unrestricted double rotZ); DOMMatrix rotateFromVectorSelf(optional unrestricted double x = 0,
optional unrestricted double y = 0);
DOMMatrix rotateAxisAngleSelf(optional unrestricted double x = 0,
optional unrestricted double y = 0,
optional unrestricted double z = 0,
optional unrestricted double angle = 0); DOMMatrix skewXSelf(optional unrestricted double sx = 0); DOMMatrix skewYSelf(optional unrestricted double sy = 0); DOMMatrix invertSelf();
[Exposed=Window, MayThrowException, ImplementedAs=setMatrixValueForBindings] DOMMatrix setMatrixValue(DOMString transformList);
};