Skip to content

dual_quat_trans_point_3dDualQuatTransPoint3dDualQuatTransPoint3ddual_quat_trans_point_3dT_dual_quat_trans_point_3d🔗

Short description🔗

dual_quat_trans_point_3dDualQuatTransPoint3dDualQuatTransPoint3ddual_quat_trans_point_3dT_dual_quat_trans_point_3d — Transform a 3D point with a unit dual quaternion.

Signature🔗

dual_quat_trans_point_3d( dual_quaternion DualQuaternion, point3d.x Px, point3d.y Py, point3d.z Pz, out point3d.x Tx, out point3d.y Ty, out point3d.z Tz )void DualQuatTransPoint3d( const HTuple& DualQuaternion, const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* Tx, HTuple* Ty, HTuple* Tz )static void HOperatorSet.DualQuatTransPoint3d( HTuple dualQuaternion, HTuple px, HTuple py, HTuple pz, out HTuple tx, out HTuple ty, out HTuple tz )def dual_quat_trans_point_3d( dual_quaternion: Sequence[Union[float, int]], px: MaybeSequence[Union[float, int]], py: MaybeSequence[Union[float, int]], pz: MaybeSequence[Union[float, int]] ) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]

def dual_quat_trans_point_3d_s( dual_quaternion: Sequence[Union[float, int]], px: MaybeSequence[Union[float, int]], py: MaybeSequence[Union[float, int]], pz: MaybeSequence[Union[float, int]] ) -> Tuple[float, float, float]Herror T_dual_quat_trans_point_3d( const Htuple DualQuaternion, const Htuple Px, const Htuple Py, const Htuple Pz, Htuple* Tx, Htuple* Ty, Htuple* Tz )

HTuple HDualQuaternion::DualQuatTransPoint3d( const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* Ty, HTuple* Tz ) const

double HDualQuaternion::DualQuatTransPoint3d( double Px, double Py, double Pz, double* Ty, double* Tz ) const

HTuple HDualQuaternion.DualQuatTransPoint3d( HTuple px, HTuple py, HTuple pz, out HTuple ty, out HTuple tz )

double HDualQuaternion.DualQuatTransPoint3d( double px, double py, double pz, out double ty, out double tz )

Description🔗

The operator dual_quat_trans_point_3dDualQuatTransPoint3d transforms a 3D point \((\textrm{Px}, \textrm{Py}, \textrm{Pz})\) by a 3D rigid transformation that is given by the unit dual quaternion DualQuaterniondualQuaterniondual_quaternion and returns the transformed 3D point in \((\textrm{Tx}, \textrm{Ty}, \textrm{Tz})\).

For a brief introduction to dual quaternions, see ``Solution Guide III-C - 3D Vision''.

Attention🔗

dual_quat_trans_point_3dDualQuatTransPoint3d returns meaningful results only if DualQuaterniondualQuaterniondual_quaternion is a unit dual quaternion.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Automatically parallelized on internal data level.

Parameters🔗

DualQuaterniondualQuaterniondual_quaternion (input_control) dual_quaternion → (real / integer)HTuple (double / Hlong)HDualQuaternion, HTuple (double / int / long)Sequence[Union[float, int]]Htuple (double / Hlong)

Unit dual quaternion representing the transformation.

Pxpxpx (input_control) point3d.x(-array) → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)MaybeSequence[Union[float, int]]Htuple (double / Hlong)

Input point(s) (x coordinate).

Default: 6464
Suggested values: 0, 16, 32, 64, 128, 256, 512, 10240, 16, 32, 64, 128, 256, 512, 1024

Pypypy (input_control) point3d.y(-array) → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)MaybeSequence[Union[float, int]]Htuple (double / Hlong)

Input point(s) (y coordinate).

Default: 6464
Suggested values: 0, 16, 32, 64, 128, 256, 512, 10240, 16, 32, 64, 128, 256, 512, 1024

Pzpzpz (input_control) point3d.z(-array) → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)MaybeSequence[Union[float, int]]Htuple (double / Hlong)

Input point(s) (z coordinate).

Default: 6464
Suggested values: 0, 16, 32, 64, 128, 256, 512, 10240, 16, 32, 64, 128, 256, 512, 1024

Txtxtx (output_control) point3d.x(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Output point(s) (x coordinate).

Tytyty (output_control) point3d.y(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Output point(s) (y coordinate).

Tztztz (output_control) point3d.z(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Output point(s) (z coordinate).

Example🔗

(HDevelop)


* dual_quat_trans_point_3d (DualQuat, Px, Py, Pz, Tx, Ty, Tz)
* is equivalent to the following code:
dual_quat_to_hom_mat3d (DualQuat, HomMat3D)
affine_trans_point_3d (HomMat3D, Px, Py, Pz, Tx, Ty, Tz)

Combinations with other operators🔗

Combinations

Possible predecessors

dual_quat_composeDualQuatCompose, pose_to_dual_quatPoseToDualQuat, screw_to_dual_quatScrewToDualQuat

Alternatives

dual_quat_to_hom_mat3dDualQuatToHomMat3d, affine_trans_point_3dAffineTransPoint3d

See also

dual_quat_to_poseDualQuatToPose, dual_quat_normalizeDualQuatNormalize, serialize_dual_quatSerializeDualQuat, deserialize_dual_quatDeserializeDualQuat, quat_rotate_point_3dQuatRotatePoint3d, dual_quat_trans_line_3dDualQuatTransLine3d

Module🔗

Foundation