dual_quat_to_screw T_dual_quat_to_screw DualQuatToScrew DualQuatToScrew dual_quat_to_screw (Operator)
dual_quat_to_screw T_dual_quat_to_screw DualQuatToScrew DualQuatToScrew dual_quat_to_screw
— Convert a unit dual quaternion into a screw.
Signature
void DualQuatToScrew (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)
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 )
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 )
def dual_quat_to_screw (dual_quaternion : Sequence[float], screw_format : str) -> Tuple[float, float, float, float, float, float, float, float]
Description
The operator dual_quat_to_screw dual_quat_to_screw DualQuatToScrew DualQuatToScrew dual_quat_to_screw
converts the input unit dual
quaternion DualQuaternion DualQuaternion DualQuaternion dualQuaternion dual_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 ScrewFormat ScrewFormat ScrewFormat screwFormat screw_format
is set to 'moment' "moment" "moment" "moment" "moment" , these parameters
are returned in the corresponding parameters AxisDirectionX AxisDirectionX AxisDirectionX axisDirectionX axis_direction_x
,
AxisDirectionY AxisDirectionY AxisDirectionY axisDirectionY axis_direction_y
, AxisDirectionZ AxisDirectionZ AxisDirectionZ axisDirectionZ axis_direction_z
, AxisMomentOrPointX AxisMomentOrPointX AxisMomentOrPointX axisMomentOrPointX axis_moment_or_point_x
,
AxisMomentOrPointY AxisMomentOrPointY AxisMomentOrPointY axisMomentOrPointY axis_moment_or_point_y
, AxisMomentOrPointZ AxisMomentOrPointZ AxisMomentOrPointZ axisMomentOrPointZ axis_moment_or_point_z
, Rotation Rotation Rotation rotation rotation
,
and Translation Translation Translation translation translation
.
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, ScrewFormat ScrewFormat ScrewFormat screwFormat screw_format
must be set to 'point' "point" "point" "point" "point" .
In this case, the coordinates of the point are returned in
AxisMomentOrPointX AxisMomentOrPointX AxisMomentOrPointX axisMomentOrPointX axis_moment_or_point_x
, AxisMomentOrPointY AxisMomentOrPointY AxisMomentOrPointY axisMomentOrPointY axis_moment_or_point_y
, and
AxisMomentOrPointZ AxisMomentOrPointZ AxisMomentOrPointZ axisMomentOrPointZ axis_moment_or_point_z
.
Attention
dual_quat_to_screw dual_quat_to_screw DualQuatToScrew DualQuatToScrew dual_quat_to_screw
assumes that the input DualQuaternion DualQuaternion DualQuaternion dualQuaternion dual_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
is arbitrarily set to
.
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
DualQuaternion DualQuaternion DualQuaternion dualQuaternion dual_quaternion
(input_control) dual_quaternion →
HDualQuaternion , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Unit dual quaternion.
ScrewFormat ScrewFormat ScrewFormat screwFormat screw_format
(input_control) string →
HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Format of the screw parameters.
Default:
'moment'
"moment"
"moment"
"moment"
"moment"
List of values:
'moment' "moment" "moment" "moment" "moment" , 'point' "point" "point" "point" "point"
AxisDirectionX AxisDirectionX AxisDirectionX axisDirectionX axis_direction_x
(output_control) point3d.x →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
X component of the direction vector of the screw axis.
AxisDirectionY AxisDirectionY AxisDirectionY axisDirectionY axis_direction_y
(output_control) point3d.y →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
Y component of the direction vector of the screw axis.
AxisDirectionZ AxisDirectionZ AxisDirectionZ axisDirectionZ axis_direction_z
(output_control) point3d.z →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
Z component of the direction vector of the screw axis.
AxisMomentOrPointX AxisMomentOrPointX AxisMomentOrPointX axisMomentOrPointX axis_moment_or_point_x
(output_control) point3d.x →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
X component of the moment vector or a point on the
screw axis.
AxisMomentOrPointY AxisMomentOrPointY AxisMomentOrPointY axisMomentOrPointY axis_moment_or_point_y
(output_control) point3d.y →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
Y component of the moment vector or a point on the
screw axis.
AxisMomentOrPointZ AxisMomentOrPointZ AxisMomentOrPointZ axisMomentOrPointZ axis_moment_or_point_z
(output_control) point3d.z →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
Z component of the moment vector or a point on the
screw axis.
Rotation Rotation Rotation rotation rotation
(output_control) angle.rad →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
Rotation angle in radians.
Translation Translation Translation translation translation
(output_control) real →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
Translation.
Possible Predecessors
dual_quat_compose dual_quat_compose DualQuatCompose DualQuatCompose dual_quat_compose
,
dual_quat_conjugate dual_quat_conjugate DualQuatConjugate DualQuatConjugate dual_quat_conjugate
,
dual_quat_interpolate dual_quat_interpolate DualQuatInterpolate DualQuatInterpolate dual_quat_interpolate
Alternatives
dual_quat_to_pose dual_quat_to_pose DualQuatToPose DualQuatToPose dual_quat_to_pose
,
dual_quat_to_hom_mat3d dual_quat_to_hom_mat3d DualQuatToHomMat3d DualQuatToHomMat3d dual_quat_to_hom_mat3d
See also
pose_to_dual_quat pose_to_dual_quat PoseToDualQuat PoseToDualQuat pose_to_dual_quat
,
dual_quat_normalize dual_quat_normalize DualQuatNormalize DualQuatNormalize dual_quat_normalize
,
serialize_dual_quat serialize_dual_quat SerializeDualQuat SerializeDualQuat serialize_dual_quat
,
deserialize_dual_quat deserialize_dual_quat DeserializeDualQuat DeserializeDualQuat deserialize_dual_quat
,
dual_quat_trans_line_3d dual_quat_trans_line_3d DualQuatTransLine3d DualQuatTransLine3d dual_quat_trans_line_3d
,
dual_quat_trans_point_3d dual_quat_trans_point_3d DualQuatTransPoint3d DualQuatTransPoint3d dual_quat_trans_point_3d
,
screw_to_dual_quat screw_to_dual_quat ScrewToDualQuat ScrewToDualQuat screw_to_dual_quat
Module
Foundation