![]() |
ICF 3.0.5.47
Technical documentation of ICF Libraries
|
3D-matrix definition. More...
#include <CMatrix3d.h>
Public Types | |
typedef imath::TMatrix< 3, 3 > | BaseClass |
![]() | |
enum | MatrixInitMode |
typedef istd::CIndex2d | IndexType |
typedef istd::CIndex2d | SizesType |
typedef double | ElementType |
typedef imath::TVector< Height, double > | ColumnVector |
typedef imath::TVector< Width, double > | RowVector |
Public Member Functions | |
CMatrix3d () | |
Constructor with no member initialization. | |
CMatrix3d (const CMatrix3d &transform) | |
CMatrix3d (const CVector3d &axisX, const CVector3d &axisY, const CVector3d &axisZ) | |
Constructor using 3 vectors to span the transformation space. | |
CMatrix3d (double m11, double m12, double m13, double m21, double m22, double m23, double m31, double m32, double m33) | |
Constructor using matrix members. | |
void | Reset () |
Default reset to identity. | |
CVector3d | GetMultiplied (const CVector3d &position) const |
CMatrix3d | GetMultiplied (const CMatrix3d &matrix) const |
void | Multiply (const CMatrix3d &matrix) |
void | MultiplyLeft (const CMatrix3d &matrix) |
CVector3d | GetAxisX () const |
Get axis X vector. | |
CVector3d | GetAxisY () const |
Get axis Y vector. | |
CVector3d | GetAxisZ () const |
Get axis Z vector. | |
CVector3d | GetAxesLengths () const |
Get lengths of axes vectors. | |
void | GetAxesLengths (CVector3d &result) const |
Get lengths of axes vectors. | |
i3d::CVector3d | GetInvMultiplied (const i3d::CVector3d &position) const |
Inverted operation to GetApply(). | |
bool | GetInvMultiplied (const i3d::CVector3d &position, i3d::CVector3d &result) const |
Inverted operation to GetApply(). | |
CMatrix3d | GetInverted () const |
Calculate inverted matrix. | |
bool | GetInverted (CMatrix3d &result) const |
Calculate inverted matrix. | |
CMatrix3d | GetTransposed () const |
Calculate transposed matrix. | |
double | GetDet () const |
Calculate determinant of deformation matrix. | |
CMatrix3d & | operator= (const CMatrix3d &matrix) |
Copy operator. | |
CMatrix3d | operator* (double scale) const |
Multiplication by scalar number. | |
CMatrix3d | operator/ (double scale) const |
Division by scalar number. | |
![]() | |
TMatrix () | |
Create matrix without initialization. | |
TMatrix (MatrixInitMode mode) | |
Create matrix with initialization to some specified one. | |
TMatrix (const TMatrix &matrix) | |
Copy constructor. | |
void | Reset () |
Set all matrix cells to zero. | |
void | Clear () |
Set all matrix cells to zero. | |
bool | IsDimensionsCountFixed () const |
Check, if number dimensions is fixed. | |
int | GetDimensionsCount () const |
Get number of dimensions of this array. | |
bool | SetDimensionsCount (int count) |
Set number of dimensions of this array. | |
const SizesType & | GetSizes () const |
Get list of all sizes. | |
bool | SetSizes (const SizesType &sizes) |
Set list of all sizes. | |
int | GetSize (int dimension) const |
Get size of array for specified dimension. | |
bool | SetSize (int dimension, int size) |
Set size of array for specified dimension. | |
const ElementType & | GetAt (const IndexType &index) const |
Get element stored at specified index. | |
const ElementType & | GetAt (int x, int y) const |
Get element stored at specified index. | |
ElementType & | GetAtRef (const IndexType &index) |
Get reference to element stored at specified index. | |
ElementType & | GetAtRef (int x, int y) |
Get reference to element stored at specified index. | |
void | SetAt (const IndexType &index, const ElementType &value) |
Set element at specified index. | |
void | SetAt (int x, int y, const ElementType &value) |
Set element at specified index. | |
void | InitToIdentity () |
Create identity matrix. | |
double | GetMaxElement () const |
double | GetMinElement () const |
void | GetNegated (TMatrix< Width, Height, double > &result) |
Get result matrix with negated all elements. | |
void | GetAdded (const TMatrix< Width, Height, double > &matrix, TMatrix< Width, Height, double > &result) const |
Get sum of two matrices. | |
void | GetSubstracted (const TMatrix< Width, Height, double > &matrix, TMatrix< Width, Height, double > &result) const |
Get result of substraction of two matrices. | |
void | GetMultiplied (const TMatrix< SecondWidth, Width, double > &matrix, TMatrix< SecondWidth, Height, double > &result) const |
Get result of multiplication of two matrices. | |
TMatrix< SecondWidth, Height, double > | GetMultiplied (const TMatrix< SecondWidth, Width, double > &matrix) const |
Get result of multiplication of two matrices. | |
void | GetMultiplied (const TVector< Width, double > &vector, TVector< Height, double > &result) const |
Get result of multiplication of this matrix and some vector. | |
TVector< Height, double > | GetMultiplied (const TVector< Width, double > &vector) const |
Get result of multiplication of this matrix and some vector. | |
void | GetScaled (double value, TMatrix< Width, Height, double > &result) const |
Get result of multiplication of this matrix with scalar value. | |
void | GetTransposed (TMatrix< Height, Width, double > &result) const |
Get transposed matrix. | |
TMatrix< Height, Width, double > | GetTransposed () const |
Get transposed matrix. | |
void | Transpose () |
Transpose matrix. | |
double | GetTrace () const |
Get trace of this matrix. | |
double | GetFrobeniusNorm2 () const |
double | GetFrobeniusNorm () const |
bool | GetTriangleDecomposed (TMatrix< Width, Height, double > &result, TMatrix< Height, Height, double > *matrixQPtr=nullptr, int maxColumns=-1, double minHhNorm=I_BIG_EPSILON) const |
Transform matrix to upper triangle form using method of Householder reflexions. | |
bool | GetDecompositionQDQ (TMatrix< Height, Height, double > &matrixQ, TVector< Height, double > &diagonalD, double tolerance=I_BIG_EPSILON, int maxIterations=100) const |
Calculate decomposition in form of QDQ where Q is orthogonal matrix and D is diagonal one. | |
void | GetColumnVector (int columnIndex, TVector< Height, double > &result) const |
Get single column as vector. | |
void | SetColumnVector (int columnIndex, const TVector< Height, double > &columnVector) |
Set a single column vector to matrix. | |
void | GetRowVector (int rowIndex, TVector< Width, double > &result) |
Get single row as vector. | |
bool | Serialize (iser::IArchive &archive) |
TMatrix< Width, Height, double > | operator+ (const TMatrix< Width, Height, double > &matrix) const |
TMatrix< Width, Height, double > | operator- (const TMatrix< Width, Height, double > &matrix) const |
TMatrix< Width, Height, double > | operator- () |
TMatrix< SecondWidth, Height, double > | operator* (const TMatrix< SecondWidth, Width, double > &matrix) const |
TMatrix< Width, Height, double > | operator* (double value) const |
TMatrix< Width, Height, double > & | operator+= (const TMatrix< Width, Height, double > &matrix) |
TMatrix< Width, Height, double > & | operator-= (const TMatrix< Width, Height, double > &matrix) |
TMatrix< Width, Height, double > & | operator*= (double value) |
bool | operator== (const TMatrix< Width, Height, double > &matrix) const |
bool | operator!= (const TMatrix< Width, Height, double > &matrix) const |
const ElementType & | operator[] (const IndexType &index) const |
ElementType & | operator[] (const IndexType &index) |
Static Public Member Functions | |
static const CMatrix3d & | GetIdentity () |
3D-matrix definition.
Definition at line 21 of file CMatrix3d.h.
Definition at line 24 of file CMatrix3d.h.
|
inline |
Constructor with no member initialization.
Definition at line 138 of file CMatrix3d.h.
Referenced by GetTransposed(), and operator/().
|
inline |
Definition at line 143 of file CMatrix3d.h.
|
inline |
Constructor using 3 vectors to span the transformation space.
Definition at line 149 of file CMatrix3d.h.
References imath::TMatrix< 3, 3 >::SetAt().
|
inline |
Constructor using matrix members.
Definition at line 166 of file CMatrix3d.h.
References imath::TMatrix< 3, 3 >::SetAt().
|
inline |
Get lengths of axes vectors.
Definition at line 220 of file CMatrix3d.h.
References GetAxesLengths().
Referenced by GetAxesLengths().
|
inline |
Get lengths of axes vectors.
Definition at line 230 of file CMatrix3d.h.
References GetAxisX(), GetAxisY(), GetAxisZ(), i3d::CVector3d::SetX(), i3d::CVector3d::SetY(), and i3d::CVector3d::SetZ().
|
inline |
Get axis X vector.
Definition at line 203 of file CMatrix3d.h.
References imath::TMatrix< 3, 3 >::GetAt().
Referenced by GetAxesLengths().
|
inline |
Get axis Y vector.
Definition at line 209 of file CMatrix3d.h.
References imath::TMatrix< 3, 3 >::GetAt().
Referenced by GetAxesLengths().
|
inline |
Get axis Z vector.
Definition at line 214 of file CMatrix3d.h.
References imath::TMatrix< 3, 3 >::GetAt().
Referenced by GetAxesLengths().
|
inline |
Calculate determinant of deformation matrix.
Definition at line 256 of file CMatrix3d.h.
References imath::TMatrix< 3, 3 >::GetAt().
|
inlinestatic |
Definition at line 303 of file CMatrix3d.h.
|
inline |
Calculate inverted matrix.
Definition at line 238 of file CMatrix3d.h.
References GetInverted().
Referenced by GetInverted().
bool i3d::CMatrix3d::GetInverted | ( | CMatrix3d & | result | ) | const |
Calculate inverted matrix.
i3d::CVector3d i3d::CMatrix3d::GetInvMultiplied | ( | const i3d::CVector3d & | position | ) | const |
Inverted operation to GetApply().
bool i3d::CMatrix3d::GetInvMultiplied | ( | const i3d::CVector3d & | position, |
i3d::CVector3d & | result ) const |
Inverted operation to GetApply().
Definition at line 193 of file CMatrix3d.h.
References GetMultiplied().
Definition at line 183 of file CMatrix3d.h.
References GetMultiplied().
Referenced by GetMultiplied(), and GetMultiplied().
|
inline |
Calculate transposed matrix.
Definition at line 248 of file CMatrix3d.h.
References CMatrix3d(), and imath::TMatrix< 3, 3 >::GetAt().
void i3d::CMatrix3d::Multiply | ( | const CMatrix3d & | matrix | ) |
void i3d::CMatrix3d::MultiplyLeft | ( | const CMatrix3d & | matrix | ) |
|
inline |
Multiplication by scalar number.
Definition at line 277 of file CMatrix3d.h.
References imath::TMatrix< 3, 3 >::GetScaled().
|
inline |
Division by scalar number.
Definition at line 287 of file CMatrix3d.h.
References CMatrix3d(), and imath::TMatrix< 3, 3 >::GetAt().
Copy operator.
Definition at line 269 of file CMatrix3d.h.
void i3d::CMatrix3d::Reset | ( | ) |
Default reset to identity.
© Witold Gantzke and Kirill Lepskiy