Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

TMatrix4x4< T > Class Template Reference
[4x4 Matrix]

Generic 4x4 Matrix Class. More...

#include <matrix44.h>

List of all members.

Accessors

getTrace () const throw ()
 Compute the trace.
void setIdentity () throw ()
 Set to an identity matrix.
void set (const T &t=(T) 1) throw ()
 Set the diagonal elements to the given value.
void transpose () throw ()
 Mirror the Matrix at the diagonal.
TVector4< T > getRow (Position row) const throw (Exception::IndexOverflow)
 Get a row of the matrix.
TVector4< T > getColumn (Position col) const throw (Exception::IndexOverflow)
 Get a column of the matrix.
void setRow (Position row, const TVector4< T > &row_value) throw (Exception::IndexOverflow)
 Set a row of the matrix.
void setColumn (Position col, const TVector4< T > &col_value) throw (Exception::IndexOverflow)
 Set a column of the matrix.
bool isEqual (const TMatrix4x4 &m) const throw ()
 Test whether two matrices are equal.
TVector4< T > getDiagonal () const throw ()
 Get the diagonal of the matrix.
T & operator() (Position row, Position col) throw (Exception::IndexOverflow)
 Access operator of a cell.
const T & operator() (Position row, Position col) const throw (Exception::IndexOverflow)
 Constant access operator of a cell.
const T & operator[] (Position position) const throw (Exception::IndexOverflow)
 Constant random access operator.
T & operator[] (Position position) throw (Exception::IndexOverflow)
 Mutable random access operator.
TMatrix4x4 operator+ () const throw ()
 Positive sign.
TMatrix4x4 operator- () const throw ()
 Negative sign.
TMatrix4x4 operator+ (const TMatrix4x4 &m) const throw ()
 Addition operator.
TMatrix4x4operator+= (const TMatrix4x4 &m) throw ()
 Addition operator.
TMatrix4x4 operator- (const TMatrix4x4 &m) const throw ()
 Subtraction operator.
TMatrix4x4operator-= (const TMatrix4x4 &m) throw ()
 Subtraction operator.
TMatrix4x4 operator * (const T &scalar) const throw ()
 Multiply by a scalar.
TMatrix4x4operator *= (const T &scalar) throw ()
 Multiply by a scalar.
TMatrix4x4 operator/ (const T &scalar) const throw (Exception::DivisionByZero)
 Divide by a scalar.
TMatrix4x4operator/= (const T &scalar) throw (Exception::DivisionByZero)
 Divide by a scalar.
TMatrix4x4 operator * (const TMatrix4x4 &m) const throw ()
 Multiply two matrices.
TMatrix4x4operator *= (const TMatrix4x4 &m) throw ()
 Multiply two matrices.
TVector4< T > operator * (const TVector4< T > &vector) const throw ()
 Multiplication by an instance of type TVector4 .
bool invert (TMatrix4x4 &inverse) const throw ()
 Invert the matrix.
bool invert () throw ()
 Invert the matrix.
getDeterminant () const throw ()
 Compute the determinant.
void translate (const T &x, const T &y, const T &z) throw ()
 Translate the matrix.
void translate (const TVector3< T > &v) throw ()
 Translate the matrix.
void setTranslation (const T &x, const T &y, const T &z) throw ()
 Set the matrix to a translation matrix.
void setTranslation (const TVector3< T > &v) throw ()
 Set the matrix to a translation matrix.
void scale (const T &x_scale, const T &y_scale, const T &z_scale) throw ()
 Scale the matrix.
void scale (const T &scale) throw ()
 Scale the matrix.
void scale (const TVector3< T > &v) throw ()
 Scale the matrix.
void setScale (const T &x_scale, const T &y_scale, const T &z_scale) throw ()
 Set the matrix to a scalation matrix.
void setScale (const T &scale) throw ()
 Set the matrix to a scalation matrix.
void setScale (const TVector3< T > &v) throw ()
 Set the matrix to a scalation matrix.
void rotateX (const TAngle< T > &phi) throw ()
 Rotate the matrix around the x axis.
void setRotationX (const TAngle< T > &phi) throw ()
 Set the matrix to a x rotation matrix.
void rotateY (const TAngle< T > &phi) throw ()
 Rotate the matrix around the y axis.
void setRotationY (const TAngle< T > &phi) throw ()
 Set the matrix to a y rotation matrix.
void rotateZ (const TAngle< T > &phi) throw ()
 Rotate the matrix around the z axis.
void setRotationZ (const TAngle< T > &phi) throw ()
 Set the matrix to a z rotation matrix.
void rotate (const TAngle< T > &phi, const T &axis_x, const T &axis_y, const T &axis_z) throw ()
 Rotate the matrix around a given axis.
void rotate (const TAngle< T > &phi, const TVector3< T > &axis) throw ()
 Rotate the matrix around a given axis.
void rotate (const TAngle< T > &phi, const TVector4< T > &axis) throw ()
 Rotate the matrix around a given axis.
void setRotation (const TAngle< T > &phi, const T &axis_x, const T &axis_y, const T &axis_z) throw ()
 Set the matrix to a rotation matrix.
void setRotation (const TAngle< T > &phi, const TVector3< T > &axis) throw ()
 Set the matrix to a rotation matrix.
void setRotation (const TAngle< T > &phi, const TVector4< T > &axis) throw ()
 Set the matrix to a rotation matrix.
const TMatrix4x4getZero () throw ()
 Create a zero matrix.
const TMatrix4x4getIdentity () throw ()
 Create an identity matrix.

Public Member Functions

Constructors and Destructors
 TMatrix4x4 () throw ()
 Default constructor.
 TMatrix4x4 (const T *ptr) throw (Exception::NullPointer)
 Array constructor.
 TMatrix4x4 (const T ptr[4][4]) throw (Exception::NullPointer)
 Array constructor.
 TMatrix4x4 (const TMatrix4x4 &m) throw ()
 Copy constructor.
 TMatrix4x4 (const TVector4< T > &col1, const TVector4< T > &col2, const TVector4< T > &col3, const TVector4< T > &col4) throw ()
 Detailed constructor.
 TMatrix4x4 (const T &m11, const T &m12, const T &m13, const T &m14, const T &m21, const T &m22, const T &m23, const T &m24, const T &m31, const T &m32, const T &m33, const T &m34, const T &m41, const T &m42, const T &m43, const T &m44) throw ()
 Detailed constructor.
virtual ~TMatrix4x4 () throw ()
 Destructor.
virtual void clear () throw ()
 Clear method.
Assignment
void set (const T *ptr) throw (Exception::NullPointer)
 Assign from array-ptr.
void set (const T ptr[4][4]) throw (Exception::NullPointer)
 Assign from the first sixteen elements.
void set (const TMatrix4x4 &m) throw ()
 Assign from another instance.
void set (const TVector4< T > &col1, const TVector4< T > &col2, const TVector4< T > &col3, const TVector4< T > &col4) throw ()
 Assign from four TVector4.
void set (const T &m11, const T &m12, const T &m13, const T &m14, const T &m21, const T &m22, const T &m23, const T &m24, const T &m31, const T &m32, const T &m33, const T &m34, const T &m41, const T &m42, const T &m43, const T &m44) throw ()
 Assign from sixteen values of type T.
TMatrix4x4operator= (const T *ptr) throw (Exception::NullPointer)
 Assignment operator.
TMatrix4x4operator= (const T ptr[4][4]) throw (Exception::NullPointer)
 Assignment operator.
TMatrix4x4operator= (const TMatrix4x4 &m) throw ()
 Assignment operator.
void get (T *ptr) const throw (Exception::NullPointer)
 Assign to an array.
void get (T ptr[4][4]) const throw (Exception::NullPointer)
 Assign to an array.
void get (TMatrix4x4 &m) const throw ()
 Assign to another instance.
void get (TVector4< T > &col1, TVector4< T > &col2, TVector4< T > &col3, TVector4< T > &col4) const throw ()
 Assign to four variables of type TVector4 .
void get (T &m11, T &m12, T &m13, T &m14, T &m21, T &m22, T &m23, T &m24, T &m31, T &m32, T &m33, T &m34, T &m41, T &m42, T &m43, T &m44) const throw ()
 Assign to sixteen variables of type T.
void swap (TMatrix4x4 &m) throw ()
 Swap the contents of two instances of TMatrix4x4.
Predicates
bool operator== (const TMatrix4x4 &m) const throw ()
 Equality operator.
bool operator!= (const TMatrix4x4 &m) const throw ()
 Inequality operator.
bool isIdentity () const throw ()
 Test whether this matrix is an identity matrix.
bool isRegular () const throw ()
 Test whether this matrix is regular.
bool isSingular () const throw ()
 Test whether this matrix is singular.
bool isSymmetric () const throw ()
 Test whether this matrix is symmetric.
bool isLowerTriangular () const throw ()
 Test whether the lower triangular is zero.
bool isUpperTriangular () const throw ()
 Test whether the upper triangular is zero.
bool isDiagonal () const throw ()
 Test whether all cells but the diagonal are zero.
Debugging and Diagnostics
bool isValid () const throw ()
 Test whether instance is valid.
void dump (std::ostream &s=std::cout, Size depth=0) const throw ()
 Internal state dump.

Public Attributes

Attributes
m11
 1st cell in the 1st row
m12
 2nd cell in the 1st row
m13
 3rd cell in the 1st row
m14
 4th cell in the 1st row
m21
 1st cell in the 2nd row
m22
 2nd cell in the 2nd row
m23
 3rd cell in the 2nd row
m24
 4th cell in the 2nd row
m31
 1st cell in the 3rd row
m32
 2nd cell in the 3rd row
m33
 3rd cell in the 3rd row
m34
 4th cell in the 3rd row
m41
 1st cell in the 4th row
m42
 2nd cell in the 4th row
m43
 3rd cell in the 4th row
m44
 4th cell in the 4th row


Detailed Description

template<typename T>
class TMatrix4x4< T >

Generic 4x4 Matrix Class.


Constructor & Destructor Documentation

template<typename T>
TMatrix4x4< T >::TMatrix4x4  )  throw ()
 

Default constructor.

This method creates a new TMatrix4x4 object. The components are initialized to 0.

template<typename T>
TMatrix4x4< T >::TMatrix4x4 const T *  ptr  )  throw (Exception::NullPointer)
 

Array constructor.

This constructor creates a TMatrix4x4 object from the first sixteen elements pointed to by ptr.

Parameters:
ptr the array to construct from
Exceptions:
NullPointer if ptr == 0

template<typename T>
TMatrix4x4< T >::TMatrix4x4 const T  ptr[4][4]  )  throw (Exception::NullPointer)
 

Array constructor.

This constructor creates a TMatrix4x4 object from the sixteen elements in the array assigned by ptr.

Parameters:
ptr the array to construct from
Exceptions:
NullPointer if ptr == 0

template<typename T>
TMatrix4x4< T >::TMatrix4x4 const TMatrix4x4< T > &  m  )  throw ()
 

Copy constructor.

Create a new TMatrix4x4 object from another.

Parameters:
TMatrix4x4 the TMatrix4x4 object to be copied
bool ignored (just for interface consistency)

template<typename T>
TMatrix4x4< T >::TMatrix4x4 const TVector4< T > &  col1,
const TVector4< T > &  col2,
const TVector4< T > &  col3,
const TVector4< T > &  col4
throw ()
 

Detailed constructor.

Create a new TMatrix4x4 object from four TVector4.

Parameters:
col1 assigned to the first column
col2 assigned to the second column
col3 assigned to the third column
col4 assigned to the fourth column

template<typename T>
TMatrix4x4< T >::TMatrix4x4 const T &  m11,
const T &  m12,
const T &  m13,
const T &  m14,
const T &  m21,
const T &  m22,
const T &  m23,
const T &  m24,
const T &  m31,
const T &  m32,
const T &  m33,
const T &  m34,
const T &  m41,
const T &  m42,
const T &  m43,
const T &  m44
throw ()
 

Detailed constructor.

Create a new TMatrix4x4 object from sixteen T values.

Parameters:
m11 - m44 assigned to the components

template<typename T>
virtual TMatrix4x4< T >::~TMatrix4x4  )  throw () [virtual]
 

Destructor.

Destructs the TMatrix4x4 object. As there are no dynamic data structures, nothing happens.


Member Function Documentation

template<typename T>
void TMatrix4x4< T >::clear  )  throw () [virtual]
 

Clear method.

The values are set to 0.

template<typename T>
void TMatrix4x4< T >::dump std::ostream &  s = std::cout,
Size  depth = 0
const throw ()
 

Internal state dump.

Dump the current internal state of {*this} to the output ostream s with dumping depth depth .

Parameters:
s - output stream where to output the internal state of {*this}
depth - the dumping depth

template<typename T>
void TMatrix4x4< T >::get T &  m11,
T &  m12,
T &  m13,
T &  m14,
T &  m21,
T &  m22,
T &  m23,
T &  m24,
T &  m31,
T &  m32,
T &  m33,
T &  m34,
T &  m41,
T &  m42,
T &  m43,
T &  m44
const throw ()
 

Assign to sixteen variables of type T.

Parameters:
m11 - m44 the variables to assign to

template<typename T>
void TMatrix4x4< T >::get TVector4< T > &  col1,
TVector4< T > &  col2,
TVector4< T > &  col3,
TVector4< T > &  col4
const throw ()
 

Assign to four variables of type TVector4 .

Parameters:
col1 the TVector4 to obtain the values of the first column
col2 the TVector4 to obtain the values of the second column
col3 the TVector4 to obtain the values of the third column
col4 the TVector4 to obtain the values of the fourth column

template<typename T>
void TMatrix4x4< T >::get TMatrix4x4< T > &  m  )  const throw ()
 

Assign to another instance.

Assigns the components to another TMatrix4x4.

Parameters:
TMatrix4x4 the TMatrix4x4 to be assigned to

template<typename T>
void TMatrix4x4< T >::get ptr[4][4]  )  const throw (Exception::NullPointer)
 

Assign to an array.

Assigns the components to an array of sixteen values of type T.

Exceptions:
NullPointer if ptr == 0
Parameters:
ptr the array to assign to

template<typename T>
void TMatrix4x4< T >::get T *  ptr  )  const throw (Exception::NullPointer)
 

Assign to an array.

Assigns the components to a pointer of an array of sixteen values of type T.

Exceptions:
NullPointer if ptr == 0
Parameters:
ptr the pointer to assign to

template<typename T>
TVector4< T > TMatrix4x4< T >::getColumn Position  col  )  const throw (Exception::IndexOverflow)
 

Get a column of the matrix.

Parameters:
col the number of the column (0-3)
Exceptions:
IndexOverflow if col > 3
Returns:
TVector4 the column

template<typename T>
T TMatrix4x4< T >::getDeterminant  )  const throw ()
 

Compute the determinant.

Returns:
T the determinant.

template<typename T>
TVector4< T > TMatrix4x4< T >::getDiagonal  )  const throw ()
 

Get the diagonal of the matrix.

Returns:
TVector4 the diagonal

template<typename T>
const TMatrix4x4< T > & TMatrix4x4< T >::getIdentity  )  throw () [static]
 

Create an identity matrix.

A new matrix object is created and all elements but the diagonal are set to zero. The diagonal elements are set to 1.

template<typename T>
TVector4< T > TMatrix4x4< T >::getRow Position  row  )  const throw (Exception::IndexOverflow)
 

Get a row of the matrix.

Parameters:
row the number of the row (0-3)
Exceptions:
IndexOverflow if row > 3
Returns:
TVector4 the row

template<typename T>
T TMatrix4x4< T >::getTrace  )  const throw ()
 

Compute the trace.

Get the sum of the diagonal elements (m11 + m22 + m33 + m44).

Returns:
T the trace

template<typename T>
const TMatrix4x4< T > & TMatrix4x4< T >::getZero  )  throw () [static]
 

Create a zero matrix.

A new matrix object is created and all elements set to 0.

template<typename T>
bool TMatrix4x4< T >::invert  )  throw ()
 

Invert the matrix.

Tests if the matrix can be inverted. If this is possible, the result is stored in the matrix.

Returns:
bool true if the inverse matrix could be calculated, otherwise false.

template<typename T>
bool TMatrix4x4< T >::invert TMatrix4x4< T > &  inverse  )  const throw ()
 

Invert the matrix.

Tests if the matrix can be inverted. If possible, the result will be inverted and the result returned in inverse .

Parameters:
inverse is assigned the inverse matrix
Returns:
bool true if the inverse matrix could be calculated, otherwise false.

template<typename T>
bool TMatrix4x4< T >::isDiagonal  )  const throw ()
 

Test whether all cells but the diagonal are zero.

Returns:
bool, true or false

template<typename T>
bool TMatrix4x4< T >::isEqual const TMatrix4x4< T > &  m  )  const throw ()
 

Test whether two matrices are equal.

Two matrices are considered equal, if Maths::isEqual returns true for each pair of corresponding elements.

Parameters:
m the matrix to compare with
Returns:
bool, true if all components are equal, false otherwise

template<typename T>
bool TMatrix4x4< T >::isIdentity  )  const throw ()
 

Test whether this matrix is an identity matrix.

(I.e. m11, m22, m33, m44 = 1 and the other cells have the value 0)

Returns:
bool, true if identity matrix, false otherwise

template<typename T>
bool TMatrix4x4< T >::isLowerTriangular  )  const throw ()
 

Test whether the lower triangular is zero.

Returns:
bool, true if (m12 = m13 = m14 = m23 = m24 = m34 = 0), false otherwise

template<typename T>
bool TMatrix4x4< T >::isRegular  )  const throw ()
 

Test whether this matrix is regular.

Returns:
bool, true if (Determinant != 0), false otherwise

template<typename T>
bool TMatrix4x4< T >::isSingular  )  const throw ()
 

Test whether this matrix is singular.

Returns:
bool, true if (Determinant == 0), false otherwise

template<typename T>
bool TMatrix4x4< T >::isSymmetric  )  const throw ()
 

Test whether this matrix is symmetric.

(m12 = m21, m31 = m13, ...)

Returns:
bool, true if symmatric, false otherwise

template<typename T>
bool TMatrix4x4< T >::isUpperTriangular  )  const throw ()
 

Test whether the upper triangular is zero.

Returns:
bool, true if (m21 = m31 = m32 = m41 = m42 = m43 = 0), false otherwise

template<typename T>
bool TMatrix4x4< T >::isValid  )  const throw ()
 

Test whether instance is valid.

Always returns true.

Returns:
bool true

template<typename T>
TVector4< T > TMatrix4x4< T >::operator * const TVector4< T > &  vector  )  const throw ()
 

Multiplication by an instance of type TVector4 .

Returns:
TMatrix4x4&, {*this}

template<typename T>
TMatrix4x4< T > TMatrix4x4< T >::operator * const TMatrix4x4< T > &  m  )  const throw ()
 

Multiply two matrices.

Returns:
TMatrix4x4 the result

template<typename T>
TMatrix4x4< T > TMatrix4x4< T >::operator * const T &  scalar  )  const throw ()
 

Multiply by a scalar.

Operator for multiplying every cell value with a scalar value.

Returns:
TMatrix4x4 the result

template<typename T>
TMatrix4x4< T > & TMatrix4x4< T >::operator *= const TMatrix4x4< T > &  m  )  throw ()
 

Multiply two matrices.

Returns:
TMatrix4x4&, {*this}

template<typename T>
TMatrix4x4< T > & TMatrix4x4< T >::operator *= const T &  scalar  )  throw ()
 

Multiply by a scalar.

Operator for multiplying every cell value with a scalar value.

Returns:
TMatrix4x4&, {*this}

template<typename T>
bool TMatrix4x4< T >::operator!= const TMatrix4x4< T > &  m  )  const throw ()
 

Inequality operator.

Instead of this operator isEqual should be used. isEqual

Returns:
bool, true if the two TMatrix4x4 differ in at least one component, false otherwise

template<typename T>
const T & TMatrix4x4< T >::operator() Position  row,
Position  col
const throw (Exception::IndexOverflow)
 

Constant access operator of a cell.

Parameters:
row the number of the row (0-3)
col the number of the column (0-3)
Exceptions:
IndexOverflow if col ||row > 3
Returns:
T& a const reference to the cell

template<typename T>
T & TMatrix4x4< T >::operator() Position  row,
Position  col
throw (Exception::IndexOverflow)
 

Access operator of a cell.

Parameters:
row the number of the row (0-3)
col the number of the column (0-3)
Exceptions:
IndexOverflow if col >3 || row > 3
Returns:
T& a reference to the cell

template<typename T>
TMatrix4x4< T > TMatrix4x4< T >::operator+ const TMatrix4x4< T > &  m  )  const throw ()
 

Addition operator.

Adds another matrix to this matrix and return the result.

Parameters:
m the matrix to add
Returns:
TMatrix4x4 the result

template<typename T>
TMatrix4x4< T > TMatrix4x4< T >::operator+  )  const throw ()
 

Positive sign.

template<typename T>
TMatrix4x4< T > & TMatrix4x4< T >::operator+= const TMatrix4x4< T > &  m  )  throw ()
 

Addition operator.

Adds another matrix to this matrix.

Parameters:
m the matrix to add
Returns:
TMatrix4x4&, {*this}

template<typename T>
TMatrix4x4< T > TMatrix4x4< T >::operator- const TMatrix4x4< T > &  m  )  const throw ()
 

Subtraction operator.

Subtract another matrix from this matrix and return the result

Parameters:
m the matrix to subtract
Returns:
TMatrix4x4 the result

template<typename T>
TMatrix4x4< T > TMatrix4x4< T >::operator-  )  const throw ()
 

Negative sign.

template<typename T>
TMatrix4x4< T > & TMatrix4x4< T >::operator-= const TMatrix4x4< T > &  m  )  throw ()
 

Subtraction operator.

Subtract another matrix from this matrix.

Parameters:
m the matrix to subtract
Returns:
TMatrix4x4&, {*this}

template<typename T>
TMatrix4x4< T > TMatrix4x4< T >::operator/ const T &  scalar  )  const throw (Exception::DivisionByZero)
 

Divide by a scalar.

Operator for dividing every cell value by a scalar value.

Exceptions:
DivisionByZero if scalar == 0
Returns:
TMatrix4x4 the result

template<typename T>
TMatrix4x4< T > & TMatrix4x4< T >::operator/= const T &  scalar  )  throw (Exception::DivisionByZero)
 

Divide by a scalar.

Operator for dividing every cell value by a scalar value.

Exceptions:
DivisionByZero if scalar == 0
Returns:
TMatrix4x4&, {*this}

template<typename T>
TMatrix4x4< T > & TMatrix4x4< T >::operator= const TMatrix4x4< T > &  m  )  throw ()
 

Assignment operator.

Assign the components from another instance of TMatrix4x4.

Parameters:
TMatrix4x4 the TMatrix4x4 to assign from

template<typename T>
TMatrix4x4< T > & TMatrix4x4< T >::operator= const T  ptr[4][4]  )  throw (Exception::NullPointer)
 

Assignment operator.

Assign the components from the first 16 values assigned by ptr.

Parameters:
ptr the array to construct from

template<typename T>
TMatrix4x4< T > & TMatrix4x4< T >::operator= const T *  ptr  )  throw (Exception::NullPointer)
 

Assignment operator.

Assign the components from the first 16 values assigned by ptr.

Parameters:
ptr the array to construct from

template<typename T>
bool TMatrix4x4< T >::operator== const TMatrix4x4< T > &  m  )  const throw ()
 

Equality operator.

Instead of this operator isEqual should be used. isEqual

Returns:
bool, true if all components are equal, false otherwise

template<typename T>
T & TMatrix4x4< T >::operator[] Position  position  )  throw (Exception::IndexOverflow)
 

Mutable random access operator.

See also:
operator[]

template<typename T>
const T & TMatrix4x4< T >::operator[] Position  position  )  const throw (Exception::IndexOverflow)
 

Constant random access operator.

Access single elements of the matrix. index may assume values in the range of 0 - 15. The elements of the matrix are returned rows first, i.e., in the following order: m11, m12, m13...

template<typename T>
void TMatrix4x4< T >::rotate const TAngle< T > &  phi,
const TVector4< T > &  axis
throw ()
 

Rotate the matrix around a given axis.

Parameters:
phi the rotation angle
axis the axis vector, the fourth component of the vector is ignored

template<typename T>
void TMatrix4x4< T >::rotate const TAngle< T > &  phi,
const TVector3< T > &  axis
throw ()
 

Rotate the matrix around a given axis.

Parameters:
phi the rotation angle
axis the axis vector

template<typename T>
void TMatrix4x4< T >::rotate const TAngle< T > &  phi,
const T &  axis_x,
const T &  axis_y,
const T &  axis_z
throw ()
 

Rotate the matrix around a given axis.

Parameters:
phi the rotation angle
axis_x the x component of the axis
axis_y the y component of the axis
axis_z the z component of the axis

template<typename T>
void TMatrix4x4< T >::rotateX const TAngle< T > &  phi  )  throw ()
 

Rotate the matrix around the x axis.

Parameters:
phi the rotation angle

template<typename T>
void TMatrix4x4< T >::rotateY const TAngle< T > &  phi  )  throw ()
 

Rotate the matrix around the y axis.

Parameters:
phi the rotation angle

template<typename T>
void TMatrix4x4< T >::rotateZ const TAngle< T > &  phi  )  throw ()
 

Rotate the matrix around the z axis.

Parameters:
phi the rotation angle

template<typename T>
void TMatrix4x4< T >::scale const TVector3< T > &  v  )  throw ()
 

Scale the matrix.

Parameters:
v the vector with the scale factor

template<typename T>
void TMatrix4x4< T >::scale const T &  scale  )  throw ()
 

Scale the matrix.

Parameters:
scale the scale factor

template<typename T>
void TMatrix4x4< T >::scale const T &  x_scale,
const T &  y_scale,
const T &  z_scale
throw ()
 

Scale the matrix.

Parameters:
x_scale the x scale factor
y_scale the y scale factor
z_scale the z scale factor

template<typename T>
void TMatrix4x4< T >::set const T &  t = (T) 1  )  throw ()
 

Set the diagonal elements to the given value.

All other elements are set to 0.

Parameters:
T the value to fill with (default: 1)

template<typename T>
void TMatrix4x4< T >::set const T &  m11,
const T &  m12,
const T &  m13,
const T &  m14,
const T &  m21,
const T &  m22,
const T &  m23,
const T &  m24,
const T &  m31,
const T &  m32,
const T &  m33,
const T &  m34,
const T &  m41,
const T &  m42,
const T &  m43,
const T &  m44
throw ()
 

Assign from sixteen values of type T.

Parameters:
m11 - m44 assigned to the components

template<typename T>
void TMatrix4x4< T >::set const TVector4< T > &  col1,
const TVector4< T > &  col2,
const TVector4< T > &  col3,
const TVector4< T > &  col4
throw ()
 

Assign from four TVector4.

Parameters:
col1 assigned to the first column
col2 assigned to the second column
col3 assigned to the third column
col4 assigned to the fourth column

template<typename T>
void TMatrix4x4< T >::set const TMatrix4x4< T > &  m  )  throw ()
 

Assign from another instance.

Parameters:
TMatrix4x4 the TMatrix4x4 object to assign from

template<typename T>
void TMatrix4x4< T >::set const T  ptr[4][4]  )  throw (Exception::NullPointer)
 

Assign from the first sixteen elements.

pointed to by the array assigned by ptr.

Parameters:
ptr the array to construct from
Exceptions:
NullPointer if ptr == 0

template<typename T>
void TMatrix4x4< T >::set const T *  ptr  )  throw (Exception::NullPointer)
 

Assign from array-ptr.

Assign from the first sixteen elements pointed to by ptr.

Parameters:
ptr the array to construct from
Exceptions:
NullPointer if ptr == 0

template<typename T>
void TMatrix4x4< T >::setColumn Position  col,
const TVector4< T > &  col_value
throw (Exception::IndexOverflow)
 

Set a column of the matrix.

Parameters:
col the number of the column (0-3)
col_value the new value of the col
Exceptions:
IndexOverflow if col > 3

template<typename T>
void TMatrix4x4< T >::setIdentity  )  throw ()
 

Set to an identity matrix.

m11, m22, m33, m44 = 1; the other cells have the value 0;

template<typename T>
void TMatrix4x4< T >::setRotation const TAngle< T > &  phi,
const TVector4< T > &  axis
throw ()
 

Set the matrix to a rotation matrix.

Parameters:
phi the rotation angle
axis the axis vector, the fourth component of the vector is ignored

template<typename T>
void TMatrix4x4< T >::setRotation const TAngle< T > &  phi,
const TVector3< T > &  axis
throw ()
 

Set the matrix to a rotation matrix.

Parameters:
phi the rotation angle
axis the axis vector

template<typename T>
void TMatrix4x4< T >::setRotation const TAngle< T > &  phi,
const T &  axis_x,
const T &  axis_y,
const T &  axis_z
throw ()
 

Set the matrix to a rotation matrix.

Parameters:
phi the rotation angle
axis_x the x component of the axis
axis_y the y component of the axis
axis_z the z component of the axis

template<typename T>
void TMatrix4x4< T >::setRotationX const TAngle< T > &  phi  )  throw ()
 

Set the matrix to a x rotation matrix.

Parameters:
phi the rotation angle

template<typename T>
void TMatrix4x4< T >::setRotationY const TAngle< T > &  phi  )  throw ()
 

Set the matrix to a y rotation matrix.

Parameters:
phi the rotation angle

template<typename T>
void TMatrix4x4< T >::setRotationZ const TAngle< T > &  phi  )  throw ()
 

Set the matrix to a z rotation matrix.

Parameters:
phi the rotation angle

template<typename T>
void TMatrix4x4< T >::setRow Position  row,
const TVector4< T > &  row_value
throw (Exception::IndexOverflow)
 

Set a row of the matrix.

Parameters:
row the number of the row (0-3)
row_value the new value of the row
Exceptions:
IndexOverflow if row > 3

template<typename T>
void TMatrix4x4< T >::setScale const TVector3< T > &  v  )  throw ()
 

Set the matrix to a scalation matrix.

Parameters:
v the vector with the scale factor

template<typename T>
void TMatrix4x4< T >::setScale const T &  scale  )  throw ()
 

Set the matrix to a scalation matrix.

Parameters:
scale the scale factor

template<typename T>
void TMatrix4x4< T >::setScale const T &  x_scale,
const T &  y_scale,
const T &  z_scale
throw ()
 

Set the matrix to a scalation matrix.

Parameters:
x_scale the x scale factor
y_scale the y scale factor
z_scale the z scale factor

template<typename T>
void TMatrix4x4< T >::setTranslation const TVector3< T > &  v  )  throw ()
 

Set the matrix to a translation matrix.

Parameters:
v the vector to translate with

template<typename T>
void TMatrix4x4< T >::setTranslation const T &  x,
const T &  y,
const T &  z
throw ()
 

Set the matrix to a translation matrix.

Parameters:
x the x-component of the translation
y the y-component of the translation
z the z-component of the translation

template<typename T>
void TMatrix4x4< T >::swap TMatrix4x4< T > &  m  )  throw ()
 

Swap the contents of two instances of TMatrix4x4.

Parameters:
TMatrix4x4 the TMatrix4x4 to swap contents with

template<typename T>
void TMatrix4x4< T >::translate const TVector3< T > &  v  )  throw ()
 

Translate the matrix.

Parameters:
v the vector to translate with

template<typename T>
void TMatrix4x4< T >::translate const T &  x,
const T &  y,
const T &  z
throw ()
 

Translate the matrix.

Parameters:
x the x-component of the translation
y the y-component of the translation
z the z-component of the translation

template<typename T>
void TMatrix4x4< T >::transpose  )  throw ()
 

Mirror the Matrix at the diagonal.

All values are swaped by the mirrored value. (I.e. m12 <=> m21 , m13 <=> m31 , ...)