|
latest version v1.9 - last update 24 Nov 2005 |
|
#include <ltiHTypes.h>
Inheritance diagram for lti::hMatrix< T, P >:


Public Types | |
| typedef T | value_type |
| typedef point | size_type |
Public Member Functions | |
| hMatrix () | |
| hMatrix (const hMatrix< T, P > &other) | |
| hMatrix (const matrix< T > &other) | |
| virtual | ~hMatrix () |
| void | clear () |
| void | unit () |
| const point & | size () const |
| virtual const char * | getTypeName () const |
| virtual mathObject * | clone () const |
| hMatrix< T, P > & | copy (const hMatrix< T, P > &other) |
| hMatrix< T, P > & | copy (const matrix< T > &other) |
| hMatrix< T, P > & | operator= (const hMatrix< T, P > &other) |
| matrix< T > & | castTo (matrix< T > &result) const |
| hMatrix< T, P > & | castFrom (const matrix< T > &other) |
| virtual bool | write (ioHandler &handler, const bool complete=true) const |
| virtual bool | read (ioHandler &handler, const bool complete=true) |
| hMatrix< T, P > & | multiply (const hMatrix< T, P > &other) |
| hMatrix< T, P > & | leftMultiply (const hMatrix< T, P > &other) |
| hMatrix< T, P > & | multiply (const hMatrix< T, P > &a, const hMatrix< T, P > &b) |
| hMatrix< T, P > | operator * (const hMatrix< T, P > &other) const |
| hMatrix< T, P > & | operator *= (const hMatrix< T, P > &other) |
| P & | multiply (const P &other, P &result) const |
| P | operator * (const P &p) const |
| T & | at (const int &m, const int &n) |
| const T & | at (const int &m, const int &n) const |
| T * | operator[] (const int &m) |
| const T * | operator[] (const int &m) const |
| hMatrix< T, P > & | invert () |
| hMatrix< T, P > & | invert (const hMatrix< T, P > &other) |
| hMatrix< T, P > & | transpose () |
| hMatrix< T, P > & | transpose (const hMatrix< T, P > &other) |
| void | setScaleFactor (const T &s) |
| const T & | getScaleFactor () const |
| void | scale (const T &s) |
| void | scaleR (const T &s) |
| void | setTranslation (const P &thePoint) |
| P | getTranslation () const |
| void | translate (const P &thePoint) |
| void | rotate (const double &angle, const hPoint3D< T > &axis=hPoint3D< T >(0, 0, 1), const hPoint3D< T > ¢er=hPoint3D< T >()) |
| void | setRotation (const double &angle, const hPoint3D< T > &axis=hPoint3D< T >(0, 0, T(1)), const hPoint3D< T > ¢er=hPoint3D< T >()) |
| void | setSimilarityTransform (const tpoint< T > &t, const T &angle, const T &scaling) |
Protected Member Functions | |
| void | initMem () |
Protected Attributes | |
| T * | theElements |
| T ** | theRows |
| T * | postElement |
| const point | theSize |
The template class T indicates the contained type and the class P the point type (hPoint2D or hPoint3D)
|
|||||
|
return type of the size() member
|
|
|||||
|
type of the contained data
|
|
|||||||||
|
Default constructor. Initialize the matrix with the identity matrix (all elements in the diagonal are one, the rest are zero). |
|
||||||||||
|
Copy constructor.
|
|
||||||||||
|
Copy constructor.
|
|
|||||||||
|
Destructor.
|
|
||||||||||||||||
|
Return value a row m and column n.
|
|
||||||||||||||||
|
Return value at row m and column n.
|
|
||||||||||
|
Copy the content of the given lti::matrix into this hmatrix.
|
|
||||||||||
|
Copy the contents of this hmatrix into the given lti::matrix.
|
|
|||||||||
|
Clean matrix (all elements with 0).
|
|
|||||||||
|
Returns a copy of this object.
Implements lti::mathObject. |
|
||||||||||
|
Copy operator.
|
|
||||||||||
|
Copy operator.
|
|
|||||||||
|
Return the scale factor used in the transformation. The scale factor is the element with the greatest indices. Changing its value from one will imply a scaling of everything, including the translation factors. |
|
|||||||||
|
return a non-homegeneous point with the actual translation vector
|
|
||||||||||
|
Returns the name of this class.
Reimplemented from lti::mathObject. |
|
|||||||||
|
Initialize the memory. This method allocates theElements and theRows and ensures that theRows points to each row in theElements. |
|
||||||||||
|
Copy here the other matrix inverted.
|
|
|||||||||
|
Invert this matrix an return a reference to it.
|
|
||||||||||
|
Left-Multiply this matrix with another homogeneous matrix and leave the result here.
|
|
||||||||||||||||
|
Multiply with a point and leave the result in the second parameters. Return a reference to the second parameters Reimplemented in lti::hMatrix2D< T >, and lti::hMatrix3D< T >. |
|
||||||||||||||||
|
Multiply the matrices a and b and leave the result here.
|
|
||||||||||
|
Multiply this matrix with another homogeneous matrix and leave the result here.
|
|
||||||||||
|
Multiply with a homogeneous point.
Reimplemented in lti::hMatrix2D< T >, and lti::hMatrix3D< T >. |
|
||||||||||
|
Return a new object which is the result of multiplying this matrix with the other one.
|
|
||||||||||
|
Alias for multiply.
|
|
||||||||||
|
Copy operator.
|
|
||||||||||
|
Read-only access operator to a row.
|
|
||||||||||
|
Access operator to a row.
|
|
||||||||||||||||
|
Read the object from the given ioHandler.
Reimplemented from lti::mathObject. |
|
||||||||||||||||||||
|
Multiply the rotation matrix with a new rotation matrix generated from the given parameters.
|
|
||||||||||
|
Multiply the scale factor with this value. The scale factor is the element with the greatest indices. Changing its value from one will imply a scaling of everything, including the translation factors. |
|
||||||||||
|
Multiply a scaling matrix with this one. The scaling matrix is obtaind multiplying a unit matrix with the scalar s and setting the element with the greatest indices to 1.0. This corresponds to scaling the rotation sub-matrix, but leaving the translation components untouched. |
|
||||||||||||||||||||
|
Set rotation submatrix with a new rotation matrix generated from the given parameters.
|
|
||||||||||
|
Set the scale factor of the transformation. This is the element with the greatest indices. Changing its value from one will imply a scaling of everything, including the translation factors. |
|
||||||||||||||||||||
|
Set similarity transformation. The similarity transformation is defined as:
with s the scaling factor,
|
|
||||||||||
|
This function sets the translation vector with the normalized data, i.e. the given homogeneous point will be normalized and its components (except the h component) will be used as the translation vector. |
|
|||||||||
|
Return the size of the matrix in a lti::point structure.
|
|
||||||||||
|
Add the normalized homogeneous vector to the one in the matrix.
|
|
||||||||||
|
Copy the transposed other matrix here.
|
|
|||||||||
|
Transpose this matrix an return a reference to it.
|
|
|||||||||
|
Unit matrix. Initialize this matrix with the unit matrix having zeros in all but the diagonal elements, which will be set to one. |
|
||||||||||||||||
|
Write the object in the given ioHandler.
Reimplemented from lti::mathObject. |
|
|||||
|
Pointer to the element after the last element of the data.
|
|
|||||
|
Memory block with all elements.
|
|
|||||
|
Pointers to each row.
|
|
|||||
|
The real size of the matrix.
|