#include <cmatrix.h>
Public Member Functions | |
CMatrix () | |
Default constructor. Initializes the matrix as unit matrix. | |
CMatrix (CMatrix const &val) | |
Copy constructor. | |
~CMatrix () | |
Destructor. | |
void | reset () |
Resets the matrix (makes it a unit matrix). | |
void | setCrossProduct (CVector v) |
Makes a matrix that represents a cross product with vector v. | |
void | setRotation (CVector v) |
CVector | getRotation () const |
CMatrix const & | operator= (CMatrix const &val) |
Assignment operator. | |
CMatrix const & | operator*= (CMatrix const &val) |
Matrix-matrix multiplication. | |
CMatrix const & | operator*= (double val) |
Matrix-scalar multiplication. | |
CMatrix const & | operator/= (CMatrix const &val) |
CMatrix | operator* (CMatrix const &val) const |
Matrix-matrix multiplication. | |
CMatrix | transpose () const |
CVector const | operator* (CVector val) const |
Matrix-vector multiplication. | |
CVector const | operator/ (CVector val) const |
CMatrix const | operator* (double val) const |
Matrix-scalar multiplication. | |
CMatrix const | operator/ (double val) const |
Matrix-scalar division. | |
void | rotX (double hoek) |
Make a rotation matrix for rotating around the X-axis. | |
void | rotY (double hoek) |
Make a rotation matrix for rotating around the Y-axis. | |
void | rotZ (double hoek) |
Make a rotation matrix for rotating around the Z-axis. | |
void | targetZ (CVector d, bool normalize=true) |
void | fixRotationMatrix () |
Fixes inaccuracies in a rotation matrix. | |
double | Element (int i, int j) const |
Get element i,j of the matrix. | |
void | setElement (int i, int j, double e) |
Set element i,j of the matrix. | |
const double * | gl_mtr () const |
Protected Attributes | |
double * | m_M |
Matrix data. |
The internal storage is 4x4, which makes it easy to use this class in combination with e.g. OpenGL. The fourth row and column are filled like those in a unit matrix.
libProcTer::CMatrix::CMatrix | ( | ) |
Default constructor. Initializes the matrix as unit matrix.
libProcTer::CMatrix::CMatrix | ( | CMatrix const & | val | ) |
Copy constructor.
libProcTer::CMatrix::~CMatrix | ( | ) |
Destructor.
double libProcTer::CMatrix::Element | ( | int | i, | |
int | j | |||
) | const |
Get element i,j of the matrix.
void libProcTer::CMatrix::fixRotationMatrix | ( | ) |
Fixes inaccuracies in a rotation matrix.
CVector libProcTer::CMatrix::getRotation | ( | ) | const |
Reconstructs the rotation vector from a rotation matrix. Inverse of setRotation.
const double* libProcTer::CMatrix::gl_mtr | ( | ) | const |
Return a pointer to the internal matrix data. Useful e.g. in combination with OpenGL.
CMatrix const libProcTer::CMatrix::operator* | ( | double | val | ) | const |
Matrix-scalar multiplication.
CMatrix const& libProcTer::CMatrix::operator*= | ( | double | val | ) |
Matrix-scalar multiplication.
Matrix-matrix multiplication.
CMatrix const libProcTer::CMatrix::operator/ | ( | double | val | ) | const |
Matrix-scalar division.
Transposed matrix-vector multiplication. Equivalent to transpose().operator*(val).
Transposed matrix-matrix multiplication. Equivalent to operator*=(val.transpose()).
void libProcTer::CMatrix::reset | ( | ) |
Resets the matrix (makes it a unit matrix).
void libProcTer::CMatrix::rotX | ( | double | hoek | ) |
Make a rotation matrix for rotating around the X-axis.
void libProcTer::CMatrix::rotY | ( | double | hoek | ) |
Make a rotation matrix for rotating around the Y-axis.
void libProcTer::CMatrix::rotZ | ( | double | hoek | ) |
Make a rotation matrix for rotating around the Z-axis.
void libProcTer::CMatrix::setCrossProduct | ( | CVector | v | ) |
Makes a matrix that represents a cross product with vector v.
void libProcTer::CMatrix::setElement | ( | int | i, | |
int | j, | |||
double | e | |||
) |
Set element i,j of the matrix.
void libProcTer::CMatrix::setRotation | ( | CVector | v | ) |
Makes a rotation matrix from a vector v. The direction of v is the rotation axis, and the size of v is the rotation angle in radians.
void libProcTer::CMatrix::targetZ | ( | CVector | d, | |
bool | normalize = true | |||
) |
Make a rotation matrix that points the Z-axis in the direction D. Useful for cameras.
CMatrix libProcTer::CMatrix::transpose | ( | ) | const |
Returns the transpose of the matrix. Note that for rotation matrices, the transpose is also the inverse.
double* libProcTer::CMatrix::m_M [protected] |
Matrix data.