quicktime.qd3d.math
Class Matrix4x4

java.lang.Object
  |
  +--quicktime.util.QTByteObject
        |
        +--quicktime.qd3d.math.Matrix4x4
All Implemented Interfaces:
java.lang.Cloneable, quicktime.jdirect.InterfaceLib, quicktime.jdirect.PrimitivesLib, quicktime.jdirect.QuickDraw3DLib, quicktime.jdirect.QuickTimeLib, java.io.Serializable, quicktime.jdirect.SharedLibrary, com.apple.jdirect.SharedLibrary

public final class Matrix4x4
extends QTByteObject
implements quicktime.jdirect.QuickTimeLib, quicktime.jdirect.QuickDraw3DLib, java.lang.Cloneable

Matrix4x4 contains information for a 4 x 4 float matrix. refer to Q3Matrix4x4 in QuickDraw3D

See Also:
Serialized Form

Field Summary
static int kNativeSize
          This is the size (the number of bytes) that are required for this class
 
Fields inherited from interface quicktime.jdirect.QuickTimeLib
JDirect_MacOSX, libraryInstance, name
 
Fields inherited from interface quicktime.jdirect.QuickDraw3DLib
libraryInstance
 
Constructor Summary
Matrix4x4()
          Creates a Matrix4x4 object and sets it to the identity matrix.
Matrix4x4(float[][] table)
          Construct an instance of a Matrix4x4 from the values of a float[][], which is a 4x4 table, - an array of row values.
 
Method Summary
 java.lang.Object clone()
          Returns a copy of this class.
 Matrix4x4 copy()
          Returns a copy of the matrix.
 float determinant()
          Returns the determinant of this matrix.
 float getAt00()
          Returns the value at the specified index.
 float getAt01()
          Returns the value at the specified index.
 float getAt02()
          Returns the value at the specified index.
 float getAt03()
          Returns the value at the specified index.
 float getAt10()
          Returns the value at the specified index.
 float getAt11()
          Returns the value at the specified index.
 float getAt12()
          Returns the value at the specified index.
 float getAt13()
          Returns the value at the specified index.
 float getAt20()
          Returns the value at the specified index.
 float getAt21()
          Returns the value at the specified index.
 float getAt22()
          Returns the value at the specified index.
 float getAt23()
          Returns the value at the specified index.
 float getAt30()
          Returns the value at the specified index.
 float getAt31()
          Returns the value at the specified index.
 float getAt32()
          Returns the value at the specified index.
 float getAt33()
          Returns the value at the specified index.
static EndianDescriptor getEndianDescriptor()
          Returns the EndianDescriptor for this class.
 Matrix4x4 invert()
          Returns the inverse of the matrix.
 Matrix4x4 multiply(Matrix4x4 matrixB)
          Returns the product of the two 4-by-4 matrices, this and matrixB.
 void setAt00(float val)
          Sets the value at the specified index.
 void setAt01(float val)
          Sets the value at the specified index.
 void setAt02(float val)
          Sets the value at the specified index.
 void setAt03(float val)
          Sets the value at the specified index.
 void setAt10(float val)
          Sets the value at the specified index.
 void setAt11(float val)
          Sets the value at the specified index.
 void setAt12(float val)
          Sets the value at the specified index.
 void setAt13(float val)
          Sets the value at the specified index.
 void setAt20(float val)
          Sets the value at the specified index.
 void setAt21(float val)
          Sets the value at the specified index.
 void setAt22(float val)
          Sets the value at the specified index.
 void setAt23(float val)
          Sets the value at the specified index.
 void setAt30(float val)
          Sets the value at the specified index.
 void setAt31(float val)
          Sets the value at the specified index.
 void setAt32(float val)
          Sets the value at the specified index.
 void setAt33(float val)
          Sets the value at the specified index.
 void setIdentity()
          Sets the Matrix to the 4-by-4 identity matrix.
 void setQuaternion(Quaternion quaternion)
          Sets a 4-by-4 matrix that represents the quaternion specified by the quaternion parameter.
 void setRotateAboutAxis(Point3D origin, Vector3D orientation, float angle)
          Sets a rotate-about-axis matrix that rotates an object by the specified angle around the axis determined by the point origin and the specified orientation.
 void setRotateAboutPoint(Point3D origin, float xAngle, float yAngle, float zAngle)
          Rotates a matrix by the specified angle around the point origin.
 void setRotateVectorToVector(Vector3D v1, Vector3D v2)
          Sets a rotational matrix that rotates objects around the origin in such a way that the transformed vector v1 matches the vector v2.
 void setRotateX(float angle)
          Sets a rotational matrix that rotates an object by the specified angle around the x axis.
 void setRotateXYZ(float xAngle, float yAngle, float zAngle)
          Sets a rotational matrix that rotates an object by the specified angles around their specified axis.
 void setRotateY(float angle)
          Sets a rotational matrix that rotates an object by the specified angle around the y axis.
 void setRotateZ(float angle)
          Sets a rotational matrix that rotates an object by the specified angle around the x axis.
 void setScale(float xScale, float yScale, float zScale)
          Scales a matrix by the amount xScale along the x coordinate axis, by the amount yScale along the y coordinate axis and by the amount zScale along the z coordinate axis.
 void setTranslate(float xTrans, float yTrans, float zTrans)
          Translates a matrix by the amount xTrans along the x coordinate axis, by the amount yTrans along the y coordinate axis and by the amount zTrans along the z coordinate axis.
 Matrix4x4 transpose()
          Returns the transpose of the matrix.
 
Methods inherited from class quicktime.util.QTByteObject
equals, fromArray, getBytes, getSize, toString
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

kNativeSize

public static final int kNativeSize
This is the size (the number of bytes) that are required for this class
Constructor Detail

Matrix4x4

public Matrix4x4()
Creates a Matrix4x4 object and sets it to the identity matrix.

Matrix4x4

public Matrix4x4(float[][] table)
Construct an instance of a Matrix4x4 from the values of a float[][], which is a 4x4 table, - an array of row values.
Parameters:
table - a 4x4 table of float values.
Method Detail

getEndianDescriptor

public static final EndianDescriptor getEndianDescriptor()
Returns the EndianDescriptor for this class.
Returns:
an EndianDescriptor

getAt00

public float getAt00()
Returns the value at the specified index.
Returns:
a float

setAt00

public void setAt00(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt01

public float getAt01()
Returns the value at the specified index.
Returns:
a float

setAt01

public void setAt01(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt02

public float getAt02()
Returns the value at the specified index.
Returns:
a float

setAt02

public void setAt02(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt03

public float getAt03()
Returns the value at the specified index.
Returns:
a float

setAt03

public void setAt03(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt10

public float getAt10()
Returns the value at the specified index.
Returns:
a float

setAt10

public void setAt10(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt11

public float getAt11()
Returns the value at the specified index.
Returns:
a float

setAt11

public void setAt11(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt12

public float getAt12()
Returns the value at the specified index.
Returns:
a float

setAt12

public void setAt12(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt13

public float getAt13()
Returns the value at the specified index.
Returns:
a float

setAt13

public void setAt13(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt20

public float getAt20()
Returns the value at the specified index.
Returns:
a float

setAt20

public void setAt20(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt21

public float getAt21()
Returns the value at the specified index.
Returns:
a float

setAt21

public void setAt21(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt22

public float getAt22()
Returns the value at the specified index.
Returns:
a float

setAt22

public void setAt22(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt23

public float getAt23()
Returns the value at the specified index.
Returns:
a float

setAt23

public void setAt23(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt30

public float getAt30()
Returns the value at the specified index.
Returns:
a float

setAt30

public void setAt30(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt31

public float getAt31()
Returns the value at the specified index.
Returns:
a float

setAt31

public void setAt31(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt32

public float getAt32()
Returns the value at the specified index.
Returns:
a float

setAt32

public void setAt32(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

getAt33

public float getAt33()
Returns the value at the specified index.
Returns:
a float

setAt33

public void setAt33(float val)
Sets the value at the specified index.
Parameters:
val - the new float value

copy

public Matrix4x4 copy()
Returns a copy of the matrix.

QuickDraw3D::Q3Matrix4x4_Copy

Returns:
a copy of matrix3x3.

setIdentity

public void setIdentity()
Sets the Matrix to the 4-by-4 identity matrix.

QuickDraw3D::Q3Matrix4x4_SetIdentity


transpose

public Matrix4x4 transpose()
Returns the transpose of the matrix.

QuickDraw3D::Q3Matrix4x4_Transpose

Returns:
the transpose matrix

invert

public Matrix4x4 invert()
Returns the inverse of the matrix.

QuickDraw3D::Q3Matrix4x4_Invert

Returns:
the invert matrix

multiply

public Matrix4x4 multiply(Matrix4x4 matrixB)
Returns the product of the two 4-by-4 matrices, this and matrixB.

QuickDraw3D::Q3Matrix4x4_Multiply

Parameters:
matrixB - a matrix
Returns:
the product

determinant

public float determinant()
Returns the determinant of this matrix.

QuickDraw3D::Q3Matrix4x4_Determinant

Returns:
the determinanta

setTranslate

public void setTranslate(float xTrans,
                         float yTrans,
                         float zTrans)
Translates a matrix by the amount xTrans along the x coordinate axis, by the amount yTrans along the y coordinate axis and by the amount zTrans along the z coordinate axis.

QuickDraw3D::Q3Matrix4x4_SetTranslate

Parameters:
xTrans - The desired amount of translation along the x coordinate axis.
yTrans - The desired amount of translation along the y coordinate axis.
zTrans - The desired amount of translation along the z coordinate axis.

setScale

public void setScale(float xScale,
                     float yScale,
                     float zScale)
Scales a matrix by the amount xScale along the x coordinate axis, by the amount yScale along the y coordinate axis and by the amount zScale along the z coordinate axis.

QuickDraw3D::Q3Matrix4x4_SetScale

Parameters:
xScale - The desired amount of scaling along the x coordinate axis.
yScale - The desired amount of scaling along the y coordinate axis.
zScale - The desired amount of scaling along the z coordinate axis.

setRotateAboutPoint

public void setRotateAboutPoint(Point3D origin,
                                float xAngle,
                                float yAngle,
                                float zAngle)
Rotates a matrix by the specified angle around the point origin.

QuickDraw3D::Q3Matrix4x4_SetRotateAboutPoint

Parameters:
origin - The desired origin of rotation.
xAngle - The desired angle of rotation around the x component of origin, in radians.
yAngle - The desired angle of rotation around the y component of origin, in radians.
zAngle - The desired angle of rotation around the z component of origin, in radians.

setRotateAboutAxis

public void setRotateAboutAxis(Point3D origin,
                               Vector3D orientation,
                               float angle)
Sets a rotate-about-axis matrix that rotates an object by the specified angle around the axis determined by the point origin and the specified orientation.

QuickDraw3D::Q3Matrix4x4_SetRotateAboutAxis

Parameters:
origin - The desired origin of rotation.
orientation - The desired orientation of the axis of rotation.
angle - The desired angle of rotation, in radians.

setRotateX

public void setRotateX(float angle)
Sets a rotational matrix that rotates an object by the specified angle around the x axis.

QuickDraw3D::Q3Matrix4x4_SetRotate_X

Parameters:
angle - The desired angle of rotation around the x coordinate axis, in radians.

setRotateY

public void setRotateY(float angle)
Sets a rotational matrix that rotates an object by the specified angle around the y axis.

QuickDraw3D::Q3Matrix4x4_SetRotate_Y

Parameters:
angle - The desired angle of rotation around the y coordinate axis, in radians.

setRotateZ

public void setRotateZ(float angle)
Sets a rotational matrix that rotates an object by the specified angle around the x axis.

QuickDraw3D::Q3Matrix4x4_SetRotate_Z

Parameters:
angle - The desired angle of rotation around the z coordinate axis, in radians.

setRotateXYZ

public void setRotateXYZ(float xAngle,
                         float yAngle,
                         float zAngle)
Sets a rotational matrix that rotates an object by the specified angles around their specified axis.

QuickDraw3D::Q3Matrix4x4_SetRotate_XYZ

Parameters:
xAngle - The desired angle of rotation around the x coordinate axis, in radians.
yAngle - The desired angle of rotation around the y coordinate axis, in radians.
zAngle - The desired angle of rotation around the z coordinate axis, in radians.

setRotateVectorToVector

public void setRotateVectorToVector(Vector3D v1,
                                    Vector3D v2)
Sets a rotational matrix that rotates objects around the origin in such a way that the transformed vector v1 matches the vector v2. Both v1 and v2 should be normalized.

QuickDraw3D::Q3Matrix4x4_SetRotateVectorToVector

Parameters:
v1 - A three-dimensional vector.
v2 - A three-dimensional vector.

setQuaternion

public void setQuaternion(Quaternion quaternion)
Sets a 4-by-4 matrix that represents the quaternion specified by the quaternion parameter.

QuickDraw3D::Q3Matrix4x4_SetQuaternion

Parameters:
quaternion - A quaternion.

clone

public java.lang.Object clone()
Returns a copy of this class.