Name
dual_quat_interpolate T_dual_quat_interpolate DualQuatInterpolate DualQuatInterpolate — Interpolate two dual quaternions.
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 .
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Processed without parallelization.
Dual quaternion as the start point of the
interpolation.
Dual quaternion as the end point of the interpolation.
Interpolation parameter.
Default value: 0.5
Suggested values: 0.0, 0.25, 0.5, 0.75, 1.0
Interpolated dual quaternion.
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
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
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
Foundation