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 |
|
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 | |
If the parameters are valid, the operator hom_mat3d_compose returns 2 (H_MSG_TRUE). If necessary, an exception is raised.
hom_mat3d_compose is reentrant and processed without parallelization.
hom_mat3d_compose, hom_mat3d_translate, hom_mat3d_scale, hom_mat3d_rotate, pose_to_hom_mat3d
hom_mat3d_translate, hom_mat3d_scale, hom_mat3d_rotate
affine_trans_point_3d, hom_mat3d_identity, hom_mat3d_rotate, hom_mat3d_translate, pose_to_hom_mat3d, hom_mat3d_to_pose
Basic operators