Packagestarling.utils
Classpublic class MatrixUtil
InheritanceMatrixUtil Inheritance Object

A utility class containing methods related to the Matrix class.



Public Methods
 MethodDefined By
  
convertTo2D(matrix3D:Matrix3D, out:Matrix = null):Matrix
[static] Converts a 3D matrix to a 2D matrix.
MatrixUtil
  
convertTo3D(matrix:Matrix, out:Matrix3D = null):Matrix3D
[static] Converts a 2D matrix to a 3D matrix.
MatrixUtil
  
createOrthographicProjectionMatrix(x:Number, y:Number, width:Number, height:Number, out:Matrix = null):Matrix
[static] Creates a orthographic projection matrix suitable for 2D rendering.
MatrixUtil
  
createPerspectiveProjectionMatrix(x:Number, y:Number, width:Number, height:Number, stageWidth:Number = 0, stageHeight:Number = 0, cameraPos:Vector3D = null, out:Matrix3D = null):Matrix3D
[static] Creates a perspective projection matrix suitable for 2D and 3D rendering.
MatrixUtil
  
isIdentity(matrix:Matrix):Boolean
[static] Determines if the matrix is an identity matrix.
MatrixUtil
  
isIdentity3D(matrix:Matrix3D):Boolean
[static] Determines if the 3D matrix is an identity matrix.
MatrixUtil
  
prependMatrix(base:Matrix, prep:Matrix):void
[static] Prepends a matrix to 'base' by multiplying it with another matrix.
MatrixUtil
  
prependRotation(matrix:Matrix, angle:Number):void
[static] Prepends an incremental rotation to a Matrix object (angle in radians).
MatrixUtil
  
prependScale(matrix:Matrix, sx:Number, sy:Number):void
[static] Prepends an incremental scale change to a Matrix object.
MatrixUtil
  
prependSkew(matrix:Matrix, skewX:Number, skewY:Number):void
[static] Prepends a skew transformation to a Matrix object (angles in radians).
MatrixUtil
  
prependTranslation(matrix:Matrix, tx:Number, ty:Number):void
[static] Prepends an incremental translation to a Matrix object.
MatrixUtil
  
skew(matrix:Matrix, skewX:Number, skewY:Number):void
[static] Appends a skew transformation to a matrix (angles in radians).
MatrixUtil
  
snapToPixels(matrix:Matrix, pixelSize:Number):void
[static] Updates the given matrix so that it points exactly to pixel boundaries.
MatrixUtil
  
toString(matrix:Matrix, precision:int = 3):String
[static] Converts a Matrix instance to a String, which is useful when debugging.
MatrixUtil
  
toString3D(matrix:Matrix3D, transpose:Boolean = true, precision:int = 3):String
[static] Converts a Matrix3D instance to a String, which is useful when debugging.
MatrixUtil
  
transformCoords(matrix:Matrix, x:Number, y:Number, out:Point = null):Point
[static] Uses a matrix to transform 2D coordinates into a different space.
MatrixUtil
  
transformCoords3D(matrix:Matrix3D, x:Number, y:Number, z:Number, out:Vector3D = null):Vector3D
[static] Uses a matrix to transform 3D coordinates into a different space.
MatrixUtil
  
transformPoint(matrix:Matrix, point:Point, out:Point = null):Point
[static] Transform a point with the given matrix.
MatrixUtil
  
transformPoint3D(matrix:Matrix3D, point:Vector3D, out:Vector3D = null):Vector3D
[static] Transforms a 3D point with the given matrix.
MatrixUtil
Method Detail
convertTo2D()method
public static function convertTo2D(matrix3D:Matrix3D, out:Matrix = null):Matrix

Converts a 3D matrix to a 2D matrix. Beware that this will work only for a 3D matrix describing a pure 2D transformation.

Parameters

matrix3D:Matrix3D
 
out:Matrix (default = null)

Returns
Matrix
convertTo3D()method 
public static function convertTo3D(matrix:Matrix, out:Matrix3D = null):Matrix3D

Converts a 2D matrix to a 3D matrix. If you pass an out-matrix, the result will be stored in this matrix instead of creating a new object.

Parameters

matrix:Matrix
 
out:Matrix3D (default = null)

Returns
Matrix3D
createOrthographicProjectionMatrix()method 
public static function createOrthographicProjectionMatrix(x:Number, y:Number, width:Number, height:Number, out:Matrix = null):Matrix

Creates a orthographic projection matrix suitable for 2D rendering.

Parameters

x:Number
 
y:Number
 
width:Number
 
height:Number
 
out:Matrix (default = null)

Returns
Matrix
createPerspectiveProjectionMatrix()method 
public static function createPerspectiveProjectionMatrix(x:Number, y:Number, width:Number, height:Number, stageWidth:Number = 0, stageHeight:Number = 0, cameraPos:Vector3D = null, out:Matrix3D = null):Matrix3D

Creates a perspective projection matrix suitable for 2D and 3D rendering.

The first 4 parameters define which area of the stage you want to view (the camera will 'zoom' to exactly this region). The final 3 parameters determine the perspective in which you're looking at the stage.

The stage is always on the rectangle that is spawned up between x- and y-axis (with the given size). All objects that are exactly on that rectangle (z equals zero) will be rendered in their true size, without any distortion.

If you pass only the first 4 parameters, the camera will be set up above the center of the stage, with a field of view of 1.0 rad.

Parameters

x:Number
 
y:Number
 
width:Number
 
height:Number
 
stageWidth:Number (default = 0)
 
stageHeight:Number (default = 0)
 
cameraPos:Vector3D (default = null)
 
out:Matrix3D (default = null)

Returns
Matrix3D
isIdentity()method 
public static function isIdentity(matrix:Matrix):Boolean

Determines if the matrix is an identity matrix.

Parameters

matrix:Matrix

Returns
Boolean
isIdentity3D()method 
public static function isIdentity3D(matrix:Matrix3D):Boolean

Determines if the 3D matrix is an identity matrix.

Parameters

matrix:Matrix3D

Returns
Boolean
prependMatrix()method 
public static function prependMatrix(base:Matrix, prep:Matrix):void

Prepends a matrix to 'base' by multiplying it with another matrix.

Parameters

base:Matrix
 
prep:Matrix

prependRotation()method 
public static function prependRotation(matrix:Matrix, angle:Number):void

Prepends an incremental rotation to a Matrix object (angle in radians).

Parameters

matrix:Matrix
 
angle:Number

prependScale()method 
public static function prependScale(matrix:Matrix, sx:Number, sy:Number):void

Prepends an incremental scale change to a Matrix object.

Parameters

matrix:Matrix
 
sx:Number
 
sy:Number

prependSkew()method 
public static function prependSkew(matrix:Matrix, skewX:Number, skewY:Number):void

Prepends a skew transformation to a Matrix object (angles in radians). The skew matrix has the following form:

          | cos(skewY)  -sin(skewX)  0 |
          | sin(skewY)   cos(skewX)  0 |
          |     0            0       1 |
          

Parameters

matrix:Matrix
 
skewX:Number
 
skewY:Number

prependTranslation()method 
public static function prependTranslation(matrix:Matrix, tx:Number, ty:Number):void

Prepends an incremental translation to a Matrix object.

Parameters

matrix:Matrix
 
tx:Number
 
ty:Number

skew()method 
public static function skew(matrix:Matrix, skewX:Number, skewY:Number):void

Appends a skew transformation to a matrix (angles in radians). The skew matrix has the following form:

          | cos(skewY)  -sin(skewX)  0 |
          | sin(skewY)   cos(skewX)  0 |
          |     0            0       1 |
          

Parameters

matrix:Matrix
 
skewX:Number
 
skewY:Number

snapToPixels()method 
public static function snapToPixels(matrix:Matrix, pixelSize:Number):void

Updates the given matrix so that it points exactly to pixel boundaries. This works only if the object is unscaled and rotated by a multiple of 90 degrees.

Parameters

matrix:Matrix — The matrix to manipulate in place (normally the modelview matrix).
 
pixelSize:Number — The size (in points) that represents one pixel in the back buffer.

toString()method 
public static function toString(matrix:Matrix, precision:int = 3):String

Converts a Matrix instance to a String, which is useful when debugging.

Parameters

matrix:Matrix
 
precision:int (default = 3)

Returns
String
toString3D()method 
public static function toString3D(matrix:Matrix3D, transpose:Boolean = true, precision:int = 3):String

Converts a Matrix3D instance to a String, which is useful when debugging. Per default, the raw data is displayed transposed, so that the columns are displayed vertically.

Parameters

matrix:Matrix3D
 
transpose:Boolean (default = true)
 
precision:int (default = 3)

Returns
String
transformCoords()method 
public static function transformCoords(matrix:Matrix, x:Number, y:Number, out:Point = null):Point

Uses a matrix to transform 2D coordinates into a different space. If you pass an out-point, the result will be stored in this point instead of creating a new object.

Parameters

matrix:Matrix
 
x:Number
 
y:Number
 
out:Point (default = null)

Returns
Point
transformCoords3D()method 
public static function transformCoords3D(matrix:Matrix3D, x:Number, y:Number, z:Number, out:Vector3D = null):Vector3D

Uses a matrix to transform 3D coordinates into a different space. If you pass a 'resultVector', the result will be stored in this vector3D instead of creating a new object.

Parameters

matrix:Matrix3D
 
x:Number
 
y:Number
 
z:Number
 
out:Vector3D (default = null)

Returns
Vector3D
transformPoint()method 
public static function transformPoint(matrix:Matrix, point:Point, out:Point = null):Point

Transform a point with the given matrix.

Parameters

matrix:Matrix
 
point:Point
 
out:Point (default = null)

Returns
Point
transformPoint3D()method 
public static function transformPoint3D(matrix:Matrix3D, point:Vector3D, out:Vector3D = null):Vector3D

Transforms a 3D point with the given matrix.

Parameters

matrix:Matrix3D
 
point:Vector3D
 
out:Vector3D (default = null)

Returns
Vector3D