Operator Reference

screw_to_dual_quatT_screw_to_dual_quatScrewToDualQuatScrewToDualQuatscrew_to_dual_quat (Operator)

screw_to_dual_quatT_screw_to_dual_quatScrewToDualQuatScrewToDualQuatscrew_to_dual_quat — Convert a screw into a dual quaternion.

Signature

Herror T_screw_to_dual_quat(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 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_quatscrew_to_dual_quatScrewToDualQuatScrewToDualQuatscrew_to_dual_quat converts the screw parameters to the unit dual quaternion DualQuaternionDualQuaternionDualQuaterniondualQuaterniondual_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 ScrewFormatScrewFormatScrewFormatscrewFormatscrew_format is set to 'moment'"moment""moment""moment""moment", these parameters can be passed in the corresponding parameters AxisDirectionXAxisDirectionXAxisDirectionXaxisDirectionXaxis_direction_x, AxisDirectionYAxisDirectionYAxisDirectionYaxisDirectionYaxis_direction_y, AxisDirectionZAxisDirectionZAxisDirectionZaxisDirectionZaxis_direction_z, AxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXaxisMomentOrPointXaxis_moment_or_point_x, AxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYaxisMomentOrPointYaxis_moment_or_point_y, AxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZaxisMomentOrPointZaxis_moment_or_point_z, RotationRotationRotationrotationrotation, and TranslationTranslationTranslationtranslationtranslation.

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, ScrewFormatScrewFormatScrewFormatscrewFormatscrew_format must be set to 'point'"point""point""point""point" and the coordinates of the points must be passed in AxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXaxisMomentOrPointXaxis_moment_or_point_x, AxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYaxisMomentOrPointYaxis_moment_or_point_y, and AxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZaxisMomentOrPointZaxis_moment_or_point_z.

Attention

screw_to_dual_quatscrew_to_dual_quatScrewToDualQuatScrewToDualQuatscrew_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

ScrewFormatScrewFormatScrewFormatscrewFormatscrew_format (input_control)  string HTuplestrHTupleHtuple (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"

AxisDirectionXAxisDirectionXAxisDirectionXaxisDirectionXaxis_direction_x (input_control)  point3d.x HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

X component of the direction vector of the screw axis.

AxisDirectionYAxisDirectionYAxisDirectionYaxisDirectionYaxis_direction_y (input_control)  point3d.y HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Y component of the direction vector of the screw axis.

AxisDirectionZAxisDirectionZAxisDirectionZaxisDirectionZaxis_direction_z (input_control)  point3d.z HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Z component of the direction vector of the screw axis.

AxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXaxisMomentOrPointXaxis_moment_or_point_x (input_control)  point3d.x HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

X component of the moment vector or a point on the screw axis.

AxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYaxisMomentOrPointYaxis_moment_or_point_y (input_control)  point3d.y HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Y component of the moment vector or a point on the screw axis.

AxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZaxisMomentOrPointZaxis_moment_or_point_z (input_control)  point3d.z HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Z component of the moment vector or a point on the screw axis.

RotationRotationRotationrotationrotation (input_control)  angle.rad HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Rotation angle in radians.

TranslationTranslationTranslationtranslationtranslation (input_control)  real HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Translation.

DualQuaternionDualQuaternionDualQuaterniondualQuaterniondual_quaternion (output_control)  dual_quaternion HDualQuaternion, HTupleSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Dual quaternion.

Possible Successors

dual_quat_composedual_quat_composeDualQuatComposeDualQuatComposedual_quat_compose, dual_quat_conjugatedual_quat_conjugateDualQuatConjugateDualQuatConjugatedual_quat_conjugate, dual_quat_interpolatedual_quat_interpolateDualQuatInterpolateDualQuatInterpolatedual_quat_interpolate

Alternatives

pose_to_dual_quatpose_to_dual_quatPoseToDualQuatPoseToDualQuatpose_to_dual_quat

See also

dual_quat_to_hom_mat3ddual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3ddual_quat_to_hom_mat3d, pose_to_dual_quatpose_to_dual_quatPoseToDualQuatPoseToDualQuatpose_to_dual_quat, dual_quat_to_screwdual_quat_to_screwDualQuatToScrewDualQuatToScrewdual_quat_to_screw, dual_quat_to_posedual_quat_to_poseDualQuatToPoseDualQuatToPosedual_quat_to_pose, dual_quat_normalizedual_quat_normalizeDualQuatNormalizeDualQuatNormalizedual_quat_normalize, serialize_dual_quatserialize_dual_quatSerializeDualQuatSerializeDualQuatserialize_dual_quat, deserialize_dual_quatdeserialize_dual_quatDeserializeDualQuatDeserializeDualQuatdeserialize_dual_quat, dual_quat_trans_line_3ddual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3ddual_quat_trans_line_3d, dual_quat_trans_point_3ddual_quat_trans_point_3dDualQuatTransPoint3dDualQuatTransPoint3ddual_quat_trans_point_3d, axis_angle_to_quataxis_angle_to_quatAxisAngleToQuatAxisAngleToQuataxis_angle_to_quat

Module

Foundation