screw_to_dual_quat T_screw_to_dual_quat ScrewToDualQuat ScrewToDualQuat screw_to_dual_quat (Operator)
screw_to_dual_quat T_screw_to_dual_quat ScrewToDualQuat ScrewToDualQuat screw_to_dual_quat
— Convert a screw into a dual quaternion.
Signature
void ScrewToDualQuat (const HTuple& ScrewFormat , const HTuple& AxisDirectionX , const HTuple& AxisDirectionY , const HTuple& AxisDirectionZ , const HTuple& AxisMomentOrPointX , const HTuple& AxisMomentOrPointY , const HTuple& AxisMomentOrPointZ , const HTuple& Rotation , const HTuple& Translation , HTuple* DualQuaternion )
void HDualQuaternion ::HDualQuaternion (const HString& ScrewFormat , const HTuple& AxisDirectionX , const HTuple& AxisDirectionY , const HTuple& AxisDirectionZ , const HTuple& AxisMomentOrPointX , const HTuple& AxisMomentOrPointY , const HTuple& AxisMomentOrPointZ , const HTuple& Rotation , const HTuple& Translation )
void HDualQuaternion ::HDualQuaternion (const HString& ScrewFormat , double AxisDirectionX , double AxisDirectionY , double AxisDirectionZ , double AxisMomentOrPointX , double AxisMomentOrPointY , double AxisMomentOrPointZ , double Rotation , double Translation )
void HDualQuaternion ::HDualQuaternion (const char* ScrewFormat , double AxisDirectionX , double AxisDirectionY , double AxisDirectionZ , double AxisMomentOrPointX , double AxisMomentOrPointY , double AxisMomentOrPointZ , double Rotation , double Translation )
void HDualQuaternion ::HDualQuaternion (const wchar_t* ScrewFormat , double AxisDirectionX , double AxisDirectionY , double AxisDirectionZ , double AxisMomentOrPointX , double AxisMomentOrPointY , double AxisMomentOrPointZ , double Rotation , double Translation )
(
Windows only)
void HDualQuaternion ::ScrewToDualQuat (const HString& ScrewFormat , const HTuple& AxisDirectionX , const HTuple& AxisDirectionY , const HTuple& AxisDirectionZ , const HTuple& AxisMomentOrPointX , const HTuple& AxisMomentOrPointY , const HTuple& AxisMomentOrPointZ , const HTuple& Rotation , const HTuple& Translation )
void HDualQuaternion ::ScrewToDualQuat (const HString& ScrewFormat , double AxisDirectionX , double AxisDirectionY , double AxisDirectionZ , double AxisMomentOrPointX , double AxisMomentOrPointY , double AxisMomentOrPointZ , double Rotation , double Translation )
void HDualQuaternion ::ScrewToDualQuat (const char* ScrewFormat , double AxisDirectionX , double AxisDirectionY , double AxisDirectionZ , double AxisMomentOrPointX , double AxisMomentOrPointY , double AxisMomentOrPointZ , double Rotation , double Translation )
void HDualQuaternion ::ScrewToDualQuat (const wchar_t* ScrewFormat , double AxisDirectionX , double AxisDirectionY , double AxisDirectionZ , double AxisMomentOrPointX , double AxisMomentOrPointY , double AxisMomentOrPointZ , double Rotation , double Translation )
(
Windows only)
static void HOperatorSet .ScrewToDualQuat (HTuple screwFormat , HTuple axisDirectionX , HTuple axisDirectionY , HTuple axisDirectionZ , HTuple axisMomentOrPointX , HTuple axisMomentOrPointY , HTuple axisMomentOrPointZ , HTuple rotation , HTuple translation , out HTuple dualQuaternion )
public HDualQuaternion (string screwFormat , HTuple axisDirectionX , HTuple axisDirectionY , HTuple axisDirectionZ , HTuple axisMomentOrPointX , HTuple axisMomentOrPointY , HTuple axisMomentOrPointZ , HTuple rotation , HTuple translation )
public HDualQuaternion (string screwFormat , double axisDirectionX , double axisDirectionY , double axisDirectionZ , double axisMomentOrPointX , double axisMomentOrPointY , double axisMomentOrPointZ , double rotation , double translation )
void HDualQuaternion .ScrewToDualQuat (string screwFormat , HTuple axisDirectionX , HTuple axisDirectionY , HTuple axisDirectionZ , HTuple axisMomentOrPointX , HTuple axisMomentOrPointY , HTuple axisMomentOrPointZ , HTuple rotation , HTuple translation )
void HDualQuaternion .ScrewToDualQuat (string screwFormat , double axisDirectionX , double axisDirectionY , double axisDirectionZ , double axisMomentOrPointX , double axisMomentOrPointY , double axisMomentOrPointZ , double rotation , double translation )
def screw_to_dual_quat (screw_format : str, axis_direction_x : Union[float, int], axis_direction_y : Union[float, int], axis_direction_z : Union[float, int], axis_moment_or_point_x : Union[float, int], axis_moment_or_point_y : Union[float, int], axis_moment_or_point_z : Union[float, int], rotation : Union[float, int], translation : Union[float, int]) -> Sequence[Union[float, int]]
Description
The operator screw_to_dual_quat screw_to_dual_quat ScrewToDualQuat ScrewToDualQuat screw_to_dual_quat
converts the screw parameters
to the unit dual quaternion DualQuaternion DualQuaternion DualQuaternion dualQuaternion dual_quaternion
, which represents a 3D
rigid transformation.
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”
.
A screw is described by the direction of the screw axis
with
, the moment of the screw axis
with
,
the screw angle
, and the screw translation
.
If ScrewFormat ScrewFormat ScrewFormat screwFormat screw_format
is set to 'moment' "moment" "moment" "moment" "moment" , these parameters
can be passed 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 specify an arbitrary point
on the screw axis 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" and the
coordinates of the points must be passed 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
screw_to_dual_quat screw_to_dual_quat ScrewToDualQuat ScrewToDualQuat screw_to_dual_quat
assumes that the direction vector of the screw
axis has length 1, i.e.,
.
Otherwise the returned dual quaternion is not meaningful.
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
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
(input_control) point3d.x →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
X component of the direction vector of the screw axis.
AxisDirectionY AxisDirectionY AxisDirectionY axisDirectionY axis_direction_y
(input_control) point3d.y →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Y component of the direction vector of the screw axis.
AxisDirectionZ AxisDirectionZ AxisDirectionZ axisDirectionZ axis_direction_z
(input_control) point3d.z →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Z component of the direction vector of the screw axis.
AxisMomentOrPointX AxisMomentOrPointX AxisMomentOrPointX axisMomentOrPointX axis_moment_or_point_x
(input_control) point3d.x →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
X component of the moment vector or a point on the
screw axis.
AxisMomentOrPointY AxisMomentOrPointY AxisMomentOrPointY axisMomentOrPointY axis_moment_or_point_y
(input_control) point3d.y →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Y component of the moment vector or a point on the
screw axis.
AxisMomentOrPointZ AxisMomentOrPointZ AxisMomentOrPointZ axisMomentOrPointZ axis_moment_or_point_z
(input_control) point3d.z →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Z component of the moment vector or a point on the
screw axis.
Rotation Rotation Rotation rotation rotation
(input_control) angle.rad →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Rotation angle in radians.
Translation Translation Translation translation translation
(input_control) real →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Translation.
DualQuaternion DualQuaternion DualQuaternion dualQuaternion dual_quaternion
(output_control) dual_quaternion →
HDualQuaternion , HTuple Sequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Dual quaternion.
Possible Successors
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
pose_to_dual_quat pose_to_dual_quat PoseToDualQuat PoseToDualQuat pose_to_dual_quat
See also
dual_quat_to_hom_mat3d dual_quat_to_hom_mat3d DualQuatToHomMat3d DualQuatToHomMat3d dual_quat_to_hom_mat3d
,
pose_to_dual_quat pose_to_dual_quat PoseToDualQuat PoseToDualQuat pose_to_dual_quat
,
dual_quat_to_screw dual_quat_to_screw DualQuatToScrew DualQuatToScrew dual_quat_to_screw
,
dual_quat_to_pose dual_quat_to_pose DualQuatToPose DualQuatToPose dual_quat_to_pose
,
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
,
axis_angle_to_quat axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat axis_angle_to_quat
Module
Foundation