dual_quat_interpolate T_dual_quat_interpolate DualQuatInterpolate DualQuatInterpolate (Operator)
Name
dual_quat_interpolate T_dual_quat_interpolate DualQuatInterpolate DualQuatInterpolate
— Interpolate two dual quaternions.
Signature
Description
The operator dual_quat_interpolate dual_quat_interpolate DualQuatInterpolate DualQuatInterpolate DualQuatInterpolate
interpolates the two dual
quaternions DualQuaternionStart DualQuaternionStart DualQuaternionStart DualQuaternionStart dualQuaternionStart
and DualQuaternionEnd DualQuaternionEnd DualQuaternionEnd DualQuaternionEnd dualQuaternionEnd
at the interpolation position InterpPos InterpPos InterpPos InterpPos interpPos
.
For a brief introduction to dual quaternions, the used notation, and the
relationship between dual quaternions and screws, see the documentation of
this chapter (Transformations / Dual Quaternions ).
For interpolations, the position InterpPos InterpPos InterpPos InterpPos interpPos
must lie within the
interval
. However, values outside this interval are also
possible, which then correspond to an extrapolation. For
InterpPos InterpPos InterpPos InterpPos interpPos
=0, the interpolated dual quaternion
DualQuaternionInterpolated DualQuaternionInterpolated DualQuaternionInterpolated DualQuaternionInterpolated dualQuaternionInterpolated
corresponds to
DualQuaternionStart DualQuaternionStart DualQuaternionStart DualQuaternionStart dualQuaternionStart
. For InterpPos InterpPos InterpPos InterpPos interpPos
=1, the
interpolated dual quaternion DualQuaternionInterpolated DualQuaternionInterpolated DualQuaternionInterpolated DualQuaternionInterpolated dualQuaternionInterpolated
corresponds
to DualQuaternionEnd DualQuaternionEnd DualQuaternionEnd DualQuaternionEnd dualQuaternionEnd
.
The interpolation is performed by using screw linear interpolation (ScLERP).
If both DualQuaternionStart DualQuaternionStart DualQuaternionStart DualQuaternionStart dualQuaternionStart
and DualQuaternionEnd DualQuaternionEnd DualQuaternionEnd DualQuaternionEnd dualQuaternionEnd
are unit
dual quaternions, DualQuaternionInterpolated DualQuaternionInterpolated DualQuaternionInterpolated DualQuaternionInterpolated dualQuaternionInterpolated
will be a unit dual
quaternion as well. Hence, dual_quat_interpolate dual_quat_interpolate DualQuatInterpolate DualQuatInterpolate DualQuatInterpolate
can be used to
smoothly interpolate between two 3D rigid transformations.
Note that the interpolation of the rotation parts of
DualQuaternionStart DualQuaternionStart DualQuaternionStart DualQuaternionStart dualQuaternionStart
and DualQuaternionEnd DualQuaternionEnd DualQuaternionEnd DualQuaternionEnd dualQuaternionEnd
is performed
identically to the interpolation of quaternions, i.e., the screw angle
is interpolated linearly (see quat_interpolate quat_interpolate QuatInterpolate QuatInterpolate QuatInterpolate
). The interpolation
of the translation part is done by linearly interpolating the screw
translation.
It is possible to pass a tuple of values for InterpPos InterpPos InterpPos InterpPos interpPos
. In this
case, a tuple of interpolated DualQuaternionInterpolated DualQuaternionInterpolated DualQuaternionInterpolated DualQuaternionInterpolated dualQuaternionInterpolated
is
returned, one for each value in InterpPos InterpPos InterpPos InterpPos interpPos
. This is more
efficient than calling dual_quat_interpolate dual_quat_interpolate DualQuatInterpolate DualQuatInterpolate DualQuatInterpolate
multiple times with
a single value for InterpPos InterpPos InterpPos InterpPos interpPos
.
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
DualQuaternionStart DualQuaternionStart DualQuaternionStart DualQuaternionStart dualQuaternionStart
(input_control) dual_quaternion →
HDualQuaternion , HTuple HTuple Htuple (real) (double ) (double ) (double )
Dual quaternion as the start point of the
interpolation.
DualQuaternionEnd DualQuaternionEnd DualQuaternionEnd DualQuaternionEnd dualQuaternionEnd
(input_control) dual_quaternion →
HDualQuaternion , HTuple HTuple Htuple (real) (double ) (double ) (double )
Dual quaternion as the end point of the interpolation.
InterpPos InterpPos InterpPos InterpPos interpPos
(input_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Interpolation parameter.
Default value: 0.5
Suggested values: 0.0, 0.25, 0.5, 0.75, 1.0
DualQuaternionInterpolated DualQuaternionInterpolated DualQuaternionInterpolated DualQuaternionInterpolated dualQuaternionInterpolated
(output_control) dual_quaternion(-array) →
HDualQuaternion , HTuple HTuple Htuple (real) (double ) (double ) (double )
Interpolated dual quaternion.
Possible Predecessors
pose_to_dual_quat pose_to_dual_quat PoseToDualQuat PoseToDualQuat PoseToDualQuat
,
screw_to_dual_quat screw_to_dual_quat ScrewToDualQuat ScrewToDualQuat ScrewToDualQuat
,
dual_quat_normalize dual_quat_normalize DualQuatNormalize DualQuatNormalize DualQuatNormalize
Possible Successors
dual_quat_to_hom_mat3d dual_quat_to_hom_mat3d DualQuatToHomMat3d DualQuatToHomMat3d DualQuatToHomMat3d
,
dual_quat_to_pose dual_quat_to_pose DualQuatToPose DualQuatToPose DualQuatToPose
,
dual_quat_to_screw dual_quat_to_screw DualQuatToScrew DualQuatToScrew DualQuatToScrew
See also
dual_quat_compose dual_quat_compose DualQuatCompose DualQuatCompose DualQuatCompose
,
dual_quat_conjugate dual_quat_conjugate DualQuatConjugate DualQuatConjugate DualQuatConjugate
,
serialize_dual_quat serialize_dual_quat SerializeDualQuat SerializeDualQuat SerializeDualQuat
,
deserialize_dual_quat deserialize_dual_quat DeserializeDualQuat DeserializeDualQuat DeserializeDualQuat
,
dual_quat_trans_line_3d dual_quat_trans_line_3d DualQuatTransLine3d DualQuatTransLine3d DualQuatTransLine3d
,
quat_interpolate quat_interpolate QuatInterpolate QuatInterpolate QuatInterpolate
Module
Foundation