Packagealternativa.types
Classpublic final class Matrix3D

Class Matrix3D defines affine transformation from one coordinates system to another. Transformation matrix looks like:
a b c d
e f g h
i j k l
0 0 0 1

To transform coordinate (x, y, z) through the matrix, the following formulas are being used:

x' = ax + by + cz + d
y' = ex + fy + gz + h
z' = ix + jy + kz + l

From applying transformation to a three-dimentional object point of view, matrix may be understood as an order of scaling and rotating object in a local coordinates system, and then offsetting zero local point in a parental coordinate system. So, matrix

a b c
e f g
i j k
defines a transformation of an object that is set in zero coordinates point, and a point (d, h, l) as a center of an object or matrix.



Public Properties
 PropertyDefined by
  a : Number
Matrix3D
  b : Number
Matrix3D
  c : Number
Matrix3D
  d : Number
Matrix3D
  e : Number
Matrix3D
  f : Number
Matrix3D
  g : Number
Matrix3D
  h : Number
Matrix3D
  i : Number
Matrix3D
  j : Number
Matrix3D
  k : Number
Matrix3D
  l : Number
Matrix3D
Public Methods
 MethodDefined by
  
Matrix3D(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 0, e:Number = 0, f:Number = 1, g:Number = 0, h:Number = 0, i:Number = 0, j:Number = 0, k:Number = 1, l:Number = 0)
Create matrix instance.
Matrix3D
  
add(m:Matrix3D):void
Adds a matrix to the current one.
Matrix3D
  
axisAngleToMatrix(axis:Point3D, angle:Number = 0):Matrix3D
[static]The method creates a matrix for rotation given in axis-angle form.
Matrix3D
  
Clone matrix.
Matrix3D
  
combine(matrix:Matrix3D):void
Multiply on a matrix from the right (inherit the transformation from the matrix).
Matrix3D
  
copy(matrix:Matrix3D):void
Copy values of the given matrix.
Matrix3D
  
Transforms the given vector not using translation part of the matrix.
Matrix3D
  
equals(matrix:Matrix3D, threshold:Number = 0):Boolean
Compare matrices with a given treshold.
Matrix3D
  
fromAxisAngle(axis:Point3D, angle:Number = 0):void
The method creates a matrix for rotation given in axis-angle form.
Matrix3D
  
getRotations(rotations:Point3D = null):Point3D
The method extracts rotation angles from given rotation matrix.
Matrix3D
  
inverseCombine(matrix:Matrix3D):void
Multiply on a matrix from the left (apply own transformation to the the matrix).
Matrix3D
  
[static]Get inverse matrix.
Matrix3D
  
inverseRotate(rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0):void
Inverse matrix rotate.
Matrix3D
  
inverseRotationMatrix(rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0):Matrix3D
[static]Get inverse rotation matrix.
Matrix3D
  
inverseScale(scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):void
Inverce matrix scale.
Matrix3D
  
inverseScaleMatrix(scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):Matrix3D
[static]Get inverse scale matrix.
Matrix3D
  
inverseTransform(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):void
Inverse matrix transformation.
Matrix3D
  
inverseTransformationMatrix(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):Matrix3D
[static]Get inverse transformation matrix.
Matrix3D
  
inverseTranslate(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0):void
Inverse matrix center offset.
Matrix3D
  
inverseTranslationMatrix(x:Number = 0, y:Number = 0, z:Number = 0):Matrix3D
[static]Get inverse offset matrix.
Matrix3D
  
invert():void
Invert matrix.
Matrix3D
  
multByScalar(multiplier:Number):void
Multimplies the matrix by the given scalar.
Matrix3D
  
offset(x:Number = 0, y:Number = 0, z:Number = 0):void
Set matrix center.
Matrix3D
  
[static]Matrix multiply.
Matrix3D
  
rotate(rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0):void
Matrix rotation.
Matrix3D
  
rotationMatrix(rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0):Matrix3D
[static]Get rotation matrix.
Matrix3D
  
scale(scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):void
Matrix scale.
Matrix3D
  
scaleMatrix(scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):Matrix3D
[static]Get scale matrix.
Matrix3D
  
toIdentity():void
Reduction matrix to a unitary matrix.
Matrix3D
  
toString():String
String matrix representation.
Matrix3D
  
toTransform(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):void
Form transformation matrix.
Matrix3D
  
transform(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):void
Matrix transformation.
Matrix3D
  
transformationMatrix(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):Matrix3D
[static]Get transformation matrix.
Matrix3D
  
translate(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0):void
Matrix center translation.
Matrix3D
  
translateLocal(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0):void
Matrix center translation in local coordinates.
Matrix3D
  
translationMatrix(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0):Matrix3D
[static]Get translation matrix.
Matrix3D
  
transpose():void
Transposes the matrix.
Matrix3D
Property detail
aproperty
public var a:Number
bproperty 
public var b:Number
cproperty 
public var c:Number
dproperty 
public var d:Number
eproperty 
public var e:Number
fproperty 
public var f:Number
gproperty 
public var g:Number
hproperty 
public var h:Number
iproperty 
public var i:Number
jproperty 
public var j:Number
kproperty 
public var k:Number
lproperty 
public var l:Number
Constructor detail
Matrix3D()constructor
public function Matrix3D(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 0, e:Number = 0, f:Number = 1, g:Number = 0, h:Number = 0, i:Number = 0, j:Number = 0, k:Number = 1, l:Number = 0)

Create matrix instance.

Parameters
a:Number (default = 1)
 
b:Number (default = 0)
 
c:Number (default = 0)
 
d:Number (default = 0)
 
e:Number (default = 0)
 
f:Number (default = 1)
 
g:Number (default = 0)
 
h:Number (default = 0)
 
i:Number (default = 0)
 
j:Number (default = 0)
 
k:Number (default = 1)
 
l:Number (default = 0)
Method detail
add()method
public function add(m:Matrix3D):void

Adds a matrix to the current one.

Parameters
m:Matrix3Dthe matrix which is being added
axisAngleToMatrix()method 
public static function axisAngleToMatrix(axis:Point3D, angle:Number = 0):Matrix3D

The method creates a matrix for rotation given in axis-angle form.

Parameters
axis:Point3Dunit vector of the rotation axis
 
angle:Number (default = 0)the angle of rotation in radians

Returns
Matrix3Drotation matrix
clone()method 
public function clone():Matrix3D

Clone matrix.

Returns
Matrix3Da clone of the matrix
combine()method 
public function combine(matrix:Matrix3D):void

Multiply on a matrix from the right (inherit the transformation from the matrix).

Parameters
matrix:Matrix3Dmatrix which is being used for transformation inheritance. Left multiply operand.
copy()method 
public function copy(matrix:Matrix3D):void

Copy values of the given matrix.

Parameters
matrix:Matrix3Dmatrix, which values are being copied
deltaTransformVector()method 
public function deltaTransformVector(pin:Point3D, pout:Point3D):void

Transforms the given vector not using translation part of the matrix.

Parameters
pin:Point3Dinput vector
 
pout:Point3Doutput vector
equals()method 
public function equals(matrix:Matrix3D, threshold:Number = 0):Boolean

Compare matrices with a given treshold.

Parameters
matrix:Matrix3Dmatrix to compare
 
threshold:Number (default = 0)comparison threshold

Returns
Booleantrue if absolute difference of any corresponding elements of the matrices isn't greater than given threshold, otherwise false
fromAxisAngle()method 
public function fromAxisAngle(axis:Point3D, angle:Number = 0):void

The method creates a matrix for rotation given in axis-angle form.

Parameters
axis:Point3Dunit vector of the rotation axis
 
angle:Number (default = 0)the angle of rotation in radians
getRotations()method 
public function getRotations(rotations:Point3D = null):Point3D

The method extracts rotation angles from given rotation matrix.

Parameters
rotations:Point3D (default = null)if parameter is not null, the result will be stored here

Returns
Point3Drotation angles
inverseCombine()method 
public function inverseCombine(matrix:Matrix3D):void

Multiply on a matrix from the left (apply own transformation to the the matrix).

Parameters
matrix:Matrix3Dmatrix which current matrix transformation is being applied to. Right multiply operand.
inverseMatrix()method 
public static function inverseMatrix(matrix:Matrix3D):Matrix3D

Get inverse matrix.

Parameters
matrix:Matrix3Dmatrix for which inverse is being calculated

Returns
Matrix3Dinverse matrix
inverseRotate()method 
public function inverseRotate(rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0):void

Inverse matrix rotate. The result of multiply from the right on the matrix Rx-1 × Ry-1 × Rz-1, где Rx, Ry, Rz — matrix rotate relative to corresponding parent coordinates system axes.

Parameters
rotationX:Number (default = 0)rotation around X axis in radians
 
rotationY:Number (default = 0)rotation around Y axis in radians
 
rotationZ:Number (default = 0)rotation around Z axis in radians
inverseRotationMatrix()method 
public static function inverseRotationMatrix(rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0):Matrix3D

Get inverse rotation matrix. Matrix is a muliply like Rx-1 × Ry-1 × Rz-1.

Parameters
rotationX:Number (default = 0)rotation around X axis in radians
 
rotationY:Number (default = 0)rotation around Y axis in radians
 
rotationZ:Number (default = 0)rotation around Z axis in radians

Returns
Matrix3Dinverse rotation matrix
inverseScale()method 
public function inverseScale(scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):void

Inverce matrix scale.

Parameters
scaleX:Number (default = 1)X axis scale coefficient
 
scaleY:Number (default = 1)Y axis scale coefficient
 
scaleZ:Number (default = 1)Z axis scale coefficient
inverseScaleMatrix()method 
public static function inverseScaleMatrix(scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):Matrix3D

Get inverse scale matrix.

Parameters
scaleX:Number (default = 1)X axis scale coefficient
 
scaleY:Number (default = 1)Y axis scale coefficient
 
scaleZ:Number (default = 1)Z axis scale coefficient

Returns
Matrix3Dinverse scaling matrix
inverseTransform()method 
public function inverseTransform(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):void

Inverse matrix transformation. Matrix multiplying product S-1 × Rx-1 × Ry-1 × Rz-1 × T-1 × M, where Т — translation matrix, S — scale matrix, Rx, Ry, Rz — rotation matrices (around corresponding parental coordinate system axes).

Parameters
deltaX:Number (default = 0)X axis offset
 
deltaY:Number (default = 0)Y axis offset
 
deltaZ:Number (default = 0)Z axis offset
 
rotationX:Number (default = 0)rotation around X axis in radians
 
rotationY:Number (default = 0)rotation around Y axis in radians
 
rotationZ:Number (default = 0)rotation around Z axis in radians
 
scaleX:Number (default = 1)X axis scale coefficient
 
scaleY:Number (default = 1)Y axis scale coefficient
 
scaleZ:Number (default = 1)Z axis scale coefficient
inverseTransformationMatrix()method 
public static function inverseTransformationMatrix(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):Matrix3D

Get inverse transformation matrix. Matrix multiplying product S-1 × Rx-1 × Ry-1 × Rz-1 × T-1, where Т — translation matrix, S — scale matrix, Rx, Ry, Rz — rotation matrices (around corresponding parental coordinate system axes).

Parameters
deltaX:Number (default = 0)X axis offset
 
deltaY:Number (default = 0)Y axis offset
 
deltaZ:Number (default = 0)Z axis offset
 
rotationX:Number (default = 0)rotation around X axis in radians
 
rotationY:Number (default = 0)rotation around Y axis in radians
 
rotationZ:Number (default = 0)rotation around Z axis in radians
 
scaleX:Number (default = 1)X axis scale coefficient
 
scaleY:Number (default = 1)Y axis scale coefficient
 
scaleZ:Number (default = 1)Z axis scale coefficient

Returns
Matrix3Dinverse transformation matrix
inverseTranslate()method 
public function inverseTranslate(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0):void

Inverse matrix center offset.

Parameters
deltaX:Number (default = 0)X axis offset
 
deltaY:Number (default = 0)Y axis offset
 
deltaZ:Number (default = 0)Z axis offset
inverseTranslationMatrix()method 
public static function inverseTranslationMatrix(x:Number = 0, y:Number = 0, z:Number = 0):Matrix3D

Get inverse offset matrix.

Parameters
x:Number (default = 0)X axis offset
 
y:Number (default = 0)Y axis offset
 
z:Number (default = 0)Z axis offset

Returns
Matrix3Dinverse translation matrix
invert()method 
public function invert():void

Invert matrix.

multByScalar()method 
public function multByScalar(multiplier:Number):void

Multimplies the matrix by the given scalar.

Parameters
multiplier:Numbermultuplier
offset()method 
public function offset(x:Number = 0, y:Number = 0, z:Number = 0):void

Set matrix center.

Parameters
x:Number (default = 0)matrix center X coordinate
 
y:Number (default = 0)matrix center Y coordinate
 
z:Number (default = 0)matrix center Z coordinate
product()method 
public static function product(m1:Matrix3D, m2:Matrix3D):Matrix3D

Matrix multiply.

Parameters
m1:Matrix3Dparent transformation matrix. Left multiply operand.
 
m2:Matrix3Dchild transformation matrix. Right multiply operand.

Returns
Matrix3Dproduct of the matrix
rotate()method 
public function rotate(rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0):void

Matrix rotation. Matrix multiplying product Rz × Ry × Rx × M, where Rx, Ry, Rz — rotation matrices (around corresponding parental coordinate system axes).

Parameters
rotationX:Number (default = 0)rotation around X axis in radians
 
rotationY:Number (default = 0)rotation around Y axis in radians
 
rotationZ:Number (default = 0)rotation around Z axis in radians
rotationMatrix()method 
public static function rotationMatrix(rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0):Matrix3D

Get rotation matrix. Matrix multiply product like Rz × Ry × Rx.

Parameters
rotationX:Number (default = 0)rotation around X axis in radians
 
rotationY:Number (default = 0)rotation around Y axis in radians
 
rotationZ:Number (default = 0)rotation around Z axis in radians

Returns
Matrix3Drotation matrix
scale()method 
public function scale(scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):void

Matrix scale.

Parameters
scaleX:Number (default = 1)X axis scale coefficient
 
scaleY:Number (default = 1)Y axis scale coefficient
 
scaleZ:Number (default = 1)Z axis scale coefficient
scaleMatrix()method 
public static function scaleMatrix(scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):Matrix3D

Get scale matrix.

Parameters
scaleX:Number (default = 1)X axis scale coefficient
 
scaleY:Number (default = 1)Y axis scale coefficient
 
scaleZ:Number (default = 1)Z axis scale coefficient

Returns
Matrix3Da scale matrix
toIdentity()method 
public function toIdentity():void

Reduction matrix to a unitary matrix.

toString()method 
public function toString():String

String matrix representation.

Returns
Stringa formatted string with values of the matrix
toTransform()method 
public function toTransform(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):void

Form transformation matrix. Matrix multiplying product T × Rz × Ry × Rx × S, where Т — translation matrix, S — scale matrix, Rx, Ry, Rz — rotation matrix (around corresponding parental coordinate system axes).

Parameters
deltaX:Number (default = 0)X axis offset
 
deltaY:Number (default = 0)Y axis offset
 
deltaZ:Number (default = 0)Z axis offset
 
rotationX:Number (default = 0)rotation around X axis in radians
 
rotationY:Number (default = 0)rotation around Y axis in radians
 
rotationZ:Number (default = 0)rotation around Z axis in radians
 
scaleX:Number (default = 1)X axis scale coefficient
 
scaleY:Number (default = 1)Y axis scale coefficient
 
scaleZ:Number (default = 1)Z axis scale coefficient
transform()method 
public function transform(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):void

Matrix transformation. Matrix multiplying product T × Rz × Ry × Rx × S × M. Here Т — translation matrix, Rx, Ry, Rz — rotation matrices (around corresponding parental coordinate system axes), S — scale matrix.

Parameters
deltaX:Number (default = 0)X axis offset
 
deltaY:Number (default = 0)Y axis offset
 
deltaZ:Number (default = 0)Z axis offset
 
rotationX:Number (default = 0)rotation around X axis in radians
 
rotationY:Number (default = 0)rotation around Y axis in radians
 
rotationZ:Number (default = 0)rotation around Z axis in radians
 
scaleX:Number (default = 1)X axis scale coefficient
 
scaleY:Number (default = 1)Y axis scale coefficient
 
scaleZ:Number (default = 1)Z axis scale coefficient
transformationMatrix()method 
public static function transformationMatrix(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1):Matrix3D

Get transformation matrix. Matrix multiplying product T × Rz × Ry × Rx × S, where Т — translation matrix, S — scale matrix, Rx, Ry, Rz — rotation matrices (around corresponding parental coordinate system axes).

Parameters
deltaX:Number (default = 0)X axis offset
 
deltaY:Number (default = 0)Y axis offset
 
deltaZ:Number (default = 0)Z axis offset
 
rotationX:Number (default = 0)rotation around X axis in radians
 
rotationY:Number (default = 0)rotation around Y axis in radians
 
rotationZ:Number (default = 0)rotation around Z axis in radians
 
scaleX:Number (default = 1)X axis scale coefficient
 
scaleY:Number (default = 1)Y axis scale coefficient
 
scaleZ:Number (default = 1)Z axis scale coefficient

Returns
Matrix3D
translate()method 
public function translate(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0):void

Matrix center translation.

Parameters
deltaX:Number (default = 0)X axis offset
 
deltaY:Number (default = 0)Y axis offset
 
deltaZ:Number (default = 0)Z axis offset
translateLocal()method 
public function translateLocal(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0):void

Matrix center translation in local coordinates.

Parameters
deltaX:Number (default = 0)X axis offset
 
deltaY:Number (default = 0)Y axis offset
 
deltaZ:Number (default = 0)Z axis offset
translationMatrix()method 
public static function translationMatrix(deltaX:Number = 0, deltaY:Number = 0, deltaZ:Number = 0):Matrix3D

Get translation matrix.

Parameters
deltaX:Number (default = 0)X axis offset
 
deltaY:Number (default = 0)Y axis offset
 
deltaZ:Number (default = 0)Z axis offset

Returns
Matrix3Dtranslation matrix
transpose()method 
public function transpose():void

Transposes the matrix.