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
-
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