Created
October 20, 2011 14:13
-
-
Save anonymous/1301236 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Copyright (C) 2008, 2010 Apple Inc. All Rights Reserved. | |
* Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies | |
* | |
* Redistribution and use in source and binary forms, with or without | |
* modification, are permitted provided that the following conditions | |
* are met: | |
* 1. Redistributions of source code must retain the above copyright | |
* notice, this list of conditions and the following disclaimer. | |
* 2. Redistributions in binary form must reproduce the above copyright | |
* notice, this list of conditions and the following disclaimer in the | |
* documentation and/or other materials provided with the distribution. | |
* | |
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY | |
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR | |
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | |
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
*/ | |
module css { | |
// Introduced in DOM Level ?: | |
interface [ | |
CanBeConstructed, | |
JSCustomConstructor, | |
ConstructorParameters=1, | |
Constructor(in [Optional=CallWithNullValue] DOMString cssValue), | |
ConstructorRaisesException, | |
] WebKitMatrix { | |
// These attributes are simple aliases for certain elements of the 4x4 matrix | |
attribute double a; // alias for m11 | |
attribute double b; // alias for m12 | |
attribute double c; // alias for m21 | |
attribute double d; // alias for m22 | |
attribute double e; // alias for m41 | |
attribute double f; // alias for m42 | |
attribute double m11; | |
attribute double m12; | |
attribute double m13; | |
attribute double m14; | |
attribute double m21; | |
attribute double m22; | |
attribute double m23; | |
attribute double m24; | |
attribute double m31; | |
attribute double m32; | |
attribute double m33; | |
attribute double m34; | |
attribute double m41; | |
attribute double m42; | |
attribute double m43; | |
attribute double m44; | |
void setMatrixValue(in [Optional=CallWithDefaultValue] DOMString string) raises (DOMException); | |
// Copy the matrix elements for a single precision float point array | |
void toArray(in Float32Array array); | |
// Copy the matrix elements for a double precision float point array | |
void toArray(in Float64Array array); | |
// Multiply this matrix by secondMatrix, on the right (result = this * secondMatrix) | |
[Immutable] WebKitMatrix multipliedBy(in [Optional=CallWithDefaultValue] WebKitMatrix secondMatrix); | |
// Multiply itself by a secondMatrix, on the right (this = this * secondMatrix) | |
void multiply(in [Optional=CallWithDefaultValue] WebKitMatrix secondMatrix); | |
// Inverse this matrix. Throw an exception if the matrix is not invertible | |
void inverse() raises (DOMException) | |
// Return the inverse of this matrix. Throw an exception if the matrix is not invertible | |
[Immutable] WebKitMatrix inversedBy() raises (DOMException); | |
// Return this matrix translated by the passed values. | |
// Passing a NaN will use a value of 0. This allows the 3D form to used for 2D operations | |
[Immutable] WebKitMatrix translatedBy(in [Optional=CallWithDefaultValue] double x, | |
in [Optional=CallWithDefaultValue] double y, | |
in [Optional=CallWithDefaultValue] double z); | |
// Translate itself using the passed values. | |
// Passing a NaN will use a value of 0. This allows the 3D form to used for 2D operations | |
void translate(in [Optional=CallWithDefaultValue] double x, | |
in [Optional=CallWithDefaultValue] double y, | |
in [Optional=CallWithDefaultValue] double z); | |
// Returns this matrix scaled by the passed values. | |
// Passing scaleX or scaleZ as NaN uses a value of 1, but passing scaleY of NaN | |
// makes it the same as scaleX. This allows the 3D form to used for 2D operations | |
[Immutable] WebKitMatrix scaledBy(in [Optional=CallWithDefaultValue] double scaleX, | |
in [Optional=CallWithDefaultValue] double scaleY, | |
in [Optional=CallWithDefaultValue] double scaleZ); | |
// Scale itself using the passed values. | |
// Passing scaleX or scaleZ as NaN uses a value of 1, but passing scaleY of NaN | |
// makes it the same as scaleX. This allows the 3D form to used for 2D operations | |
void scale(in [Optional=CallWithDefaultValue] double scaleX, | |
in [Optional=CallWithDefaultValue] double scaleY, | |
in [Optional=CallWithDefaultValue] double scaleZ); | |
// Returns this matrix rotated by the passed values. | |
// If rotY and rotZ are NaN, rotate about Z (rotX=0, rotateY=0, rotateZ=rotX). | |
// Otherwise use a rotation value of 0 for any passed NaN. | |
[Immutable] WebKitMatrix rotatedBy(in [Optional=CallWithDefaultValue] double rotX, | |
in [Optional=CallWithDefaultValue] double rotY, | |
in [Optional=CallWithDefaultValue] double rotZ); | |
// Rotate itself using the passed values. | |
// If rotY and rotZ are NaN, rotate about Z (rotX=0, rotateY=0, rotateZ=rotX). | |
// Otherwise use a rotation value of 0 for any passed NaN. | |
void rotate(in [Optional=CallWithDefaultValue] double rotX, | |
in [Optional=CallWithDefaultValue] double rotY, | |
in [Optional=CallWithDefaultValue] double rotZ); | |
// Returns this matrix rotated about the passed axis by the passed angle. | |
// Passing a NaN will use a value of 0. If the axis is (0,0,0) use a value | |
// of (0,0,1). | |
[Immutable] WebKitMatrix rotatedAxisAngleBy(in [Optional=CallWithDefaultValue] double x, | |
in [Optional=CallWithDefaultValue] double y, | |
in [Optional=CallWithDefaultValue] double z, | |
in [Optional=CallWithDefaultValue] double angle); | |
// Rotate itself using the passed axis by the passed angle. | |
void rotateAxisAngle(in [Optional=CallWithDefaultValue] double x, | |
in [Optional=CallWithDefaultValue] double y, | |
in [Optional=CallWithDefaultValue] double z, | |
in [Optional=CallWithDefaultValue] double angle); | |
// Returns this matrix skewed along the X axis by the passed values. | |
// Passing a NaN will use a value of 0. | |
[Immutable] WebKitMatrix skewedXBy(in [Optional=CallWithDefaultValue] double angle); | |
// Skew itself along the X axis using the passed values. | |
// Passing a NaN will use a value of 0. | |
void skewX(in [Optional=CallWithDefaultValue] double angle); | |
// Returns this matrix skewed along the Y axis by the passed values. | |
// Passing a NaN will use a value of 0. | |
[Immutable] WebKitMatrix skewedYBy(in [Optional=CallWithDefaultValue] double angle); | |
// Skew itself along the Y axis using the passed values. | |
// Passing a NaN will use a value of 0. | |
void skewY(in [Optional=CallWithDefaultValue] double angle); | |
[DontEnum] DOMString toString(); | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment