Open CASCADE Technology
7.4.0
|
Generic matrix of 4 x 4 elements. To be used in conjunction with NCollection_Vec4 entities. Originally introduced for 3D space projection and orientation operations. More...
#include <NCollection_Mat4.hxx>
Public Member Functions | |
NCollection_Mat4 () | |
Empty constructor. Construct the zero matrix. More... | |
template<typename OtherElement_t > | |
NCollection_Mat4 (const NCollection_Mat4< OtherElement_t > &theOtherMat4) | |
Conversion constructor (explicitly converts some 4 x 4 matrix with other element type to a new 4 x 4 matrix with the element type Element_t, whose elements are static_cast'ed corresponding elements of theOtherMat4 matrix) More... | |
Element_t | GetValue (const size_t theRow, const size_t theCol) const |
Get element at the specified row and column. More... | |
Element_t & | ChangeValue (const size_t theRow, const size_t theCol) |
Access element at the specified row and column. More... | |
void | SetValue (const size_t theRow, const size_t theCol, const Element_t theValue) |
Set value for the element specified by row and columns. More... | |
NCollection_Vec4< Element_t > | GetRow (const size_t theRow) const |
Get vector of elements for the specified row. More... | |
void | SetRow (const size_t theRow, const NCollection_Vec3< Element_t > &theVec) |
Change first 3 row values by the passed vector. More... | |
void | SetRow (const size_t theRow, const NCollection_Vec4< Element_t > &theVec) |
Set row values by the passed 4 element vector. More... | |
NCollection_Vec4< Element_t > | GetColumn (const size_t theCol) const |
Get vector of elements for the specified column. More... | |
void | SetColumn (const size_t theCol, const NCollection_Vec3< Element_t > &theVec) |
Change first 3 column values by the passed vector. More... | |
void | SetColumn (const size_t theCol, const NCollection_Vec4< Element_t > &theVec) |
Set column values by the passed 4 element vector. More... | |
NCollection_Vec4< Element_t > | GetDiagonal () const |
Get vector of diagonal elements. More... | |
void | SetDiagonal (const NCollection_Vec3< Element_t > &theVec) |
Change first 3 elements of the diagonal matrix. More... | |
void | SetDiagonal (const NCollection_Vec4< Element_t > &theVec) |
Set diagonal elements of the matrix by the passed vector. More... | |
void | InitIdentity () |
Initialize the identity matrix. More... | |
bool | IsIdentity () const |
Checks the matrix for identity. More... | |
bool | IsEqual (const NCollection_Mat4 &theOther) const |
Check this matrix for equality with another matrix (without tolerance!). More... | |
bool | operator== (const NCollection_Mat4 &theOther) |
Check this matrix for equality with another matrix (without tolerance!). More... | |
bool | operator== (const NCollection_Mat4 &theOther) const |
bool | operator!= (const NCollection_Mat4 &theOther) |
Check this matrix for non-equality with another matrix (without tolerance!). More... | |
bool | operator!= (const NCollection_Mat4 &theOther) const |
const Element_t * | GetData () const |
Raw access to the data (for OpenGL exchange). More... | |
Element_t * | ChangeData () |
operator const Element_t * () const | |
operator Element_t * () | |
NCollection_Vec4< Element_t > | operator* (const NCollection_Vec4< Element_t > &theVec) const |
Multiply by the vector (M * V). More... | |
NCollection_Mat4 | Multiply (const NCollection_Mat4 &theMatA, const NCollection_Mat4 &theMatB) |
Compute matrix multiplication product: A * B. More... | |
void | Multiply (const NCollection_Mat4 &theMat) |
Compute matrix multiplication. More... | |
NCollection_Mat4 & | operator*= (const NCollection_Mat4 &theMat) |
Multiply by the another matrix. More... | |
NCollection_Mat4 | operator* (const NCollection_Mat4 &theMat) const |
Compute matrix multiplication product. More... | |
NCollection_Mat4 | Multiplied (const NCollection_Mat4 &theMat) const |
Compute matrix multiplication product. More... | |
void | Multiply (const Element_t theFactor) |
Compute per-component multiplication. More... | |
NCollection_Mat4 & | operator*= (const Element_t theFactor) |
Compute per-element multiplication. More... | |
NCollection_Mat4 | operator* (const Element_t theFactor) const |
Compute per-element multiplication. More... | |
NCollection_Mat4 | Multiplied (const Element_t theFactor) const |
Compute per-element multiplication. More... | |
void | Translate (const NCollection_Vec3< Element_t > &theVec) |
Translate the matrix on the passed vector. More... | |
NCollection_Mat4 | Transposed () const |
Transpose the matrix. More... | |
void | Transpose () |
Transpose the matrix. More... | |
bool | Inverted (NCollection_Mat4< Element_t > &theOutMx) const |
Compute inverted matrix. More... | |
template<typename Other_t > | |
void | ConvertFrom (const NCollection_Mat4< Other_t > &theFrom) |
Take values from NCollection_Mat4 with a different element type with type conversion. More... | |
template<typename Other_t > | |
void | Convert (const NCollection_Mat4< Other_t > &theFrom) |
Take values from NCollection_Mat4 with a different element type with type conversion. More... | |
Static Public Member Functions | |
static size_t | Rows () |
Get number of rows. More... | |
static size_t | Cols () |
Get number of columns. number of columns. More... | |
static NCollection_Mat4< Element_t > & | Map (Element_t *theData) |
Maps plain C array to matrix type. More... | |
static const NCollection_Mat4< Element_t > & | Map (const Element_t *theData) |
Maps plain C array to matrix type. More... | |
Generic matrix of 4 x 4 elements. To be used in conjunction with NCollection_Vec4 entities. Originally introduced for 3D space projection and orientation operations.
|
inline |
Empty constructor. Construct the zero matrix.
|
inlineexplicit |
Conversion constructor (explicitly converts some 4 x 4 matrix with other element type to a new 4 x 4 matrix with the element type Element_t, whose elements are static_cast'ed corresponding elements of theOtherMat4 matrix)
OtherElement_t | the element type of the other 4 x 4 matrix theOtherVec4 |
theOtherMat4 | the 4 x 4 matrix that needs to be converted |
|
inline |
|
inline |
Access element at the specified row and column.
theRow | [in] the row.to access. |
theCol | [in] the column to access. |
|
inlinestatic |
Get number of columns. number of columns.
|
inline |
Take values from NCollection_Mat4 with a different element type with type conversion.
|
inline |
Take values from NCollection_Mat4 with a different element type with type conversion.
|
inline |
Get vector of elements for the specified column.
theCol | [in] the column to access. |
|
inline |
Raw access to the data (for OpenGL exchange).
|
inline |
Get vector of diagonal elements.
|
inline |
Get vector of elements for the specified row.
theRow | [in] the row to access. |
|
inline |
Get element at the specified row and column.
theRow | [in] the row.to address. |
theCol | [in] the column to address. |
|
inline |
Initialize the identity matrix.
|
inline |
Compute inverted matrix.
theOutMx | [out] the inverted matrix. |
|
inline |
Check this matrix for equality with another matrix (without tolerance!).
|
inline |
Checks the matrix for identity.
|
inlinestatic |
Maps plain C array to matrix type.
|
inlinestatic |
Maps plain C array to matrix type.
|
inline |
Compute matrix multiplication product.
theMat | [in] the other matrix. |
|
inline |
Compute per-element multiplication.
theFactor | [in] the scale factor. |
|
inline |
Compute matrix multiplication product: A * B.
theMatA | [in] the matrix "A". |
theMatB | [in] the matrix "B". |
|
inline |
Compute matrix multiplication.
theMat | [in] the matrix to multiply. |
|
inline |
Compute per-component multiplication.
theFactor | [in] the scale factor. |
|
inline |
|
inline |
|
inline |
Check this matrix for non-equality with another matrix (without tolerance!).
|
inline |
|
inline |
Multiply by the vector (M * V).
theVec | [in] the vector to multiply. |
|
inline |
Compute matrix multiplication product.
theMat | [in] the other matrix. |
|
inline |
Compute per-element multiplication.
theFactor | [in] the scale factor. |
|
inline |
Multiply by the another matrix.
theMat | [in] the other matrix. |
|
inline |
Compute per-element multiplication.
theFactor | [in] the scale factor. |
|
inline |
Check this matrix for equality with another matrix (without tolerance!).
|
inline |
|
inlinestatic |
Get number of rows.
|
inline |
Change first 3 column values by the passed vector.
theCol | [in] the column to change. |
theVec | [in] the vector of values. |
|
inline |
Set column values by the passed 4 element vector.
theCol | [in] the column to change. |
theVec | [in] the vector of values. |
|
inline |
Change first 3 elements of the diagonal matrix.
theVec | the vector of values. |
|
inline |
Set diagonal elements of the matrix by the passed vector.
theVec | [in] the vector of values. |
|
inline |
Change first 3 row values by the passed vector.
theRow | [in] the row to change. |
theVec | [in] the vector of values. |
|
inline |
Set row values by the passed 4 element vector.
theRow | [in] the row to change. |
theVec | [in] the vector of values. |
|
inline |
Set value for the element specified by row and columns.
theRow | [in] the row to change. |
theCol | [in] the column to change. |
theValue | [in] the value to set.s |
|
inline |
Translate the matrix on the passed vector.
theVec | [in] the translation vector. |
|
inline |
Transpose the matrix.
|
inline |
Transpose the matrix.