Operator Reference

dual_quat_to_hom_mat3dT_dual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3ddual_quat_to_hom_mat3d (Operator)

dual_quat_to_hom_mat3dT_dual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3ddual_quat_to_hom_mat3d — Convert a unit dual quaternion into a homogeneous transformation matrix.

Signature

dual_quat_to_hom_mat3d( : : DualQuaternion : HomMat3D)

Herror T_dual_quat_to_hom_mat3d(const Htuple DualQuaternion, Htuple* HomMat3D)

void DualQuatToHomMat3d(const HTuple& DualQuaternion, HTuple* HomMat3D)

HHomMat3D HDualQuaternion::DualQuatToHomMat3d() const

static void HOperatorSet.DualQuatToHomMat3d(HTuple dualQuaternion, out HTuple homMat3D)

HHomMat3D HDualQuaternion.DualQuatToHomMat3d()

def dual_quat_to_hom_mat3d(dual_quaternion: Sequence[float]) -> Sequence[float]

Description

The operator dual_quat_to_hom_mat3ddual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3ddual_quat_to_hom_mat3d converts a unit dual quaternion DualQuaternionDualQuaternionDualQuaterniondualQuaterniondual_quaternion, which represents a 3D rigid transformation, into its corresponding homogeneous transformation matrix HomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d.

For a brief introduction to dual quaternions, the used notation, and the relationship between dual quaternions and screws, see “Solution Guide III-C - 3D Vision”.

The rotation part of HomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d is computed from the real part of the dual quaternion, as described in quat_to_hom_mat3dquat_to_hom_mat3dQuatToHomMat3dQuatToHomMat3dquat_to_hom_mat3d. The translation part of HomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d is computed from the real and dual part of : where is the vector part of the quaternion .

Attention

HomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d will only be a valid rigid transformation matrix if DualQuaternionDualQuaternionDualQuaterniondualQuaterniondual_quaternion is a unit dual quaternion.

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

DualQuaternionDualQuaternionDualQuaterniondualQuaterniondual_quaternion (input_control)  dual_quaternion HDualQuaternion, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Unit dual quaternion.

HomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d (output_control)  hom_mat3d HHomMat3D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Transformation matrix.

Possible Predecessors

screw_to_dual_quatscrew_to_dual_quatScrewToDualQuatScrewToDualQuatscrew_to_dual_quat, dual_quat_interpolatedual_quat_interpolateDualQuatInterpolateDualQuatInterpolatedual_quat_interpolate, dual_quat_composedual_quat_composeDualQuatComposeDualQuatComposedual_quat_compose, dual_quat_normalizedual_quat_normalizeDualQuatNormalizeDualQuatNormalizedual_quat_normalize

Possible Successors

affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d

Alternatives

dual_quat_to_posedual_quat_to_poseDualQuatToPoseDualQuatToPosedual_quat_to_pose, dual_quat_to_screwdual_quat_to_screwDualQuatToScrewDualQuatToScrewdual_quat_to_screw

See also

dual_quat_composedual_quat_composeDualQuatComposeDualQuatComposedual_quat_compose, pose_to_dual_quatpose_to_dual_quatPoseToDualQuatPoseToDualQuatpose_to_dual_quat, dual_quat_conjugatedual_quat_conjugateDualQuatConjugateDualQuatConjugatedual_quat_conjugate, serialize_dual_quatserialize_dual_quatSerializeDualQuatSerializeDualQuatserialize_dual_quat, deserialize_dual_quatdeserialize_dual_quatDeserializeDualQuatDeserializeDualQuatdeserialize_dual_quat, dual_quat_trans_line_3ddual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3ddual_quat_trans_line_3d, dual_quat_trans_point_3ddual_quat_trans_point_3dDualQuatTransPoint3dDualQuatTransPoint3ddual_quat_trans_point_3d, quat_to_hom_mat3dquat_to_hom_mat3dQuatToHomMat3dQuatToHomMat3dquat_to_hom_mat3d

Module

Foundation