pose_composeT_pose_composePoseComposePoseComposepose_compose (Operator)
Name
pose_composeT_pose_composePoseComposePoseComposepose_compose
— Combine 3D poses given in two tuples.
Signature
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
H1 and H2.
H1 is then multiplied with
H2. The resulting matrix
H1* H2 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