CSIBCXfoMatd Class Reference



Your Ad Here

Class representing a 4x4 transformation matrix. More...

#include <SIBCXfoMatd.h>

Inheritance diagram for CSIBCXfoMatd:

CSIBCMatrix44d List of all members.

Public Member Functions

  CSIBCXfoMatd (void)
  CSIBCXfoMatd (const CSIBCVector4Dd &in_vct0, const CSIBCVector4Dd &in_vct1, const CSIBCVector4Dd &in_vct2, const CSIBCVector4Dd &in_vct3, const bool in_bAreRows=true)
  CSIBCXfoMatd (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)
double  Get (const int in_nRow, const int in_nCol) const
const double *  GetArray () const
CSIBCXfoMatd Set (int in_nRow, int in_nCol, const double in_dVal)
CSIBCXfoMatd Set (double in_dVal[4][4])
CSIBCXfoMatd Set (double in_dVal[3][3])
CSIBCXfoMatd Set (const CSIBCMatrix44d &in_mat)
CSIBCXfoMatd Set (const CSIBCMatrix33d &in_mat)
CSIBCXfoMatd Set (const CSIBCXfoMatd &in_mat)
CSIBCXfoMatd Set (const CSIBCRotMatd &in_mat)
CSIBCXfoMatd SetWithTranspose (const CSIBCRotMatd &in_mat)
CSIBCXfoMatd SetRow (const int in_nRow, const CSIBCVector4Dd &in_vct)
CSIBCXfoMatd SetRow (const int in_nRow, double in_dA0, double in_dA1, double in_dA2, double in_dA3)
CSIBCXfoMatd SetCol (const int in_nCol, const CSIBCVector4Dd &in_vct)
CSIBCXfoMatd SetCol (const int in_nCol, double in_dA0, double in_dA1, double in_dA2, double in_dA3)
CSIBCXfoMatd SetIdentity (void)
bool  operator== (const CSIBCMatrix44d &in_mat) const
bool  operator!= (const CSIBCMatrix44d &in_mat) const
CSIBCXfoMatd Mul (const CSIBCXfoMatd &in_mat1, const CSIBCXfoMatd &in_mat2)
CSIBCXfoMatd Mul (const CSIBCXfoMatd &in_mat)
CSIBCXfoMatd Mul (const CSIBCXfoMatd &in_xfomat, const CSIBCRotMatd &in_rotmat)
CSIBCXfoMatd Mul (const CSIBCRotMatd &in_rotmat, const CSIBCXfoMatd &in_xfomat)
CSIBCXfoMatd MulTransByReg (const CSIBCRotMatd &in_rotmat, const CSIBCXfoMatd &in_xfomat)
double  GetDet (void) const
double  GetDet33 (void) const
double  GetTrace (void) const
CSIBCXfoMatd Transpose (const CSIBCXfoMatd &in_mat)
CSIBCXfoMatd Transpose (void)
bool  Invert (const CSIBCXfoMatd &in_mat)
bool  Invert (void)
CSIBCVector3Dd GetTranslation (CSIBCVector3Dd &out_vctTrs) const
CSIBCXfoMatd SetTranslation (const CSIBCVector3Dd &in_vctTrs)
CSIBCXfoMatd AddTranslation (const CSIBCVector3Dd &in_vctTrs)
CSIBCRotMatd GetRotation (CSIBCRotMatd &out_matRot) const
CSIBCRotationd GetRotation (CSIBCRotationd &out_rot) const
CSIBCXfoMatd SetRotation (const CSIBCRotMatd &in_matRot)
CSIBCXfoMatd AddRotation (const CSIBCRotMatd &in_matRot)
CSIBCVector3Dd GetScaling (CSIBCVector3Dd &out_vctScl) const
CSIBCXfoMatd SetScaling (const CSIBCVector3Dd &in_vctScl)
CSIBCXfoMatd AddScaling (const CSIBCVector3Dd &in_vctScl, bool in_bPreScaling=true)
void  SetScalingAndRotation (const CSIBCVector3Dd &in_vctScl, CSIBCRotationd &in_rot)
void  GetScalingAndRotation (CSIBCVector3Dd &out_vctScl, CSIBCRotationd &out_rot) const
void  GetAffineDecomposition (CSIBCRotMatd &out_sclRot, CSIBCXfoMatd &out_matSRT) const

Friends

bool  AreAlmostEqual (const CSIBCXfoMatd &in_mat1, const CSIBCXfoMatd &in_mat2, const double in_dEpsilon=HEXA_EPS)

Detailed Description

Class representing a 4x4 transformation matrix.

CSIBCXfoMatd is a specialized 4X4 matrix that represents transformations. It uses double precision floating-point numbers for its data, and operations (as it is derived from CSIBCMatrix44d).

Although transformations may be defined simply with any generic 4X4, this class provides extra methods to make specifying and working with transformation matricies easier. A class for general transformations, independent of matrix form is provided in CSIBCTranfod.

There are several other matrix classes aswell. Classes with specific applications, such as CSIBCRotMatd used for representing rotation matricies, Other matrix classes are not as specialized as CSIBCRotMatd or CSIBCXfoMatd, and are used to represent general matricies. These classes include CSIBCMatrix4x4, CSIBCMatrix44d and CSIBCMartrix33d.


Constructor & Destructor Documentation

CSIBCXfoMatd ( void   ) 

Default constructor Sets the new matrix to be the identity matrix.

See also:
CSIBCXfoMatd::SetIdentity

CSIBCXfoMatd ( 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).

CSIBCXfoMatd ( 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

double 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:
CSIBCXfoMatd::Set(int, int, const double)

Reimplemented from CSIBCMatrix44d.

const double* GetArray (  )  const

Returns a pointer to the 4X4 array containing the data for this matrix. Note that the pointer returned from this function should not be freed. Any modification to the array results in modification of this object directly.

Returns:
const double* Pointer to the 4X4 array containing the data for this matrix.
See also:
CSIBCXfoMatd::Get

CSIBCXfoMatd& 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:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& Set ( 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:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& Set ( double  in_dVal[3][3]  ) 

Sets the top-left submatrix of this matrix.

Parameters:
in_dVal  3x3 array of double values, containing the new values for the elements of the top-left submatrix.
Returns:
CSIBCXfoMatd& Reference to this matrix.

CSIBCXfoMatd& 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:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& Set ( const CSIBCMatrix33d in_mat  ) 

Sets all elements of the top-left submatrix of this matrix to those contained in in_mat.

Parameters:
in_mat  Matrix to copy top-left submatrix element value from.
Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

CSIBCXfoMatd& Set ( const CSIBCXfoMatd 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:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

CSIBCXfoMatd& Set ( const CSIBCRotMatd in_mat  ) 

Sets the transformation matrix to be a pure rotation, defined by in_mat.

Parameters:
in_mat  Rotation to set this transformation matrix to.
Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

CSIBCXfoMatd& SetWithTranspose ( const CSIBCRotMatd in_mat  ) 

Sets the transformation matrix to be a pure rotation, defined by the transpose of in_mat.

Parameters:
in_mat  Rotation transpose to set this transformation matrix to.
Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

CSIBCXfoMatd& 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:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& 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:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& 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:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& 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:
CSIBCXfoMatd::Set

CSIBCXfoMatd::SetRow

CSIBCXfoMatd::SetCol

CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& SetIdentity ( void   ) 

Sets this matrix to be the identity matrix.

Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Set

Reimplemented from CSIBCMatrix44d.

bool 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:
CSIBCXfoMatd::AreAlmostEqual

CSIBCXfoMatd::operator!=

Reimplemented from CSIBCMatrix44d.

bool 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:
CSIBCXfoMatd::AreAlmostEqual

CSIBCXfoMatd::operator==

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& Mul ( const CSIBCXfoMatd in_mat1,
const CSIBCXfoMatd 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:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Mul

CSIBCXfoMatd::MulTransByReg

CSIBCXfoMatd& Mul ( const CSIBCXfoMatd 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:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Mul

CSIBCXfoMatd::MulTransByReg

CSIBCXfoMatd& Mul ( const CSIBCXfoMatd in_xfomat,
const CSIBCRotMatd in_rotmat  
)

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

Parameters:
in_mat1  The tranformation matrix in the multiplication (on the left).
in_mat2  The pure rotation matrix in the multiplication (on the right).
Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Mul

CSIBCXfoMatd::MulTransByReg

CSIBCXfoMatd& Mul ( const CSIBCRotMatd in_rotmat,
const CSIBCXfoMatd in_xfomat  
)

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

Parameters:
in_mat1  The pure rotation matrix in the multiplication (on the left).
in_mat2  The tranformation matrix in the multiplication (on the right).
Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Mul

CSIBCXfoMatd::MulTransByReg

CSIBCXfoMatd& MulTransByReg ( const CSIBCRotMatd in_rotmat,
const CSIBCXfoMatd in_xfomat  
)

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:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Mul

CSIBCXfoMatd::MulRegByTrans

CSIBCXfoMatd::Div

double GetDet ( void   )  const

Computes the determinant of this matrix.

Returns:
double The determinant of this matrix.
See also:
CSIBCXfoMatd::GetDet33

CSIBCXfoMatd::GetTrace

Reimplemented from CSIBCMatrix44d.

double GetDet33 ( void   )  const

Computes the determines of the top-left 3x3 submatrix of this matrix.

Returns:
double The determinant of the top-left 3x3 submatrix.
See also:
CSIBCXfoMatd::GetDet

CSIBCXfoMatd::GetTrace

double 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:
CSIBCXfoMatd::GetDet

CSIBCXfoMatd::GetDet33

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& Transpose ( const CSIBCXfoMatd in_mat  ) 

Sets this matrix to be the transpose of in_mat.

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

CSIBCXfoMatd& Transpose ( void   ) 

Sets this matrix to its transpose.

Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::Transpose( const CSIBCXfoMatd& )

Reimplemented from CSIBCMatrix44d.

bool Invert ( const CSIBCXfoMatd 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:
CSIBCXfoMatd::Invert()

bool 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:
CSIBCXfoMatd::Invert( const CSIBCXfoMatd& )

Reimplemented from CSIBCMatrix44d.

CSIBCVector3Dd& GetTranslation ( CSIBCVector3Dd out_vctTrs  )  const

Gets the translation contained in this matrix.

Parameters:
out_vctTrs  Receives the translation in the X, Y and Z directions.
Returns:
CSIBCVector3Dd& Reference to out_vctTrs.
See also:
CSIBCXfoMatd::SetTranslation

CSIBCXfoMatd::AddTranslation

CSIBCXfoMatd& SetTranslation ( const CSIBCVector3Dd in_vctTrs  ) 

Sets the translation contained in this matrix.

Parameters:
in_vctTrs  Vector containing the translations in the X, Y and Z directions.
Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::GetTranslation

CSIBCXfoMatd::AddTranslation

CSIBCXfoMatd& AddTranslation ( const CSIBCVector3Dd in_vctTrs  ) 

Adds a translation to the translation in this matrix.

Parameters:
in_vctTrs  Vector containing the translations to add in the X, Y and Z directions.
Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::GetTranslation

CSIBCXfoMatd::SetTranslation

CSIBCRotMatd& GetRotation ( CSIBCRotMatd out_matRot  )  const

Gets the rotation matrix contained in this matrix as a rotation matrix.

Parameters:
out_matRot  Receives the rotation matrix.
Returns:
CSIBCVector3Dd& Reference to out_matRot.
See also:
CSIBCXfoMatd::GetRotation

CSIBCXfoMatd::SetRotation

CSIBCXfoMatd::AddRotation

CSIBCRotationd& GetRotation ( CSIBCRotationd out_rot  )  const

Gets the rotation matrix contained in this matrix as a rotation object.

Parameters:
out_rot  Receives the rotation object.
Returns:
CSIBCVector3Dd& Reference to out_rot.
See also:
CSIBCXfoMatd::GetRotation

CSIBCXfoMatd::SetRotation

CSIBCXfoMatd::AddRotation

CSIBCXfoMatd& SetRotation ( const CSIBCRotMatd in_matRot  ) 

Sets the rotation contained in this matrix.

Parameters:
in_matRot  Rotation matrix containing the rotation to set for this matrix.
Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::GetRotation

CSIBCXfoMatd::AddRotation

CSIBCXfoMatd& AddRotation ( const CSIBCRotMatd in_matRot  ) 

Adds a rotation to the rotation in this matrix.

Parameters:
in_matRot  Rotation matrix containing the rotation to add.
Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::GetRotation

CSIBCXfoMatd::SetRotation

CSIBCVector3Dd& GetScaling ( CSIBCVector3Dd out_vctScl  )  const

Gets the scaling of this matrix.

Parameters:
out_vctScl  Receives the scaling components in the X, Y and Z directions.
Returns:
CSIBCVector3Dd& Reference to out_vctScl.
See also:
CSIBCXfoMatd::SetScaling

CSIBCXfoMatd::AddScaling

CSIBCXfoMatd& SetScaling ( const CSIBCVector3Dd in_vctScl  ) 

Sets the scaling of this matrix.

Parameters:
in_vctScl  Vector containing the scaling in the X, Y and Z directions.
Returns:
CSIBCXfoMatd& Reference to this matrix.
See also:
CSIBCXfoMatd::GetScaling

CSIBCXfoMatd::AddScaling

CSIBCXfoMatd& AddScaling ( const CSIBCVector3Dd in_vctScl,
bool  in_bPreScaling = true  
)

Adds scaling to this matrix.

Parameters:
in_vctScl  Vector containing the scaling to add in the X, Y and Z directions.
in_bPreScaling  Whether the scaling operations should be applied before or after the translation in this matrix. if true scaling operations are applied before, false if scaling operations are to be applied after.
Returns:
CSIBCXfoMatd& Reference to this matirx.
See also:
CSIBCXfoMatd::GetScaling

CSIBCXfoMatd::SetScaling

void SetScalingAndRotation ( const CSIBCVector3Dd in_vctScl,
CSIBCRotationd in_rot  
)

Sets the scaling and rotation for this transformation matrix. Note that it is faster to use this method, than a combination of CSIBCXfoMatd::SetScaling, and CSIBCXfoMatd::SetRotation.

Parameters:
in_vctScl  Vector containing the scaling in the X, Y and Z directions.
in_rot  Rotation object containing the rotation for this matrix.
See also:
CSIBCXfoMatd::SetScaling

CSIBCXfoMatd::SetRotation

CSIBCXfoMatd::GetScalingAndRotation

void GetScalingAndRotation ( CSIBCVector3Dd out_vctScl,
CSIBCRotationd out_rot  
) const

Gets the scaling and rotation for this transformation matrix. Note that it is faster to use this method, than a combination of CSIBCXfoMatd::GetScaling, and CSIBCXfoMatd::GetRotation.

Parameters:
out_vct  Receives the scaling components in the X, Y and Z directions.
out_rot  Receives the rotation object for this matrix.
See also:
CSIBCXfoMatd::GetScaling

CSIBCXfoMatd::GetRotation

CSIBCXfoMatd::SetScalingAndRotation

void GetAffineDecomposition ( CSIBCRotMatd out_sclRot,
CSIBCXfoMatd out_matSRT  
) const

Gets the affine tranformation represented by this transformation matrix.

Parameters:
out_sclRot  Receives the affine scaling/rotation matrix associated with this transformation matrix.
out_matSRT  Receives the affine transformation matrix associated with this transformation matrix.


Friends And Related Function Documentation

bool AreAlmostEqual ( const CSIBCXfoMatd in_mat1,
const CSIBCXfoMatd in_mat2,
const double  in_dEpsilon = HEXA_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 HEXA_EPS.
Returns:
bool true if the matricies are equal, false otherwise.
See also:
CSIBCXfoMatd::operator==

CSIBCXfoMatd::operator!=


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

Return to Softimage XSI Index


Your Ad Here