hom_mat3d_compose ( : : HomMat3DLeft, HomMat3DRight : HomMat3DCompose )

Multiply two homogeneous 3D transformation matrices.

hom_mat3d_compose composes a new 3D transformation matrix by multiplying the two input matrices:

  HomMat3DCompose = HomMat3DLeft * HomMat3DRight

For example, if the two input matrices correspond to rigid transformations, i.e., to transformations consisting of a rotation and a translation, the resulting matrix is calculated as follows:

  HomMat3DCompose  =  | R(l)  t(l) |  *  | R(r)  t(r) | 
                      | 0 0 0  1   |     | 0 0 0  1   |

                   =  | R(l)*R(r)  R(l)*t(r)+t(l) |
                      |  0 0 0           1        |


Parameters

HomMat3DLeft (input_control)
affine3d-array -> real
Left input transformation matrix.
Number of elements: 12

HomMat3DRight (input_control)
affine3d-array -> real
Right input transformation matrix.
Number of elements: 12

HomMat3DCompose (output_control)
affine3d-array -> real
Output transformation matrix.
Number of elements: 12


Result

If the parameters are valid, the operator hom_mat3d_compose returns 2 (H_MSG_TRUE). If necessary, an exception is raised.


Parallelization Information

hom_mat3d_compose is reentrant and processed without parallelization.


Possible Predecessors

hom_mat3d_compose, hom_mat3d_translate, hom_mat3d_scale, hom_mat3d_rotate, pose_to_hom_mat3d


Possible Successors

hom_mat3d_translate, hom_mat3d_scale, hom_mat3d_rotate


See also

affine_trans_point_3d, hom_mat3d_identity, hom_mat3d_rotate, hom_mat3d_translate, pose_to_hom_mat3d, hom_mat3d_to_pose


Module

Basic operators



Copyright © 1996-2005 MVTec Software GmbH