Operator Reference

pose_composeT_pose_composePoseComposePoseComposepose_compose (Operator)

pose_composeT_pose_composePoseComposePoseComposepose_compose — Combine 3D poses given in two tuples.

Signature

pose_compose( : : PoseLeft, PoseRight : PoseCompose)

Herror T_pose_compose(const Htuple PoseLeft, const Htuple PoseRight, Htuple* PoseCompose)

void PoseCompose(const HTuple& PoseLeft, const HTuple& PoseRight, HTuple* PoseCompose)

static HPoseArray HPose::PoseCompose(const HPoseArray& PoseLeft, const HPoseArray& PoseRight)

HPose HPose::PoseCompose(const HPose& PoseRight) const

static void HOperatorSet.PoseCompose(HTuple poseLeft, HTuple poseRight, out HTuple poseCompose)

static HPose[] HPose.PoseCompose(HPose[] poseLeft, HPose[] poseRight)

HPose HPose.PoseCompose(HPose poseRight)

def pose_compose(pose_left: Sequence[Union[float, int]], pose_right: Sequence[Union[float, int]]) -> Sequence[Union[float, int]]

Description

pose_composepose_composePoseComposePoseComposepose_compose combines the poses in the tuples, PoseLeftPoseLeftPoseLeftposeLeftpose_left and PoseRightPoseRightPoseRightposeRightpose_right. If both tuples contain the same number of poses, the corresponding elements of both tuples are composed. Otherwise, either tuple PoseLeftPoseLeftPoseLeftposeLeftpose_left or PoseRightPoseRightPoseRightposeRightpose_right must contain only one pose. In this case, the composition is performed for each pose of the longer tuple with the single pose of the other tuple. For each composition, the poses are interpreted as transformations of coordinate systems. The poses in tuple PoseComposePoseComposePoseComposeposeComposepose_compose are therefore the result of applying the corresponding poses in PoseLeftPoseLeftPoseLeftposeLeftpose_left and PoseRightPoseRightPoseRightposeRightpose_right in sequence.

First, the respective poses in PoseLeftPoseLeftPoseLeftposeLeftpose_left and PoseRightPoseRightPoseRightposeRightpose_right are transformed into the corresponding homogeneous transformation matrices and . is then multiplied with . The resulting matrix is converted into a pose and returned at the corresponding index in tuple PoseComposePoseComposePoseComposeposeComposepose_compose.

If the respective poses in PoseLeftPoseLeftPoseLeftposeLeftpose_left and PoseRightPoseRightPoseRightposeRightpose_right have different types, the default pose type 0 ('Rp+T', 'gba', 'point') is returned. Otherwise, the returned poses have the same types as the poses used for their composition.

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

PoseLeftPoseLeftPoseLeftposeLeftpose_left (input_control)  pose(-array) HPose, HTupleSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Tuple containing the left poses.

PoseRightPoseRightPoseRightposeRightpose_right (input_control)  pose(-array) HPose, HTupleSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Tuple containing the right poses.

PoseComposePoseComposePoseComposeposeComposepose_compose (output_control)  pose(-array) HPose, HTupleSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Tuple containing the returned poses.

Result

pose_composepose_composePoseComposePoseComposepose_compose returns 2 ( H_MSG_TRUE) if all parameters are valid. If necessary, an exception is raised.

Possible Predecessors

read_poseread_poseReadPoseReadPoseread_pose, hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPosehom_mat3d_to_pose, create_posecreate_poseCreatePoseCreatePosecreate_pose, convert_pose_typeconvert_pose_typeConvertPoseTypeConvertPoseTypeconvert_pose_type, pose_invertpose_invertPoseInvertPoseInvertpose_invert

Possible Successors

convert_pose_typeconvert_pose_typeConvertPoseTypeConvertPoseTypeconvert_pose_type

Alternatives

hom_mat3d_composehom_mat3d_composeHomMat3dComposeHomMat3dComposehom_mat3d_compose, dual_quat_composedual_quat_composeDualQuatComposeDualQuatComposedual_quat_compose

See also

pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dpose_to_hom_mat3d, hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPosehom_mat3d_to_pose, hom_mat3d_composehom_mat3d_composeHomMat3dComposeHomMat3dComposehom_mat3d_compose

Module

Foundation