Name
hom_mat2d_composeT_hom_mat2d_composeHomMat2dComposehom_mat2d_composeHomMat2dComposeHomMat2dCompose — Multiply two homogeneous 2D transformation matrices.
hom_mat2d_composehom_mat2d_composeHomMat2dComposehom_mat2d_composeHomMat2dComposeHomMat2dCompose composes a new 2D transformation matrix
by multiplying the two input matrices:
HomMat2DComposeHomMat2DComposeHomMat2DComposeHomMat2DComposeHomMat2DComposehomMat2DCompose = HomMat2DLeftHomMat2DLeftHomMat2DLeftHomMat2DLeftHomMat2DLefthomMat2DLeft * HomMat2DRightHomMat2DRightHomMat2DRightHomMat2DRightHomMat2DRighthomMat2DRight
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:
HomMat2DComposeHomMat2DComposeHomMat2DComposeHomMat2DComposeHomMat2DComposehomMat2DCompose = | R(l) t(l) | * | R(r) t(r) |
| 0 0 1 | | 0 0 1 |
= | R(l)*R(r) R(l)*t(r)+t(l) |
| 0 0 1 |
Note that homogeneous matrices are stored row-by-row as a tuple;
the last row is usually not stored because it is identical for all
homogeneous matrices that describe an affine transformation. For example,
the homogeneous matrix
/ ra rb tc \
| rd re tf |
\ 0 0 1 /
is stored as the tuple [ra, rb, tc, rd, re, tf]. However, it is also
possible to process full 3×3 matrices, which represent
a projective 2D transformation.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Left input transformation matrix.
Right input transformation matrix.
Output transformation matrix.
If the parameters are valid, the operator hom_mat2d_composehom_mat2d_composeHomMat2dComposehom_mat2d_composeHomMat2dComposeHomMat2dCompose returns
2 (H_MSG_TRUE). If necessary, an exception is raised.
hom_mat2d_composehom_mat2d_composeHomMat2dComposehom_mat2d_composeHomMat2dComposeHomMat2dCompose,
hom_mat2d_translatehom_mat2d_translateHomMat2dTranslatehom_mat2d_translateHomMat2dTranslateHomMat2dTranslate,
hom_mat2d_translate_localhom_mat2d_translate_localHomMat2dTranslateLocalhom_mat2d_translate_localHomMat2dTranslateLocalHomMat2dTranslateLocal,
hom_mat2d_scalehom_mat2d_scaleHomMat2dScalehom_mat2d_scaleHomMat2dScaleHomMat2dScale,
hom_mat2d_scale_localhom_mat2d_scale_localHomMat2dScaleLocalhom_mat2d_scale_localHomMat2dScaleLocalHomMat2dScaleLocal,
hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotate,
hom_mat2d_rotate_localhom_mat2d_rotate_localHomMat2dRotateLocalhom_mat2d_rotate_localHomMat2dRotateLocalHomMat2dRotateLocal,
hom_mat2d_slanthom_mat2d_slantHomMat2dSlanthom_mat2d_slantHomMat2dSlantHomMat2dSlant,
hom_mat2d_slant_localhom_mat2d_slant_localHomMat2dSlantLocalhom_mat2d_slant_localHomMat2dSlantLocalHomMat2dSlantLocal,
hom_mat2d_reflecthom_mat2d_reflectHomMat2dReflecthom_mat2d_reflectHomMat2dReflectHomMat2dReflect,
hom_mat2d_reflect_localhom_mat2d_reflect_localHomMat2dReflectLocalhom_mat2d_reflect_localHomMat2dReflectLocalHomMat2dReflectLocal
hom_mat2d_composehom_mat2d_composeHomMat2dComposehom_mat2d_composeHomMat2dComposeHomMat2dCompose,
hom_mat2d_translatehom_mat2d_translateHomMat2dTranslatehom_mat2d_translateHomMat2dTranslateHomMat2dTranslate,
hom_mat2d_translate_localhom_mat2d_translate_localHomMat2dTranslateLocalhom_mat2d_translate_localHomMat2dTranslateLocalHomMat2dTranslateLocal,
hom_mat2d_scalehom_mat2d_scaleHomMat2dScalehom_mat2d_scaleHomMat2dScaleHomMat2dScale,
hom_mat2d_scale_localhom_mat2d_scale_localHomMat2dScaleLocalhom_mat2d_scale_localHomMat2dScaleLocalHomMat2dScaleLocal,
hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotate,
hom_mat2d_rotate_localhom_mat2d_rotate_localHomMat2dRotateLocalhom_mat2d_rotate_localHomMat2dRotateLocalHomMat2dRotateLocal,
hom_mat2d_slanthom_mat2d_slantHomMat2dSlanthom_mat2d_slantHomMat2dSlantHomMat2dSlant,
hom_mat2d_slant_localhom_mat2d_slant_localHomMat2dSlantLocalhom_mat2d_slant_localHomMat2dSlantLocalHomMat2dSlantLocal,
hom_mat2d_reflecthom_mat2d_reflectHomMat2dReflecthom_mat2d_reflectHomMat2dReflectHomMat2dReflect,
hom_mat2d_reflect_localhom_mat2d_reflect_localHomMat2dReflectLocalhom_mat2d_reflect_localHomMat2dReflectLocalHomMat2dReflectLocal
Foundation