UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

162 lines (137 loc) 6.7 kB
import ColorTransform from "./ColorTransform"; import Matrix from "./Matrix"; import Matrix3D from "./Matrix3D"; import Rectangle from "./Rectangle"; import DisplayObject from "./../display/DisplayObject"; declare namespace openfl.geom { /** * The Transform class provides access to color adjustment properties and two- * or three-dimensional transformation objects that can be applied to a * display object. During the transformation, the color or the orientation and * position of a display object is adjusted(offset) from the current values * or coordinates to new values or coordinates. The Transform class also * collects data about color and two-dimensional matrix transformations that * are applied to a display object and all of its parent objects. You can * access these combined transformations through the * `concatenatedColorTransform` and `concatenatedMatrix` * properties. * * To apply color transformations: create a ColorTransform object, set the * color adjustments using the object's methods and properties, and then * assign the `colorTransformation` property of the * `transform` property of the display object to the new * ColorTransformation object. * * To apply two-dimensional transformations: create a Matrix object, set * the matrix's two-dimensional transformation, and then assign the * `transform.matrix` property of the display object to the new * Matrix object. * * To apply three-dimensional transformations: start with a * three-dimensional display object. A three-dimensional display object has a * `z` property value other than zero. You do not need to create * the Matrix3D object. For all three-dimensional objects, a Matrix3D object * is created automatically when you assign a `z` value to a * display object. You can access the display object's Matrix3D object through * the display object's `transform` property. Using the methods of * the Matrix3D class, you can add to or modify the existing transformation * settings. Also, you can create a custom Matrix3D object, set the custom * Matrix3D object's transformation elements, and then assign the new Matrix3D * object to the display object using the `transform.matrix` * property. * * To modify a perspective projection of the stage or root object: use the * `transform.matrix` property of the root display object to gain * access to the PerspectiveProjection object. Or, apply different perspective * projection properties to a display object by setting the perspective * projection properties of the display object's parent. The child display * object inherits the new properties. Specifically, create a * PerspectiveProjection object and set its properties, then assign the * PerspectiveProjection object to the `perspectiveProjection` * property of the parent display object's `transform` property. * The specified projection transformation then applies to all the display * object's three-dimensional children. * * Since both PerspectiveProjection and Matrix3D objects perform * perspective transformations, do not assign both to a display object at the * same time. Use the PerspectiveProjection object for focal length and * projection center changes. For more control over the perspective * transformation, create a perspective projection Matrix3D object. */ export class Transform { /** * A ColorTransform object containing values that universally adjust the * colors in the display object. * * @throws TypeError The colorTransform is null when being set */ public colorTransform:ColorTransform; protected get_colorTransform ():ColorTransform; protected set_colorTransform (value:ColorTransform):ColorTransform; /** * A ColorTransform object representing the combined color transformations * applied to the display object and all of its parent objects, back to the * root level. If different color transformations have been applied at * different levels, all of those transformations are concatenated into one * ColorTransform object for this property. */ public readonly concatenatedColorTransform:ColorTransform; /** * A Matrix object representing the combined transformation matrixes of the * display object and all of its parent objects, back to the root level. If * different transformation matrixes have been applied at different levels, * all of those matrixes are concatenated into one matrix for this property. * Also, for resizeable SWF content running in the browser, this property * factors in the difference between stage coordinates and window coordinates * due to window resizing. Thus, the property converts local coordinates to * window coordinates, which may not be the same coordinate space as that of * the Stage. */ public readonly concatenatedMatrix:Matrix; protected get_concatenatedMatrix ():Matrix; protected set_concatenatedMatrix (value:Matrix):Matrix; /** * A Matrix object containing values that alter the scaling, rotation, and * translation of the display object. * * If the `matrix` property is set to a value(not * `null`), the `matrix3D` property is * `null`. And if the `matrix3D` property is set to a * value(not `null`), the `matrix` property is * `null`. * * @throws TypeError The matrix is null when being set */ public matrix:Matrix; protected get_matrix ():Matrix; protected set_matrix (value:Matrix):Matrix; /** * Provides access to the Matrix3D object of a three-dimensional display * object. The Matrix3D object represents a transformation matrix that * determines the display object's position and orientation. A Matrix3D * object can also perform perspective projection. * * If the `matrix` property is set to a value(not * `null`), the `matrix3D` property is * `null`. And if the `matrix3D` property is set to a * value(not `null`), the `matrix` property is * `null`. */ public matrix3D:Matrix3D; protected get_matrix3D ():Matrix3D; protected set_matrix3D (value:Matrix3D):Matrix3D; // #if flash // @:noCompletion @:dox(hide) @:require(flash10) public perspectiveProjection:PerspectiveProjection; // #end /** * A Rectangle object that defines the bounding rectangle of the display * object on the stage. */ public readonly pixelBounds:Rectangle; public constructor (displayObject:DisplayObject); // #if flash // @:noCompletion @:dox(hide) @:require(flash10) public function getRelativeMatrix3D (relativeTo:DisplayObject):Matrix3D; // #end } } export default openfl.geom.Transform;