dual_quat_to_screwDualQuatToScrewDualQuatToScrewdual_quat_to_screwT_dual_quat_to_screw
Short description
dual_quat_to_screwDualQuatToScrewDualQuatToScrewdual_quat_to_screwT_dual_quat_to_screw β Convert a unit dual quaternion into a screw.
Signature
dual_quat_to_screw( dual_quaternion DualQuaternion, string ScrewFormat, out point3d.x AxisDirectionX, out point3d.y AxisDirectionY, out point3d.z AxisDirectionZ, out point3d.x AxisMomentOrPointX, out point3d.y AxisMomentOrPointY, out point3d.z AxisMomentOrPointZ, out angle.rad Rotation, out real Translation )void DualQuatToScrew( const HTuple& DualQuaternion, const HTuple& ScrewFormat, HTuple* AxisDirectionX, HTuple* AxisDirectionY, HTuple* AxisDirectionZ, HTuple* AxisMomentOrPointX, HTuple* AxisMomentOrPointY, HTuple* AxisMomentOrPointZ, HTuple* Rotation, HTuple* Translation )static void HOperatorSet.DualQuatToScrew( HTuple dualQuaternion, HTuple screwFormat, out HTuple axisDirectionX, out HTuple axisDirectionY, out HTuple axisDirectionZ, out HTuple axisMomentOrPointX, out HTuple axisMomentOrPointY, out HTuple axisMomentOrPointZ, out HTuple rotation, out HTuple translation )def dual_quat_to_screw( dual_quaternion: Sequence[float], screw_format: str ) -> Tuple[float, float, float, float, float, float, float, float]
Herror T_dual_quat_to_screw( const Htuple DualQuaternion, const Htuple ScrewFormat, Htuple* AxisDirectionX, Htuple* AxisDirectionY, Htuple* AxisDirectionZ, Htuple* AxisMomentOrPointX, Htuple* AxisMomentOrPointY, Htuple* AxisMomentOrPointZ, Htuple* Rotation, Htuple* Translation )
void HDualQuaternion::DualQuatToScrew( const HString& ScrewFormat, double* AxisDirectionX, double* AxisDirectionY, double* AxisDirectionZ, double* AxisMomentOrPointX, double* AxisMomentOrPointY, double* AxisMomentOrPointZ, double* Rotation, double* Translation ) const
void HDualQuaternion::DualQuatToScrew( const char* ScrewFormat, double* AxisDirectionX, double* AxisDirectionY, double* AxisDirectionZ, double* AxisMomentOrPointX, double* AxisMomentOrPointY, double* AxisMomentOrPointZ, double* Rotation, double* Translation ) const
void HDualQuaternion::DualQuatToScrew( const wchar_t* ScrewFormat, double* AxisDirectionX, double* AxisDirectionY, double* AxisDirectionZ, double* AxisMomentOrPointX, double* AxisMomentOrPointY, double* AxisMomentOrPointZ, double* Rotation, double* Translation ) const (Windows only)
void HDualQuaternion.DualQuatToScrew( string screwFormat, out double axisDirectionX, out double axisDirectionY, out double axisDirectionZ, out double axisMomentOrPointX, out double axisMomentOrPointY, out double axisMomentOrPointZ, out double rotation, out double translation )
Description
The operator dual_quat_to_screwDualQuatToScrew converts the input unit dual
quaternion DualQuaterniondualQuaterniondual_quaternion, which represents a 3D rigid
transformation, into the parameters of the corresponding screw.
For a brief introduction to dual quaternions, the used notation, and the
relationship between dual quaternions and screws, see
βSolution Guide III-C - 3D Visionβ.
If ScrewFormatscrewFormatscrew_format is set to 'moment'"moment", these parameters
are returned in the corresponding parameters AxisDirectionXaxisDirectionXaxis_direction_x,
AxisDirectionYaxisDirectionYaxis_direction_y, AxisDirectionZaxisDirectionZaxis_direction_z, AxisMomentOrPointXaxisMomentOrPointXaxis_moment_or_point_x,
AxisMomentOrPointYaxisMomentOrPointYaxis_moment_or_point_y, AxisMomentOrPointZaxisMomentOrPointZaxis_moment_or_point_z, Rotationrotationrotation,
and Translationtranslationtranslation.
For convenience reasons, it is also possible to query the point
on the screw axis that is closest to the origin instead of the moment of the
screw axis. For this, ScrewFormatscrewFormatscrew_format must be set to 'point'"point".
In this case, the coordinates of the point are returned in
AxisMomentOrPointXaxisMomentOrPointXaxis_moment_or_point_x, AxisMomentOrPointYaxisMomentOrPointYaxis_moment_or_point_y, and
AxisMomentOrPointZaxisMomentOrPointZaxis_moment_or_point_z.
Attention
dual_quat_to_screwDualQuatToScrew assumes that the input DualQuaterniondualQuaterniondual_quaternion
is a unit dual quaternion, and hence represents a 3D rigid
transformation. Otherwise the returned screw parameters are not meaningful.
Further note that the screw axis for an identity transformation, i.e.,
no rotation and no translation, is undefined. In this case
\(L\) is arbitrarily set to \((1,0,0)^T\).
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
DualQuaterniondualQuaterniondual_quaternion (input_control) dual_quaternion β (real)HTuple (double)HDualQuaternion, HTuple (double)Sequence[float]Htuple (double)
Unit dual quaternion.
ScrewFormatscrewFormatscrew_format (input_control) string β (string)HTuple (HString)HTuple (string)strHtuple (char*)
Format of the screw parameters.
Default: 'moment'"moment"
List of values: 'moment', 'point'"moment", "point"
AxisDirectionXaxisDirectionXaxis_direction_x (output_control) point3d.x β (real)HTuple (double)HTuple (double)floatHtuple (double)
X component of the direction vector of the screw axis.
AxisDirectionYaxisDirectionYaxis_direction_y (output_control) point3d.y β (real)HTuple (double)HTuple (double)floatHtuple (double)
Y component of the direction vector of the screw axis.
AxisDirectionZaxisDirectionZaxis_direction_z (output_control) point3d.z β (real)HTuple (double)HTuple (double)floatHtuple (double)
Z component of the direction vector of the screw axis.
AxisMomentOrPointXaxisMomentOrPointXaxis_moment_or_point_x (output_control) point3d.x β (real)HTuple (double)HTuple (double)floatHtuple (double)
X component of the moment vector or a point on the
screw axis.
AxisMomentOrPointYaxisMomentOrPointYaxis_moment_or_point_y (output_control) point3d.y β (real)HTuple (double)HTuple (double)floatHtuple (double)
Y component of the moment vector or a point on the
screw axis.
AxisMomentOrPointZaxisMomentOrPointZaxis_moment_or_point_z (output_control) point3d.z β (real)HTuple (double)HTuple (double)floatHtuple (double)
Z component of the moment vector or a point on the
screw axis.
Rotationrotationrotation (output_control) angle.rad β (real)HTuple (double)HTuple (double)floatHtuple (double)
Rotation angle in radians.
Translationtranslationtranslation (output_control) real β (real)HTuple (double)HTuple (double)floatHtuple (double)
Translation.
Combinations with other operators
Combinations
Possible predecessors
dual_quat_composeDualQuatCompose, dual_quat_conjugateDualQuatConjugate, dual_quat_interpolateDualQuatInterpolate
Alternatives
dual_quat_to_poseDualQuatToPose, dual_quat_to_hom_mat3dDualQuatToHomMat3d
See also
pose_to_dual_quatPoseToDualQuat, dual_quat_normalizeDualQuatNormalize, serialize_dual_quatSerializeDualQuat, deserialize_dual_quatDeserializeDualQuat, dual_quat_trans_line_3dDualQuatTransLine3d, dual_quat_trans_point_3dDualQuatTransPoint3d, screw_to_dual_quatScrewToDualQuat
Module
Foundation