C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
mb_matrix3d.h File Reference

The extended matrix of transformation in a three-dimensional space. More...

#include <mb_cart_point3d.h>
#include <mb_homogeneous3d.h>

Classes

class  MbMatrix3D
 The extended matrix of transformation in a three-dimensional space. More...
 

Functions

template<class Transform >
void CheckOrigin3D (const Transform &trans, uint8 &flag, bool resetFlag)
 
template<class Transform >
void CheckRotation3D (const Transform &trans, uint8 &flag, bool resetFlag)
 
template<class Transform >
void CheckAffine3D (const Transform &trans, uint8 &flag)
 
void ExtractEulerAngles (const MbMatrix3D &trans, double &alpha, double &betta, double &gamma)
 Extract the Euler angles from the rotational submatrix R = Rx*Ry*Rz. More...
 

Detailed Description

The extended matrix of transformation in a three-dimensional space.

Function Documentation

◆ CheckOrigin3D()

template<class Transform >
void CheckOrigin3D ( const Transform &  trans,
uint8 &  flag,
bool  resetFlag 
)
Attention
For internal use only.

◆ CheckRotation3D()

template<class Transform >
void CheckRotation3D ( const Transform &  trans,
uint8 &  flag,
bool  resetFlag 
)
Attention
For internal use only.

◆ CheckAffine3D()

template<class Transform >
void CheckAffine3D ( const Transform &  trans,
uint8 &  flag 
)
Attention
For internal use only.

◆ ExtractEulerAngles()

void ExtractEulerAngles ( const MbMatrix3D trans,
double &  alpha,
double &  betta,
double &  gamma 
)

Extract the Euler angles from the rotational submatrix R = Rx*Ry*Rz.

Parameters
[in]trans- The transformation matrix containing the rotational sub-matrix.
[out]alpha- Angle of rotation around the "X" axis extracted from the rotation matrix.
[out]betta- Angle of rotation around the "Y" axis extracted from the rotation matrix.
[out]gamma- Angle of rotation around the "Z" axis extracted from the rotation matrix.

The function factorizes the rotation submatrix into elementary rotations about the axes: R = Rx * Ry * Rz, given in the form of angular values, namely the values in radians, specifying the rotation sub-matrix R of the given trans in the form of a combination (product) of three elementary rotations: R = Rx * Ry * Rz , where
Rx = Rx(alpha) - rotation around X-axis,
Ry = Ry(betta) - rotation around Y-axis,
Rz = Rz(gamma) - rotation around Z-axis and
R is a rotational 3x3 sub-matrix from the matrix trans.
The matrix trans can contain any transformations including the scaling and the shear. The ExtractEulerAngles method extracts from the given matrix a rotating component and decomposes it into three rotations: Rx( alpha ), Ry( betta ), Rz( gamma ).