TexGen
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TexGen::CLinearTransformation Class Reference

Represents a linear transformation as a 3x3 matrix. More...

#include <LinearTransformation.h>

Inheritance diagram for TexGen::CLinearTransformation:
Inheritance graph
[legend]

Public Member Functions

 CLinearTransformation (void)
 
 CLinearTransformation (const CMatrix &Matrix)
 
 ~CLinearTransformation (void)
 
void ResetTransformation ()
 
void MultiplyTransformation (const CMatrix &Deformation)
 
void AddScale (double dXScale=1, double dYScale=1, double dZScale=1)
 
void AddSheardYbydX (double dValue)
 
void AddSheardZbydX (double dValue)
 
void AddSheardXbydY (double dValue)
 
void AddSheardZbydY (double dValue)
 
void AddSheardXbydZ (double dValue)
 
void AddSheardYbydZ (double dValue)
 
void Rotate (WXYZ Rotation)
 
void Initialise (int iHeight, int iWidth)
 
void InitialiseIdentity (int iSize)
 
CMatrix GetTranspose ()
 
CMatrixGetSubMatrix (CMatrix &SubMatrix, int iRow, int iColumn) const
 
void SetSubMatrix (CMatrix &SubMatrix, int iRow, int iColumn)
 
void ZeroMatrix ()
 
double & operator() (int i, int j)
 
const double & operator() (int i, int j) const
 
const double GetValue (int i, int j) const
 
void SetValue (int i, int j, double dVal)
 
CMatrix operator* (const CMatrix &RightMatrix) const
 
CMatrix operator* (double dRight) const
 
CMatrix operator+ (const CMatrix &RightMatrix) const
 
CMatrix operator- (const CMatrix &RightMatrix) const
 
CMatrixoperator*= (double dRight)
 
CMatrixoperator/= (double dRight)
 
CMatrixoperator+= (const CMatrix &RightMatrix)
 
CMatrixoperator-= (const CMatrix &RightMatrix)
 
double GetDeterminant () const
 
double GetInverse (CMatrix &Inverse) const
 
void GetSquareRoot (CMatrix &Root) const
 
void GetEigen (CMatrix &EigenVectors, CMatrix &EigenValues) const
 
void GetPolarDecomposition (CMatrix &U, CMatrix &P) const
 
bool Empty () const
 
int GetHeight () const
 
int GetWidth () const
 
void SwapRows (int iRow1, int iRow2)
 
void SwapColumns (int iColumn1, int iColumn2)
 
void DivideRow (int iRow, double dDivisor)
 
void DivideColumn (int iColumn, double dDivisor)
 
void SubtractRow (int iRow1, int iRow2, double dScale)
 
void SubtractColumn (int iColumn1, int iColumn2, double dScale)
 
void Identity ()
 
CMatrixEqualsMultiple (const CMatrix &LeftMatrix, const CMatrix &RightMatrix)
 This function multiplies the left matrix with the right matrix. More...
 
CMatrixEqualsTransposeMultiple (const CMatrix &LeftMatrix, const CMatrix &RightMatrix)
 This function multiplies the transpose of the left matrix with the right matrix. More...
 
CMatrixEqualsMultipleTranspose (const CMatrix &LeftMatrix, const CMatrix &RightMatrix)
 This function multiplies the transpose of the left matrix with the right matrix. More...
 
void PrintMatrix (char szMatrixName[], ostream &Output=cout, int iWidth=16, bool bScientific=true)
 

Protected Member Functions

double GetInverseSlow (CMatrix &Inverse) const
 

Protected Attributes

int m_iWidth
 
int m_iHeight
 
double * m_dMatrix
 

Detailed Description

Represents a linear transformation as a 3x3 matrix.

This class is derived from the CMatrix class, and adds a few additional functions specific to 3x3 linear transformation matrices.

Definition at line 38 of file LinearTransformation.h.

Constructor & Destructor Documentation

◆ CLinearTransformation() [1/2]

CLinearTransformation::CLinearTransformation ( void  )

Definition at line 25 of file LinearTransformation.cpp.

References TexGen::CMatrix::InitialiseIdentity().

◆ CLinearTransformation() [2/2]

CLinearTransformation::CLinearTransformation ( const CMatrix Matrix)

◆ ~CLinearTransformation()

CLinearTransformation::~CLinearTransformation ( void  )

Definition at line 43 of file LinearTransformation.cpp.

Member Function Documentation

◆ AddScale()

void CLinearTransformation::AddScale ( double  dXScale = 1,
double  dYScale = 1,
double  dZScale = 1 
)

◆ AddSheardXbydY()

void TexGen::CLinearTransformation::AddSheardXbydY ( double  dValue)
inline

Definition at line 50 of file LinearTransformation.h.

◆ AddSheardXbydZ()

void TexGen::CLinearTransformation::AddSheardXbydZ ( double  dValue)
inline

Definition at line 52 of file LinearTransformation.h.

◆ AddSheardYbydX()

void TexGen::CLinearTransformation::AddSheardYbydX ( double  dValue)
inline

Definition at line 48 of file LinearTransformation.h.

◆ AddSheardYbydZ()

void TexGen::CLinearTransformation::AddSheardYbydZ ( double  dValue)
inline

Definition at line 53 of file LinearTransformation.h.

◆ AddSheardZbydX()

void TexGen::CLinearTransformation::AddSheardZbydX ( double  dValue)
inline

Definition at line 49 of file LinearTransformation.h.

◆ AddSheardZbydY()

void TexGen::CLinearTransformation::AddSheardZbydY ( double  dValue)
inline

Definition at line 51 of file LinearTransformation.h.

◆ DivideColumn()

void TexGen::CMatrix::DivideColumn ( int  iColumn,
double  dDivisor 
)
inlineinherited

Definition at line 755 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

◆ DivideRow()

void TexGen::CMatrix::DivideRow ( int  iRow,
double  dDivisor 
)
inlineinherited

Definition at line 743 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

◆ Empty()

bool TexGen::CMatrix::Empty ( ) const
inlineinherited

◆ EqualsMultiple()

CMatrix & TexGen::CMatrix::EqualsMultiple ( const CMatrix LeftMatrix,
const CMatrix RightMatrix 
)
inlineinherited

◆ EqualsMultipleTranspose()

CMatrix & TexGen::CMatrix::EqualsMultipleTranspose ( const CMatrix LeftMatrix,
const CMatrix RightMatrix 
)
inlineinherited

This function multiplies the transpose of the left matrix with the right matrix.

Warning, LeftMatrix and RightMatrix parameters should not be equal to this

Definition at line 347 of file Matrix.h.

References TexGen::CMatrix::Initialise(), TexGen::CMatrix::m_iHeight, TexGen::CMatrix::m_iWidth, and TexGen::CMatrix::ZeroMatrix().

Referenced by TexGen::CElementTriBending::GetDMatrix().

◆ EqualsTransposeMultiple()

CMatrix & TexGen::CMatrix::EqualsTransposeMultiple ( const CMatrix LeftMatrix,
const CMatrix RightMatrix 
)
inlineinherited

This function multiplies the transpose of the left matrix with the right matrix.

Warning, LeftMatrix and RightMatrix parameters should not be equal to this

Definition at line 320 of file Matrix.h.

References TexGen::CMatrix::Initialise(), TexGen::CMatrix::m_iHeight, TexGen::CMatrix::m_iWidth, and TexGen::CMatrix::ZeroMatrix().

Referenced by TexGen::CElement::GetKeMatrix(), and TexGen::CMatrix::GetPolarDecomposition().

◆ GetDeterminant()

double TexGen::CMatrix::GetDeterminant ( ) const
inlineinherited

◆ GetEigen()

void TexGen::CMatrix::GetEigen ( CMatrix EigenVectors,
CMatrix EigenValues 
) const
inlineinherited

◆ GetHeight()

int TexGen::CMatrix::GetHeight ( ) const
inlineinherited

Definition at line 176 of file Matrix.h.

References TexGen::CMatrix::m_iHeight.

Referenced by CLinearTransformation().

◆ GetInverse()

double TexGen::CMatrix::GetInverse ( CMatrix Inverse) const
inlineinherited

◆ GetInverseSlow()

double TexGen::CMatrix::GetInverseSlow ( CMatrix Inverse) const
inlineprotectedinherited

◆ GetPolarDecomposition()

void TexGen::CMatrix::GetPolarDecomposition ( CMatrix U,
CMatrix P 
) const
inlineinherited

◆ GetSquareRoot()

void TexGen::CMatrix::GetSquareRoot ( CMatrix Root) const
inlineinherited

◆ GetSubMatrix()

CMatrix & TexGen::CMatrix::GetSubMatrix ( CMatrix SubMatrix,
int  iRow,
int  iColumn 
) const
inlineinherited

◆ GetTranspose()

CMatrix TexGen::CMatrix::GetTranspose ( )
inlineinherited

Definition at line 220 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

Referenced by TexGen::CDomainPlanes::Deform().

◆ GetValue()

const double TexGen::CMatrix::GetValue ( int  i,
int  j 
) const
inlineinherited

Definition at line 200 of file Matrix.h.

References TexGen::CMatrix::m_dMatrix, and TexGen::CMatrix::m_iWidth.

Referenced by TexGen::CMatrix::SetSubMatrix().

◆ GetWidth()

int TexGen::CMatrix::GetWidth ( ) const
inlineinherited

Definition at line 181 of file Matrix.h.

References TexGen::CMatrix::m_iWidth.

Referenced by CLinearTransformation().

◆ Identity()

void TexGen::CMatrix::Identity ( )
inlineinherited

◆ Initialise()

void TexGen::CMatrix::Initialise ( int  iHeight,
int  iWidth 
)
inlineinherited

◆ InitialiseIdentity()

void TexGen::CMatrix::InitialiseIdentity ( int  iSize)
inlineinherited

◆ MultiplyTransformation()

void CLinearTransformation::MultiplyTransformation ( const CMatrix Deformation)

Definition at line 52 of file LinearTransformation.cpp.

Referenced by AddScale(), and Rotate().

◆ operator()() [1/2]

double & TexGen::CMatrix::operator() ( int  i,
int  j 
)
inlineinherited

Definition at line 186 of file Matrix.h.

References TexGen::CMatrix::m_dMatrix, and TexGen::CMatrix::m_iWidth.

◆ operator()() [2/2]

const double & TexGen::CMatrix::operator() ( int  i,
int  j 
) const
inlineinherited

Definition at line 193 of file Matrix.h.

References TexGen::CMatrix::m_dMatrix, and TexGen::CMatrix::m_iWidth.

◆ operator*() [1/2]

CMatrix TexGen::CMatrix::operator* ( const CMatrix RightMatrix) const
inlineinherited

Definition at line 234 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

◆ operator*() [2/2]

CMatrix TexGen::CMatrix::operator* ( double  dRight) const
inlineinherited

Definition at line 252 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

◆ operator*=()

CMatrix & TexGen::CMatrix::operator*= ( double  dRight)
inlineinherited

Definition at line 374 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

◆ operator+()

CMatrix TexGen::CMatrix::operator+ ( const CMatrix RightMatrix) const
inlineinherited

◆ operator+=()

CMatrix & TexGen::CMatrix::operator+= ( const CMatrix RightMatrix)
inlineinherited

◆ operator-()

CMatrix TexGen::CMatrix::operator- ( const CMatrix RightMatrix) const
inlineinherited

◆ operator-=()

CMatrix & TexGen::CMatrix::operator-= ( const CMatrix RightMatrix)
inlineinherited

◆ operator/=()

CMatrix & TexGen::CMatrix::operator/= ( double  dRight)
inlineinherited

Definition at line 387 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

◆ PrintMatrix()

void TexGen::CMatrix::PrintMatrix ( char  szMatrixName[],
ostream &  Output = cout,
int  iWidth = 16,
bool  bScientific = true 
)
inlineinherited

Definition at line 437 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

Referenced by TexGen::operator<<().

◆ ResetTransformation()

void CLinearTransformation::ResetTransformation ( )

Definition at line 47 of file LinearTransformation.cpp.

References TexGen::CMatrix::Identity().

◆ Rotate()

void CLinearTransformation::Rotate ( WXYZ  Rotation)

Definition at line 95 of file LinearTransformation.cpp.

References TexGen::ConvertRotation(), and MultiplyTransformation().

◆ SetSubMatrix()

void TexGen::CMatrix::SetSubMatrix ( TexGen::CMatrix SubMatrix,
int  iRow,
int  iColumn 
)
inlineinherited

◆ SetValue()

void TexGen::CMatrix::SetValue ( int  i,
int  j,
double  dVal 
)
inlineinherited

Definition at line 207 of file Matrix.h.

References TexGen::CMatrix::m_dMatrix, and TexGen::CMatrix::m_iWidth.

◆ SubtractColumn()

void TexGen::CMatrix::SubtractColumn ( int  iColumn1,
int  iColumn2,
double  dScale 
)
inlineinherited

Definition at line 780 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

◆ SubtractRow()

void TexGen::CMatrix::SubtractRow ( int  iRow1,
int  iRow2,
double  dScale 
)
inlineinherited

Definition at line 767 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

◆ SwapColumns()

void TexGen::CMatrix::SwapColumns ( int  iColumn1,
int  iColumn2 
)
inlineinherited

Definition at line 727 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

◆ SwapRows()

void TexGen::CMatrix::SwapRows ( int  iRow1,
int  iRow2 
)
inlineinherited

Definition at line 711 of file Matrix.h.

References TexGen::CMatrix::m_iHeight, and TexGen::CMatrix::m_iWidth.

◆ ZeroMatrix()

void TexGen::CMatrix::ZeroMatrix ( )
inlineinherited

Member Data Documentation

◆ m_dMatrix

double* TexGen::CMatrix::m_dMatrix
protectedinherited

◆ m_iHeight

int TexGen::CMatrix::m_iHeight
protectedinherited

◆ m_iWidth

int TexGen::CMatrix::m_iWidth
protectedinherited

The documentation for this class was generated from the following files: