ClassesClassesClassesClasses | | | | Operators

dual_quat_to_screwT_dual_quat_to_screwDualQuatToScrewdual_quat_to_screwDualQuatToScrewDualQuatToScrew (Operator)

Name

dual_quat_to_screwT_dual_quat_to_screwDualQuatToScrewdual_quat_to_screwDualQuatToScrewDualQuatToScrew — Convert a unit dual quaternion into a screw.

Signature

dual_quat_to_screw( : : DualQuaternion, ScrewFormat : AxisDirectionX, AxisDirectionY, AxisDirectionZ, AxisMomentOrPointX, AxisMomentOrPointY, AxisMomentOrPointZ, Rotation, Translation)

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)

Herror dual_quat_to_screw(const HTuple& DualQuaternion, const HTuple& ScrewFormat, double* AxisDirectionX, double* AxisDirectionY, double* AxisDirectionZ, double* AxisMomentOrPointX, double* AxisMomentOrPointY, double* AxisMomentOrPointZ, double* Rotation, double* 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)

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 HOperatorSetX.DualQuatToScrew(
[in] VARIANT DualQuaternion, [in] VARIANT ScrewFormat, [out] VARIANT* AxisDirectionX, [out] VARIANT* AxisDirectionY, [out] VARIANT* AxisDirectionZ, [out] VARIANT* AxisMomentOrPointX, [out] VARIANT* AxisMomentOrPointY, [out] VARIANT* AxisMomentOrPointZ, [out] VARIANT* Rotation, [out] VARIANT* Translation)

double HDualQuaternionX.DualQuatToScrew(
[in] BSTR ScrewFormat, [out] double* AxisDirectionY, [out] double* AxisDirectionZ, [out] double* AxisMomentOrPointX, [out] double* AxisMomentOrPointY, [out] double* AxisMomentOrPointZ, [out] double* Rotation, [out] double* 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)

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_screwdual_quat_to_screwDualQuatToScrewdual_quat_to_screwDualQuatToScrewDualQuatToScrew converts the input unit dual quaternion DualQuaternionDualQuaternionDualQuaternionDualQuaternionDualQuaterniondualQuaternion, 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 the documentation of this chapter (Transformations / Dual Quaternions).

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 ScrewFormatScrewFormatScrewFormatScrewFormatScrewFormatscrewFormat is set to 'moment'"moment""moment""moment""moment""moment", these parameters are returned in the corresponding parameters AxisDirectionXAxisDirectionXAxisDirectionXAxisDirectionXAxisDirectionXaxisDirectionX, AxisDirectionYAxisDirectionYAxisDirectionYAxisDirectionYAxisDirectionYaxisDirectionY, AxisDirectionZAxisDirectionZAxisDirectionZAxisDirectionZAxisDirectionZaxisDirectionZ, AxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXaxisMomentOrPointX, AxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYaxisMomentOrPointY, AxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZaxisMomentOrPointZ, RotationRotationRotationRotationRotationrotation, and TranslationTranslationTranslationTranslationTranslationtranslation.

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, ScrewFormatScrewFormatScrewFormatScrewFormatScrewFormatscrewFormat must be set to 'point'"point""point""point""point""point". In this case, the coordinates of the point are returned in AxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXaxisMomentOrPointX, AxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYaxisMomentOrPointY, and AxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZaxisMomentOrPointZ.

Attention

dual_quat_to_screwdual_quat_to_screwDualQuatToScrewdual_quat_to_screwDualQuatToScrewDualQuatToScrew assumes that the input DualQuaternionDualQuaternionDualQuaternionDualQuaternionDualQuaterniondualQuaternion 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 .

Parallelization

Parameters

DualQuaternionDualQuaternionDualQuaternionDualQuaternionDualQuaterniondualQuaternion (input_control)  dual_quaternion HDualQuaternion, HTupleHTupleHTupleHDualQuaternionX, VARIANTHtuple (real) (double) (double) (double) (double) (double)

Unit dual quaternion.

ScrewFormatScrewFormatScrewFormatScrewFormatScrewFormatscrewFormat (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Format of the screw parameters.

Default value: 'moment' "moment" "moment" "moment" "moment" "moment"

List of values: 'moment'"moment""moment""moment""moment""moment", 'point'"point""point""point""point""point"

AxisDirectionXAxisDirectionXAxisDirectionXAxisDirectionXAxisDirectionXaxisDirectionX (output_control)  point3d.x HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

X component of the direction vector of the screw axis.

AxisDirectionYAxisDirectionYAxisDirectionYAxisDirectionYAxisDirectionYaxisDirectionY (output_control)  point3d.y HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Y component of the direction vector of the screw axis.

AxisDirectionZAxisDirectionZAxisDirectionZAxisDirectionZAxisDirectionZaxisDirectionZ (output_control)  point3d.z HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Z component of the direction vector of the screw axis.

AxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXAxisMomentOrPointXaxisMomentOrPointX (output_control)  point3d.x HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

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

AxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYAxisMomentOrPointYaxisMomentOrPointY (output_control)  point3d.y HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

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

AxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZAxisMomentOrPointZaxisMomentOrPointZ (output_control)  point3d.z HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

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

RotationRotationRotationRotationRotationrotation (output_control)  angle.rad HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Rotation angle in radians.

TranslationTranslationTranslationTranslationTranslationtranslation (output_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Translation.

Possible Predecessors

dual_quat_composedual_quat_composeDualQuatComposedual_quat_composeDualQuatComposeDualQuatCompose, dual_quat_conjugatedual_quat_conjugateDualQuatConjugatedual_quat_conjugateDualQuatConjugateDualQuatConjugate, dual_quat_interpolatedual_quat_interpolateDualQuatInterpolatedual_quat_interpolateDualQuatInterpolateDualQuatInterpolate

Alternatives

dual_quat_to_posedual_quat_to_poseDualQuatToPosedual_quat_to_poseDualQuatToPoseDualQuatToPose, dual_quat_to_hom_mat3ddual_quat_to_hom_mat3dDualQuatToHomMat3ddual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3d

See also

pose_to_dual_quatpose_to_dual_quatPoseToDualQuatpose_to_dual_quatPoseToDualQuatPoseToDualQuat, dual_quat_normalizedual_quat_normalizeDualQuatNormalizedual_quat_normalizeDualQuatNormalizeDualQuatNormalize, serialize_dual_quatserialize_dual_quatSerializeDualQuatserialize_dual_quatSerializeDualQuatSerializeDualQuat, deserialize_dual_quatdeserialize_dual_quatDeserializeDualQuatdeserialize_dual_quatDeserializeDualQuatDeserializeDualQuat, dual_quat_trans_line_3ddual_quat_trans_line_3dDualQuatTransLine3ddual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3d, screw_to_dual_quatscrew_to_dual_quatScrewToDualQuatscrew_to_dual_quatScrewToDualQuatScrewToDualQuat

Module

Foundation


ClassesClassesClassesClasses | | | | Operators