KlassenKlassenKlassenKlassen | | | | Operatoren

pose_composeT_pose_composePoseComposepose_composePoseComposePoseCompose (Operator)

Name

pose_composeT_pose_composePoseComposepose_composePoseComposePoseCompose — Komposition von 3D-Posen aus zwei Tupeln.

Signatur

pose_compose( : : PoseLeft, PoseRight : PoseCompose)

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

Herror 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

void HOperatorSetX.PoseCompose(
[in] VARIANT PoseLeft, [in] VARIANT PoseRight, [out] VARIANT* PoseCompose)

VARIANT HPoseX.PoseCompose(
[in] VARIANT PoseLeft, [in] VARIANT PoseRight)

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

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

HPose HPose.PoseCompose(HPose poseRight)

Beschreibung

pose_composepose_composePoseComposepose_composePoseComposePoseCompose verbindet jeweils zwei Posen aus den Eingabetupeln PoseLeftPoseLeftPoseLeftPoseLeftPoseLeftposeLeft und PoseRightPoseRightPoseRightPoseRightPoseRightposeRight. Falls beide Tupel dieselbe Anzahl Posen enthalten, werden die entsprechenden Posen der beiden Tupel multipliziert. Ansonsten darf entweder PoseLeftPoseLeftPoseLeftPoseLeftPoseLeftposeLeft oder PoseRightPoseRightPoseRightPoseRightPoseRightposeRight nur eine Pose enthalten. In diesem Fall wird die Multiplikation für jede Pose des längeren Tupels mit der einzigen Pose des anderen Tupels ausgeführt. Für jede Komposition sind die Posen als Transformationen von Koordinatensystemen zu verstehen. Jede Pose in Ausgabetupel PoseComposePoseComposePoseComposePoseComposePoseComposeposeCompose ist folglich das Ergebnis der sequentiellen Anwendung der entsprechenden Posen der Eingabetupel PoseLeftPoseLeftPoseLeftPoseLeftPoseLeftposeLeft und PoseRightPoseRightPoseRightPoseRightPoseRightposeRight.

Dazu werden zunächst die zu verbindenden Posen aus PoseLeftPoseLeftPoseLeftPoseLeftPoseLeftposeLeft und PoseRightPoseRightPoseRightPoseRightPoseRightposeRight in die entsprechenden homogenen Transformationsmatrizen und umgewandelt. Dann wird mit multipliziert. Die resultierende Matrix wird dann in eine Pose umgerechnet und an entsprechender Stelle im Ausgabetupel PoseComposePoseComposePoseComposePoseComposePoseComposeposeCompose zurückgegeben.

Falls die zu verbindenden Posen aus PoseLeftPoseLeftPoseLeftPoseLeftPoseLeftposeLeft und PoseRightPoseRightPoseRightPoseRightPoseRightposeRight verschiedene Posetypen haben, hat die Ergebnispose den Type 0 ('Rp+T', 'gba', 'point'). Andernfalls hat die Ergebnispose den gleichen Typ wie die Eingangsposen.

Parallelisierung

Parameter

PoseLeftPoseLeftPoseLeftPoseLeftPoseLeftposeLeft (input_control)  pose(-array) HPose, HTupleHTupleHTupleHPoseX, VARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Tupel der linken Posen.

PoseRightPoseRightPoseRightPoseRightPoseRightposeRight (input_control)  pose(-array) HPose, HTupleHTupleHTupleHPoseX, VARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Tupel der rechten Posen.

PoseComposePoseComposePoseComposePoseComposePoseComposeposeCompose (output_control)  pose(-array) HPose, HTupleHTupleHTupleHPoseX, VARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Tupel der Ausgabeposen.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert pose_composepose_composePoseComposepose_composePoseComposePoseCompose den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Exception-Behandlung durchgeführt.

Vorgänger

read_poseread_poseReadPoseread_poseReadPoseReadPose, hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPosehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPose, create_posecreate_poseCreatePosecreate_poseCreatePoseCreatePose, convert_pose_typeconvert_pose_typeConvertPoseTypeconvert_pose_typeConvertPoseTypeConvertPoseType, pose_invertpose_invertPoseInvertpose_invertPoseInvertPoseInvert

Nachfolger

convert_pose_typeconvert_pose_typeConvertPoseTypeconvert_pose_typeConvertPoseTypeConvertPoseType

Alternativen

hom_mat3d_composehom_mat3d_composeHomMat3dComposehom_mat3d_composeHomMat3dComposeHomMat3dCompose, dual_quat_composedual_quat_composeDualQuatComposedual_quat_composeDualQuatComposeDualQuatCompose

Siehe auch

pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3d, hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPosehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPose, hom_mat3d_composehom_mat3d_composeHomMat3dComposehom_mat3d_composeHomMat3dComposeHomMat3dCompose

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren