dual_quat_trans_point_3dT_dual_quat_trans_point_3dDualQuatTransPoint3dDualQuatTransPoint3ddual_quat_trans_point_3d (Operator)
Name
dual_quat_trans_point_3dT_dual_quat_trans_point_3dDualQuatTransPoint3dDualQuatTransPoint3ddual_quat_trans_point_3d
— Transform a 3D point with a unit dual quaternion.
Signature
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)
void DualQuatTransPoint3d(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
static void HOperatorSet.DualQuatTransPoint3d(HTuple dualQuaternion, HTuple px, HTuple py, HTuple pz, out HTuple tx, out HTuple ty, out HTuple tz)
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)
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]
Description
The operator dual_quat_trans_point_3ddual_quat_trans_point_3dDualQuatTransPoint3dDualQuatTransPoint3dDualQuatTransPoint3ddual_quat_trans_point_3d
transforms a 3D point
(PxPxPxPxpxpx
, PyPyPyPypypy
, PzPzPzPzpzpz
) by a 3D rigid
transformation that is given by the unit dual quaternion
DualQuaternionDualQuaternionDualQuaternionDualQuaterniondualQuaterniondual_quaternion
and returns the transformed 3D point in
(TxTxTxTxtxtx
, TyTyTyTytyty
, TzTzTzTztztz
).
For a brief introduction to dual quaternions, see “Solution
Guide III-C - 3D Vision”
.
Attention
dual_quat_trans_point_3ddual_quat_trans_point_3dDualQuatTransPoint3dDualQuatTransPoint3dDualQuatTransPoint3ddual_quat_trans_point_3d
returns meaningful results only if
DualQuaternionDualQuaternionDualQuaternionDualQuaterniondualQuaterniondual_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
DualQuaternionDualQuaternionDualQuaternionDualQuaterniondualQuaterniondual_quaternion
(input_control) dual_quaternion →
HDualQuaternion, HTupleSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Unit dual quaternion representing the transformation.
PxPxPxPxpxpx
(input_control) point3d.x(-array) →
HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point(s) (x coordinate).
Default value: 64
Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024
PyPyPyPypypy
(input_control) point3d.y(-array) →
HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point(s) (y coordinate).
Default value: 64
Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024
PzPzPzPzpzpz
(input_control) point3d.z(-array) →
HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point(s) (z coordinate).
Default value: 64
Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024
TxTxTxTxtxtx
(output_control) point3d.x(-array) →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Output point(s) (x coordinate).
TyTyTyTytyty
(output_control) point3d.y(-array) →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Output point(s) (y coordinate).
TzTzTzTztztz
(output_control) point3d.z(-array) →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (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)
Possible Predecessors
dual_quat_composedual_quat_composeDualQuatComposeDualQuatComposeDualQuatComposedual_quat_compose
,
pose_to_dual_quatpose_to_dual_quatPoseToDualQuatPoseToDualQuatPoseToDualQuatpose_to_dual_quat
,
screw_to_dual_quatscrew_to_dual_quatScrewToDualQuatScrewToDualQuatScrewToDualQuatscrew_to_dual_quat
Alternatives
dual_quat_to_hom_mat3ddual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3dDualQuatToHomMat3ddual_quat_to_hom_mat3d
,
affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d
See also
dual_quat_to_posedual_quat_to_poseDualQuatToPoseDualQuatToPoseDualQuatToPosedual_quat_to_pose
,
dual_quat_normalizedual_quat_normalizeDualQuatNormalizeDualQuatNormalizeDualQuatNormalizedual_quat_normalize
,
serialize_dual_quatserialize_dual_quatSerializeDualQuatSerializeDualQuatSerializeDualQuatserialize_dual_quat
,
deserialize_dual_quatdeserialize_dual_quatDeserializeDualQuatDeserializeDualQuatDeserializeDualQuatdeserialize_dual_quat
,
quat_rotate_point_3dquat_rotate_point_3dQuatRotatePoint3dQuatRotatePoint3dQuatRotatePoint3dquat_rotate_point_3d
,
dual_quat_trans_line_3ddual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3dDualQuatTransLine3ddual_quat_trans_line_3d
Module
Foundation