Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   Compound Members  

CSIBCMatrix44d Class Reference

Class representing matricies with 4 rows, and 4 columns. More...

#include <SIBCMatrix44d.h>

Inheritance diagram for CSIBCMatrix44d::

CSIBCXfoMatd List of all members.

Public Methods

Friends


Detailed Description

Class representing matricies with 4 rows, and 4 columns.

CSIBCMatrix44d objects represent matricies, and define a set of operations which are useful in the context of a matrix.

This class uses double precision floating point numbers to store element values. There exists three other matrix classes, CSIBCMatrix4x4, CSIBCMatrix33d and CSIBCMatrixMNd. They are used to represent 4x4 matricies with single precision floating-point numbers, 3x3 matricies with double precision floating-point numbers, and MxN matricies with double precision floating-point numbers, respectively.


Constructor & Destructor Documentation

CSIBCMatrix44d::CSIBCMatrix44d void   
 

Default constructor Sets all elements in the matrix to zero.

See also:
CSIBCMatrix44d::SetNull

CSIBCMatrix44d::CSIBCMatrix44d const CSIBCVector4Dd   in_vct0,
const CSIBCVector4Dd   in_vct1,
const CSIBCVector4Dd   in_vct2,
const CSIBCVector4Dd   in_vct3,
const bool    in_bAreRows = true
 

Constructor. Sets the rows of the new matrix to be in_vct0, in_vct1, in_vct2, and in_vct3. If in_bAreRows is false, then the input vectors are used as the columns of the new matrix.

Parameters:
in_vct0  The vector to use for the first row (or column) of the matrix.
in_vct1  The vector to use for the second row (or column) of the matrix.
in_vct2  The vector to use for the third row (or column) of the matrix.
in_vct3  The vector to use for the fourth row (or column) of the matrix.
in_bAreRows  Whether the vectors given represent rows or columns of the matrix (true == Rows, false == Columns). Defaults to true (rows).

CSIBCMatrix44d::CSIBCMatrix44d const double    in_dA00,
const double    in_dA01,
const double    in_dA02,
const double    in_dA03,
const double    in_dA10,
const double    in_dA11,
const double    in_dA12,
const double    in_dA13,
const double    in_dA20,
const double    in_dA21,
const double    in_dA22,
const double    in_dA23,
const double    in_dA30,
const double    in_dA31,
const double    in_dA32,
const double    in_dA33
 

Constructor. Specifies the value of each element in the new matrix.

Parameters:
in_dA00  The value for the element in row 1, column 1.
in_dA01  The value for the element in row 1, column 2.
in_dA02  The value for the element in row 1, column 3.
in_dA03  The value for the element in row 1, column 4.
in_dA10  The value for the element in row 2, column 1.
in_dA11  The value for the element in row 2, column 2.
in_dA12  The value for the element in row 2, column 3.
in_dA13  The value for the element in row 2, column 4.
in_dA20  The value for the element in row 3, column 1.
in_dA21  The value for the element in row 3, column 2.
in_dA22  The value for the element in row 3, column 3.
in_dA23  The value for the element in row 3, column 4.
in_dA30  The value for the element in row 4, column 1.
in_dA31  The value for the element in row 4, column 2.
in_dA32  The value for the element in row 4, column 3.
in_dA33  The value for the element in row 4, column 4.


Member Function Documentation

CSIBCMatrix44d & CSIBCMatrix44d::Add const CSIBCMatrix44d &    in_mat
 

Computes the matrix addition of this matrix and in_mat, and stores the result in this matrix.

Parameters:
in_mat  The matrix to add to this matrix.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Add , CSIBCMatrix44d::Sub

CSIBCMatrix44d & CSIBCMatrix44d::Add const CSIBCMatrix44d &    in_mat1,
const CSIBCMatrix44d &    in_mat2
 

Computes the matrix addition of two matricies, and stores the result in this matrix.

Parameters:
in_mat1  The first matrix to add.
in_mat2  The second matrix to add.
Returns:
CSIBCMatrix33& Reference to this matrix.
See also:
CSIBCMatrix44d::Add , CSIBCMatrix44d::Sub

CSIBCMatrix44d& CSIBCMatrix44d::Adjoint void    const
 

Not implemented yet

CSIBCMatrix44d& CSIBCMatrix44d::Adjoint CSIBCMatrix44d &    in_mat const
 

Not implemented yet

CSIBCMatrix44d & CSIBCMatrix44d::Div const double    in_dFactor
 

Divides each component of this matrix by in_dFactor.

Parameters:
in_dFactor  Dividing factor for elements of this matrix.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Div , CSIBCMatrix44d::Mul

CSIBCMatrix44d & CSIBCMatrix44d::Div const CSIBCMatrix44d &    in_mat,
const double    in_dFactor
 

Divides each component of in_mat by in_dFactor and assigns the result to the corresponding element in this matrix.

Parameters:
in_mat  The input matrix, to divide and assign to this matrix.
in_dFactor  Dividing factor for elements of in_mat
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Div , CSIBCMatrix44d::Mul

double CSIBCMatrix44d::Get const int    in_nRow,
const int    in_nCol
const
 

Returns an element of the marix.

Parameters:
in_nRow  Row index of the element to retrieve (zero indexed).
in_nCol  Column index of the element to retrieve (zero indexed).
Returns:
double The value of the element at the given matrix position.
See also:
CSIBCMatrix44d::Set(int, int, const double)

Reimplemented in CSIBCXfoMatd.

double CSIBCMatrix44d::GetDet int    in_nRow,
int    in_nCol
const
 

Computes the determinant of the 3x3 matrix formed by removing row in_nRow, and column in_nCol from this matrix.

Parameters:
in_nRow  The row to remove from this matrix.
in_nRow  The column to remove from this matrix.
Returns:
double The determinant of the 3x3 matrix.
See also:
CSIBCMatrix44d::GetDet() , CSIBCMatrix44d::GetTrace

double CSIBCMatrix44d::GetDet void    const
 

Computes the determinant of this matrix.

Returns:
double The determinant of this matrix.
See also:
CSIBCMatrix44d::GetDet(int, int) , CSIBCMatrix44d::GetTrace

Reimplemented in CSIBCXfoMatd.

double CSIBCMatrix44d::GetTrace void    const
 

Computes the trace of this matrix. A trace is the sum of all the diagonal elements of a matrix.

Returns:
double The trace of this matrix.
See also:
CSIBCMatrix44d::GetDet

Reimplemented in CSIBCXfoMatd.

bool CSIBCMatrix44d::Invert void   
 

Sets this matrix to its inverse.

Returns:
bool true if this matrix could be inverted and the assignment was successful, false otherwise.
See also:
CSIBCMatrix44d::Invert( const CSIBCMatrix44d& ) , CSIBCMatrix44d::TransposeInverse

Reimplemented in CSIBCXfoMatd.

bool CSIBCMatrix44d::Invert const CSIBCMatrix44d &    in_mat
 

Sets this matrix to be the inverse of in_mat.

Parameters:
in_mat  Matrix containing the inverse of the desired matrix.
Returns:
bool true if in_mat could be inverted and the assignment was successful, false otherwise.
See also:
CSIBCMatrix44d::Invert() , CSIBCMatrix44d::TransposeInverse

bool CSIBCMatrix44d::IsNull const double    in_dEpsilon = PICO_EPS const
 

Determines whether all elements of this matrix are zero. Since this function uses floating-point comparison, a threshhold value of in_dEpsilon is used for equality comparison.

Parameters:
in_dEpsilon  Floating-point comparison error range. Defaults to PICO_EPS
Returns:
bool true if the matrix elements are all zero, false otherwise.
See also:
CSIBCMatrix44d::SetNull , CSIBCMatrix44d::AreAlmostEqual , CSIBCMatrix44d::operator==

CSIBCMatrix44d & CSIBCMatrix44d::Mul const double    in_dFactor
 

Scales each component of this matrix by in_dFactor

Parameters:
in_dFactor  Scaling factor for elements in this matrix
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Mul , CSIBCMatrix44d::Div

CSIBCMatrix44d & CSIBCMatrix44d::Mul const CSIBCMatrix44d &    in_mat,
const double    in_dFactor
 

Scales each element of in_mat by in_dFactor, and assigns the result to the corresponding element in this matrix.

Parameters:
in_mat  The input matrix, to scale and assign to this matrix.
in_dFactor  Scaling factor for elements of in_mat
Returns:
CSIBCMatrix44d& Reference to this matrix
See also:
CSIBCMatrix44d::Mul , CSIBCMatrix44d::Div

CSIBCMatrix44d & CSIBCMatrix44d::Mul const double    in_dFactor,
const CSIBCMatrix44d &    in_mat
 

Scales each element of in_mat by in_dFactor, and assigns the result to the corresponding element in this matrix.

Parameters:
in_dFactor  Scaling factor for elements of in_mat
in_mat  The input matrix, to scale and assign to this matrix.
Returns:
CSIBCMatrix44d& Reference to this matrix
See also:
CSIBCMatrix44d::Mul , CSIBCMatrix44d::Div

CSIBCMatrix44d & CSIBCMatrix44d::Mul const CSIBCMatrix44d &    in_mat
 

Computes the matrix multiplication of this matrix and in_mat (this * in_mat) and stores the result in this matrix.

Parameters:
in_mat  The matrix to right-multiply this matrix by.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Mul , CSIBCMatrix44d::MulTransByReg , CSIBCMatrix44d::MulRegByTrans , CSIBCMatrix44d::Div

CSIBCMatrix44d & CSIBCMatrix44d::Mul const CSIBCMatrix44d &    in_mat1,
const CSIBCMatrix44d &    in_mat2
 

Computes the matrix multiplication of two matricies (in_mat1 * in_mat2) and stores the result in this matrix.

Parameters:
in_mat1  The first matrix in the multiplication (on the left).
in_mat2  The second matrix in the multiplication (on the right).
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Mul , CSIBCMatrix44d::MulTransByReg , CSIBCMatrix44d::MulRegByTrans , CSIBCMatrix44d::Div

CSIBCMatrix44d & CSIBCMatrix44d::MulRegByTrans const CSIBCMatrix44d &    in_mat1,
const CSIBCMatrix44d &    in_mat2
 

Computes the matrix multiplication of in_mat1 and the transpose of in_mat2 (in_mat1 * in_mat2^T) and stores the result in this matrix.

Parameters:
in_mat1  The first matrix in the multiplication (on the left).
in_mat2  The second matrix in the multiplication (on the right), to be transposed before multiplication.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Mul , CSIBCMatrix44d::MulTransByReg , CSIBCMatrix44d::Div

CSIBCMatrix44d & CSIBCMatrix44d::MulTransByReg const CSIBCMatrix44d &    in_mat1,
const CSIBCMatrix44d &    in_mat2
 

Computes the matrix multiplication of the transpose of in_mat1 and in_mat2 (in_mat1^T * in_mat2) and stores the result in this matrix.

Parameters:
in_mat1  The first matrix in the multiplication (on the left), to be transposed before multiplication.
in_mat2  The second matrix in the multiplication (on the right).
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Mul , CSIBCMatrix44d::MulRegByTrans , CSIBCMatrix44d::Div

CSIBCMatrix44d & CSIBCMatrix44d::Negate void   
 

Sets this matrix to its negative. The 'negative' of a matrix is produced by multiplying each element of the matrix by -1.

Returns:
CSIBCMatrix44d& Reference to this matrix
See also:
CSIBCMatrix44d::Negate( const CSIBCMatrix44d& )

CSIBCMatrix44d & CSIBCMatrix44d::Negate const CSIBCMatrix44d &    in_mat
 

Sets this matrix to the negative of in_mat. The 'negative' of a matrix is produced by multiplying each element of the matrix by -1.

Parameters:
in_mat  Matrix containing the data to set this matrix to the negative of.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Negate()

bool CSIBCMatrix44d::operator!= const CSIBCMatrix44d &    in_mat const
 

Determines whether any corresponding elements of this matrix and in_mat are different.

Parameters:
in_mat  The matrix to compare inequality with.
Returns:
bool true if the matricies differ in any element, false otherwise.
See also:
CSIBCMatrix44d::AreAlmostEqual , CSIBCMatrix44d::operator==

Reimplemented in CSIBCXfoMatd.

bool CSIBCMatrix44d::operator== const CSIBCMatrix44d &    in_mat const
 

Determines whether all corresponding elements of this matrix and in_mat are exactly equal.

Parameters:
in_mat  The matrix to compare equality with.
Returns:
bool true if the matricies are exactly equal, false otherwise.
See also:
CSIBCMatrix44d::AreAlmostEqual , CSIBCMatrix44d::operator!=

Reimplemented in CSIBCXfoMatd.

CSIBCMatrix44d & CSIBCMatrix44d::Set const CSIBCMatrix44d &    in_mat
 

Sets all elements of the matrix to those contained in in_mat.

Parameters:
in_mat  Matrix to copy all element values from.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Set , CSIBCMatrix44d::SetRow , CSIBCMatrix44d::SetCol , CSIBCMatrix44d::Get

Reimplemented in CSIBCXfoMatd.

CSIBCMatrix44d& CSIBCMatrix44d::Set const double *    in_dPtr [inline]
 

Sets all elements of the matrix.

Parameters:
in_dVal  4x4 array of double values, containing the new values for all the matrix elements.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Set , CSIBCMatrix44d::SetRow , CSIBCMatrix44d::SetCol , CSIBCMatrix44d::Get

CSIBCMatrix44d & CSIBCMatrix44d::Set const double    in_dVal[4][4]
 

Sets all elements of the matrix.

Parameters:
in_dVal  4x4 array of double values, containing the new values for all the matrix elements.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Set , CSIBCMatrix44d::SetRow , CSIBCMatrix44d::SetCol , CSIBCMatrix44d::Get

Reimplemented in CSIBCXfoMatd.

CSIBCMatrix44d & CSIBCMatrix44d::Set const double    in_dA00,
const double    in_dA01,
const double    in_dA02,
const double    in_dA03,
const double    in_dA10,
const double    in_dA11,
const double    in_dA12,
const double    in_dA13,
const double    in_dA20,
const double    in_dA21,
const double    in_dA22,
const double    in_dA23,
const double    in_dA30,
const double    in_dA31,
const double    in_dA32,
const double    in_dA33
 

Sets all elements of the matrix.

Parameters:
in_dA00  The value for the element in row 1, column 1.
in_dA01  The value for the element in row 1, column 2.
in_dA02  The value for the element in row 1, column 3.
in_dA03  The value for the element in row 1, column 4.
in_dA10  The value for the element in row 2, column 1.
in_dA11  The value for the element in row 2, column 2.
in_dA12  The value for the element in row 2, column 3.
in_dA13  The value for the element in row 2, column 4.
in_dA20  The value for the element in row 3, column 1.
in_dA21  The value for the element in row 3, column 2.
in_dA22  The value for the element in row 3, column 3.
in_dA23  The value for the element in row 3, column 4.
in_dA30  The value for the element in row 4, column 1.
in_dA31  The value for the element in row 4, column 2.
in_dA32  The value for the element in row 4, column 3.
in_dA33  The value for the element in row 4, column 4.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Set , CSIBCMatrix44d::SetRow , CSIBCMatrix44d::SetCol , CSIBCMatrix44d::Get

CSIBCMatrix44d & CSIBCMatrix44d::Set int    in_nRow,
int    in_nCol,
const double    in_dVal
 

Sets an element of the matrix.

Parameters:
in_nRow  Row index of the element to set (zero indexed).
in_nCol  Column index of the element to set (zero indexed).
in_dVal  Value for the element.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Set , CSIBCMatrix44d::SetRow , CSIBCMatrix44d::SetCol , CSIBCMatrix44d::Get

Reimplemented in CSIBCXfoMatd.

CSIBCMatrix44d & CSIBCMatrix44d::SetCol const int    in_nCol,
double    in_dA0,
double    in_dA1,
double    in_dA2,
double    in_dA3
 

Sets all elements in a column of the matrix.

Parameters:
in_nCol  Column index of the column to set (zero indexed).
in_dA0  Value for the element in the first row of the column.
in_dA1  Value for the element in the second row of the column.
in_dA2  Value for the element in the third row of the column.
in_dA3  Value for the element in the fourth row of the column.
See also:
CSIBCMatrix44d::Set , CSIBCMatrix44d::SetRow , CSIBCMatrix44d::SetCol , CSIBCMatrix44d::Get

Reimplemented in CSIBCXfoMatd.

CSIBCMatrix44d & CSIBCMatrix44d::SetCol const int    in_nCol,
const CSIBCVector4Dd   in_vct
 

Sets all elements in a column of the matrix.

Parameters:
in_nCol  Column index of the column to set (zero indexed).
in_vct  Vector containing the values to replace the specified column elements with.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Set , CSIBCMatrix44d::SetRow , CSIBCMatrix44d::SetCol , CSIBCMatrix44d::Get

Reimplemented in CSIBCXfoMatd.

CSIBCMatrix44d & CSIBCMatrix44d::SetIdentity void   
 

Sets this matrix to be the identity matrix.

Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::SetNull , CSIBCMatrix44d::Set

Reimplemented in CSIBCXfoMatd.

CSIBCMatrix44d & CSIBCMatrix44d::SetNull  
 

Sets all elements in the matrix to zero.

Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::SetIdentity , CSIBCMatrix44d::Set

void CSIBCMatrix44d::SetOuterProduct const CSIBCVector4Dd   in_vct1,
const CSIBCVector4Dd   in_vct2
 

Not implemented yet

CSIBCMatrix44d & CSIBCMatrix44d::SetRow const int    in_nRow,
double    in_dA0,
double    in_dA1,
double    in_dA2,
double    in_dA3
 

Sets all elements in a row of the matrix.

Parameters:
in_nRow  Row index of the row to set (zero indexed).
in_dA0  Value for the element in the first column of the row.
in_dA1  Value for the element in the second column of the row.
in_dA2  Value for the element in the third column of the row.
in_dA3  Value for the element in the fourth column of the row.
See also:
CSIBCMatrix44d::Set , CSIBCMatrix44d::SetRow , CSIBCMatrix44d::SetCol , CSIBCMatrix44d::Get

Reimplemented in CSIBCXfoMatd.

CSIBCMatrix44d & CSIBCMatrix44d::SetRow const int    in_nRow,
const CSIBCVector4Dd   in_vct
 

Sets all elements in a row of the matrix.

Parameters:
in_nRow  Row index of the row to set (zero indexed).
in_vct  Vector containing the values to replace the specified row elements with.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Set , CSIBCMatrix44d::SetRow , CSIBCMatrix44d::SetCol , CSIBCMatrix44d::Get

Reimplemented in CSIBCXfoMatd.

CSIBCMatrix44d & CSIBCMatrix44d::Sub const CSIBCMatrix44d &    in_mat
 

Computes the difference of this matrix and in_mat2 (this - in_mat) and stores the result in this matrix.

Parameters:
in_mat  The matrix to subtract.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Sub , CSIBCMatrix44d::Add

CSIBCMatrix44d & CSIBCMatrix44d::Sub const CSIBCMatrix44d &    in_mat1,
const CSIBCMatrix44d &    in_mat2
 

Computes the difference of two matricies (in_mat1 - in_mat2) and stores the result in this matrix.

Parameters:
in_mat1  The matrix to subtract from.
in_mat2  The matrix to subtract.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Sub , CSIBCMatrix44d::Add

CSIBCMatrix44d& CSIBCMatrix44d::Symmetry void    const
 

Not implemented yet

CSIBCMatrix44d& CSIBCMatrix44d::Symmetry CSIBCMatrix44d &    in_mat const
 

Not implemented yet

CSIBCMatrix44d & CSIBCMatrix44d::Transpose void   
 

Sets this matrix to its transpose.

Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Transpose( const CSIBCMatrix44d& ) , CSIBCMatrix44d::TransposeInverse

Reimplemented in CSIBCXfoMatd.

CSIBCMatrix44d & CSIBCMatrix44d::Transpose const CSIBCMatrix44d &    in_mat
 

Sets this matrix to be the transpose of in_mat.

Parameters:
in_mat  Matrix containing the transpose of the desired matrix.
Returns:
CSIBCMatrix44d& Reference to this matrix.
See also:
CSIBCMatrix44d::Transpose() , CSIBCMatrix44d::TransposeInverse

bool CSIBCMatrix44d::TransposeInverse void   
 

Sets this matrix to the transpose of the inverse of itself.

Returns:
bool true if the matrix could be inverted (and transposed) and assignment was successful, false otherwise.
See also:
CSIBCMatrix44d::TransposeInverse( const CSIBCMatrix44d& ) , CSIBCMatrix44d::Transpose , CSIBCMatrix44d::Invert

bool CSIBCMatrix44d::TransposeInverse const CSIBCMatrix44d &    in_mat
 

Sets this matrix to the transpose of the inverse of in_mat.

Parameters:
in_mat  Matrix containing the transpose of the inverse of the desired matrix.
Returns:
bool true if the matrix could be inverted (and transposed) and assignment was successful, false otherwise.
See also:
CSIBCMatrix44d::TransposeInverse() , CSIBCMatrix44d::Transpose , CSIBCMatrix44d::Invert


Friends And Related Function Documentation

bool AreAlmostEqual const CSIBCMatrix44d &    in_mat1,
const CSIBCMatrix44d &    in_mat2,
const double    in_dEpsilon = PICO_EPS
[friend]
 

Determines whether all corresponding elements of the matricies in_mat1 and in_mat2 are equal. Since this method uses floating-point comparison, a threshhold value of in_dEpsilon is used for equality comparison.

Parameters:
in_mat1  First matrix for equality comparison.
in_mat2  Second matrix for equality comparison.
in_dEpsilon  Floating-point comparison error range. Defaults to PICO_EPS.
Returns:
bool true if the matricies are equal, false otherwise.
See also:
CSIBCMatrix44d::operator== , CSIBCMatrix44d::operator!=


The documentation for this class was generated from the following files: © Copyright 2001-2003 Avid Technology, Inc. All rights reserved.

© Copyright 2001-2003 Avid Technology, Inc. All rights reserved.