Operator Reference

hom_mat2d_composeT_hom_mat2d_composeHomMat2dComposeHomMat2dComposehom_mat2d_compose (Operator)

hom_mat2d_composeT_hom_mat2d_composeHomMat2dComposeHomMat2dComposehom_mat2d_compose — Multiply two homogeneous 2D transformation matrices.

Signature

hom_mat2d_compose( : : HomMat2DLeft, HomMat2DRight : HomMat2DCompose)

Herror T_hom_mat2d_compose(const Htuple HomMat2DLeft, const Htuple HomMat2DRight, Htuple* HomMat2DCompose)

void HomMat2dCompose(const HTuple& HomMat2DLeft, const HTuple& HomMat2DRight, HTuple* HomMat2DCompose)

HHomMat2D HHomMat2D::HomMat2dCompose(const HHomMat2D& HomMat2DRight) const

def hom_mat2d_compose(hom_mat_2dleft: Sequence[float], hom_mat_2dright: Sequence[float]) -> Sequence[float]

Description

hom_mat2d_composehom_mat2d_composeHomMat2dComposeHomMat2dComposehom_mat2d_compose composes a new 2D transformation matrix by multiplying the two input matrices:

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:

Attention

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 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.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

Parameters

HomMat2DLeftHomMat2DLeftHomMat2DLefthomMat2DLefthom_mat_2dleft (input_control)  hom_mat2d HHomMat2D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Left input transformation matrix.

HomMat2DRightHomMat2DRightHomMat2DRighthomMat2DRighthom_mat_2dright (input_control)  hom_mat2d HHomMat2D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Right input transformation matrix.

HomMat2DComposeHomMat2DComposeHomMat2DComposehomMat2DComposehom_mat_2dcompose (output_control)  hom_mat2d HHomMat2D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Output transformation matrix.

Result

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

Possible Predecessors

hom_mat2d_composehom_mat2d_composeHomMat2dComposeHomMat2dComposehom_mat2d_compose, hom_mat2d_translatehom_mat2d_translateHomMat2dTranslateHomMat2dTranslatehom_mat2d_translate, hom_mat2d_translate_localhom_mat2d_translate_localHomMat2dTranslateLocalHomMat2dTranslateLocalhom_mat2d_translate_local, hom_mat2d_scalehom_mat2d_scaleHomMat2dScaleHomMat2dScalehom_mat2d_scale, hom_mat2d_scale_localhom_mat2d_scale_localHomMat2dScaleLocalHomMat2dScaleLocalhom_mat2d_scale_local, hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotatehom_mat2d_rotate, hom_mat2d_rotate_localhom_mat2d_rotate_localHomMat2dRotateLocalHomMat2dRotateLocalhom_mat2d_rotate_local, hom_mat2d_slanthom_mat2d_slantHomMat2dSlantHomMat2dSlanthom_mat2d_slant, hom_mat2d_slant_localhom_mat2d_slant_localHomMat2dSlantLocalHomMat2dSlantLocalhom_mat2d_slant_local, hom_mat2d_reflecthom_mat2d_reflectHomMat2dReflectHomMat2dReflecthom_mat2d_reflect, hom_mat2d_reflect_localhom_mat2d_reflect_localHomMat2dReflectLocalHomMat2dReflectLocalhom_mat2d_reflect_local

Possible Successors

hom_mat2d_composehom_mat2d_composeHomMat2dComposeHomMat2dComposehom_mat2d_compose, hom_mat2d_translatehom_mat2d_translateHomMat2dTranslateHomMat2dTranslatehom_mat2d_translate, hom_mat2d_translate_localhom_mat2d_translate_localHomMat2dTranslateLocalHomMat2dTranslateLocalhom_mat2d_translate_local, hom_mat2d_scalehom_mat2d_scaleHomMat2dScaleHomMat2dScalehom_mat2d_scale, hom_mat2d_scale_localhom_mat2d_scale_localHomMat2dScaleLocalHomMat2dScaleLocalhom_mat2d_scale_local, hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotatehom_mat2d_rotate, hom_mat2d_rotate_localhom_mat2d_rotate_localHomMat2dRotateLocalHomMat2dRotateLocalhom_mat2d_rotate_local, hom_mat2d_slanthom_mat2d_slantHomMat2dSlantHomMat2dSlanthom_mat2d_slant, hom_mat2d_slant_localhom_mat2d_slant_localHomMat2dSlantLocalHomMat2dSlantLocalhom_mat2d_slant_local, hom_mat2d_reflecthom_mat2d_reflectHomMat2dReflectHomMat2dReflecthom_mat2d_reflect, hom_mat2d_reflect_localhom_mat2d_reflect_localHomMat2dReflectLocalHomMat2dReflectLocalhom_mat2d_reflect_local

Module

Foundation