dual_quat_trans_line_3dT_dual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3d (Operator)

Name

dual_quat_trans_line_3dT_dual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3d — Transform a 3D line with a unit dual quaternion.

Signature

dual_quat_trans_line_3d( : : DualQuaternion, LineFormat, LineDirectionX, LineDirectionY, LineDirectionZ, LineMomentOrPointX, LineMomentOrPointY, LineMomentOrPointZ : TransLineDirectionX, TransLineDirectionY, TransLineDirectionZ, TransLineMomentOrPointX, TransLineMomentOrPointY, TransLineMomentOrPointZ)

Herror T_dual_quat_trans_line_3d(const Htuple DualQuaternion, const Htuple LineFormat, const Htuple LineDirectionX, const Htuple LineDirectionY, const Htuple LineDirectionZ, const Htuple LineMomentOrPointX, const Htuple LineMomentOrPointY, const Htuple LineMomentOrPointZ, Htuple* TransLineDirectionX, Htuple* TransLineDirectionY, Htuple* TransLineDirectionZ, Htuple* TransLineMomentOrPointX, Htuple* TransLineMomentOrPointY, Htuple* TransLineMomentOrPointZ)

void DualQuatTransLine3d(const HTuple& DualQuaternion, const HTuple& LineFormat, const HTuple& LineDirectionX, const HTuple& LineDirectionY, const HTuple& LineDirectionZ, const HTuple& LineMomentOrPointX, const HTuple& LineMomentOrPointY, const HTuple& LineMomentOrPointZ, HTuple* TransLineDirectionX, HTuple* TransLineDirectionY, HTuple* TransLineDirectionZ, HTuple* TransLineMomentOrPointX, HTuple* TransLineMomentOrPointY, HTuple* TransLineMomentOrPointZ)

void HDualQuaternion::DualQuatTransLine3d(const HString& LineFormat, const HTuple& LineDirectionX, const HTuple& LineDirectionY, const HTuple& LineDirectionZ, const HTuple& LineMomentOrPointX, const HTuple& LineMomentOrPointY, const HTuple& LineMomentOrPointZ, HTuple* TransLineDirectionX, HTuple* TransLineDirectionY, HTuple* TransLineDirectionZ, HTuple* TransLineMomentOrPointX, HTuple* TransLineMomentOrPointY, HTuple* TransLineMomentOrPointZ) const

void HDualQuaternion::DualQuatTransLine3d(const HString& LineFormat, double LineDirectionX, double LineDirectionY, double LineDirectionZ, double LineMomentOrPointX, double LineMomentOrPointY, double LineMomentOrPointZ, double* TransLineDirectionX, double* TransLineDirectionY, double* TransLineDirectionZ, double* TransLineMomentOrPointX, double* TransLineMomentOrPointY, double* TransLineMomentOrPointZ) const

void HDualQuaternion::DualQuatTransLine3d(const char* LineFormat, double LineDirectionX, double LineDirectionY, double LineDirectionZ, double LineMomentOrPointX, double LineMomentOrPointY, double LineMomentOrPointZ, double* TransLineDirectionX, double* TransLineDirectionY, double* TransLineDirectionZ, double* TransLineMomentOrPointX, double* TransLineMomentOrPointY, double* TransLineMomentOrPointZ) const

void HDualQuaternion::DualQuatTransLine3d(const wchar_t* LineFormat, double LineDirectionX, double LineDirectionY, double LineDirectionZ, double LineMomentOrPointX, double LineMomentOrPointY, double LineMomentOrPointZ, double* TransLineDirectionX, double* TransLineDirectionY, double* TransLineDirectionZ, double* TransLineMomentOrPointX, double* TransLineMomentOrPointY, double* TransLineMomentOrPointZ) const   (Windows only)

static void HOperatorSet.DualQuatTransLine3d(HTuple dualQuaternion, HTuple lineFormat, HTuple lineDirectionX, HTuple lineDirectionY, HTuple lineDirectionZ, HTuple lineMomentOrPointX, HTuple lineMomentOrPointY, HTuple lineMomentOrPointZ, out HTuple transLineDirectionX, out HTuple transLineDirectionY, out HTuple transLineDirectionZ, out HTuple transLineMomentOrPointX, out HTuple transLineMomentOrPointY, out HTuple transLineMomentOrPointZ)

void HDualQuaternion.DualQuatTransLine3d(string lineFormat, HTuple lineDirectionX, HTuple lineDirectionY, HTuple lineDirectionZ, HTuple lineMomentOrPointX, HTuple lineMomentOrPointY, HTuple lineMomentOrPointZ, out HTuple transLineDirectionX, out HTuple transLineDirectionY, out HTuple transLineDirectionZ, out HTuple transLineMomentOrPointX, out HTuple transLineMomentOrPointY, out HTuple transLineMomentOrPointZ)

void HDualQuaternion.DualQuatTransLine3d(string lineFormat, double lineDirectionX, double lineDirectionY, double lineDirectionZ, double lineMomentOrPointX, double lineMomentOrPointY, double lineMomentOrPointZ, out double transLineDirectionX, out double transLineDirectionY, out double transLineDirectionZ, out double transLineMomentOrPointX, out double transLineMomentOrPointY, out double transLineMomentOrPointZ)

Description

The operator dual_quat_trans_line_3ddual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3dDualQuatTransLine3d transforms a 3D line that is represented by its Plücker coordinates by a 3D rigid transformation that is given by the unit dual quaternion DualQuaternionDualQuaternionDualQuaternionDualQuaterniondualQuaternion.

For a brief introduction to dual quaternions, Plücker coordinates and the used notation, see the documentation of this chapter (Transformations / Dual Quaternions).

A line in Plücker coordinates is given by its direction with and its moment with . It can be written as a dual quaternion with 0 scalar parts. The line can be transformed by the 3D rigid transformation that is represented by the unit dual quaternion very conveniently: The resulting dual quaternion also has a 0 scalar part and directly contains the direction and the moment of the transformed line in its vector parts.

The direction of the line must be passed in LineDirectionXLineDirectionXLineDirectionXLineDirectionXlineDirectionX, LineDirectionYLineDirectionYLineDirectionYLineDirectionYlineDirectionY, and LineDirectionZLineDirectionZLineDirectionZLineDirectionZlineDirectionZ. Note that the length of the direction vector must be 1 to get meaningful results, i.e., .

If LineFormatLineFormatLineFormatLineFormatlineFormat is set to 'moment'"moment""moment""moment""moment", the moment of the line must be passed in LineMomentOrPointXLineMomentOrPointXLineMomentOrPointXLineMomentOrPointXlineMomentOrPointX, LineMomentOrPointYLineMomentOrPointYLineMomentOrPointYLineMomentOrPointYlineMomentOrPointY, and LineMomentOrPointZLineMomentOrPointZLineMomentOrPointZLineMomentOrPointZlineMomentOrPointZ.

If LineFormatLineFormatLineFormatLineFormatlineFormat is set to 'point'"point""point""point""point", instead of the moment an arbitrary point on the line can be passed in LineMomentOrPointXLineMomentOrPointXLineMomentOrPointXLineMomentOrPointXlineMomentOrPointX, LineMomentOrPointYLineMomentOrPointYLineMomentOrPointYLineMomentOrPointYlineMomentOrPointY, and LineMomentOrPointZLineMomentOrPointZLineMomentOrPointZLineMomentOrPointZlineMomentOrPointZ.

The parameters of the transformed line are returned in TransLineDirectionXTransLineDirectionXTransLineDirectionXTransLineDirectionXtransLineDirectionX, TransLineDirectionYTransLineDirectionYTransLineDirectionYTransLineDirectionYtransLineDirectionY, TransLineDirectionZTransLineDirectionZTransLineDirectionZTransLineDirectionZtransLineDirectionZ, TransLineMomentOrPointXTransLineMomentOrPointXTransLineMomentOrPointXTransLineMomentOrPointXtransLineMomentOrPointX, TransLineMomentOrPointYTransLineMomentOrPointYTransLineMomentOrPointYTransLineMomentOrPointYtransLineMomentOrPointY, and TransLineMomentOrPointZTransLineMomentOrPointZTransLineMomentOrPointZTransLineMomentOrPointZtransLineMomentOrPointZ in the format that was specified in LineFormatLineFormatLineFormatLineFormatlineFormat. If LineFormatLineFormatLineFormatLineFormatlineFormat is set to 'point'"point""point""point""point", the point on the line that is closest to the origin of the coordinate system is returned.

Attention

dual_quat_trans_line_3ddual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3dDualQuatTransLine3d returns meaningful results only if DualQuaternionDualQuaternionDualQuaternionDualQuaterniondualQuaternion is a unit dual quaternion and the length of the line direction is 1.

Execution Information

Parameters

DualQuaternionDualQuaternionDualQuaternionDualQuaterniondualQuaternion (input_control)  dual_quaternion HDualQuaternion, HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Unit dual quaternion representing the transformation.

LineFormatLineFormatLineFormatLineFormatlineFormat (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Format of the line parameters.

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

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

LineDirectionXLineDirectionXLineDirectionXLineDirectionXlineDirectionX (input_control)  point3d.x(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

X component of the direction vector of the line.

LineDirectionYLineDirectionYLineDirectionYLineDirectionYlineDirectionY (input_control)  point3d.y(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Y component of the direction vector of the line.

LineDirectionZLineDirectionZLineDirectionZLineDirectionZlineDirectionZ (input_control)  point3d.z(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Z component of the direction vector of the line.

LineMomentOrPointXLineMomentOrPointXLineMomentOrPointXLineMomentOrPointXlineMomentOrPointX (input_control)  point3d.x(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

X component of the moment vector or a point on the line.

LineMomentOrPointYLineMomentOrPointYLineMomentOrPointYLineMomentOrPointYlineMomentOrPointY (input_control)  point3d.y(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Y component of the moment vector or a point on the line.

LineMomentOrPointZLineMomentOrPointZLineMomentOrPointZLineMomentOrPointZlineMomentOrPointZ (input_control)  point3d.z(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Z component of the moment vector or a point on the line.

TransLineDirectionXTransLineDirectionXTransLineDirectionXTransLineDirectionXtransLineDirectionX (output_control)  point3d.x(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

X component of the direction vector of the transformed line.

TransLineDirectionYTransLineDirectionYTransLineDirectionYTransLineDirectionYtransLineDirectionY (output_control)  point3d.y(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Y component of the direction vector of the transformed line.

TransLineDirectionZTransLineDirectionZTransLineDirectionZTransLineDirectionZtransLineDirectionZ (output_control)  point3d.z(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Z component of the direction vector of the transformed line.

TransLineMomentOrPointXTransLineMomentOrPointXTransLineMomentOrPointXTransLineMomentOrPointXtransLineMomentOrPointX (output_control)  point3d.x(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

X component of the moment vector or a point on the transformed line.

TransLineMomentOrPointYTransLineMomentOrPointYTransLineMomentOrPointYTransLineMomentOrPointYtransLineMomentOrPointY (output_control)  point3d.y(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Y component of the moment vector or a point on the transformed line.

TransLineMomentOrPointZTransLineMomentOrPointZTransLineMomentOrPointZTransLineMomentOrPointZtransLineMomentOrPointZ (output_control)  point3d.z(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Z component of the moment vector or a point on the transformed line.

Possible Successors

dual_quat_composedual_quat_composeDualQuatComposeDualQuatComposeDualQuatCompose, dual_quat_conjugatedual_quat_conjugateDualQuatConjugateDualQuatConjugateDualQuatConjugate, pose_to_dual_quatpose_to_dual_quatPoseToDualQuatPoseToDualQuatPoseToDualQuat

Alternatives

affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3d

See also

dual_quat_to_hom_mat3ddual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3dDualQuatToHomMat3d, dual_quat_to_screwdual_quat_to_screwDualQuatToScrewDualQuatToScrewDualQuatToScrew, dual_quat_to_posedual_quat_to_poseDualQuatToPoseDualQuatToPoseDualQuatToPose, dual_quat_normalizedual_quat_normalizeDualQuatNormalizeDualQuatNormalizeDualQuatNormalize, serialize_dual_quatserialize_dual_quatSerializeDualQuatSerializeDualQuatSerializeDualQuat, deserialize_dual_quatdeserialize_dual_quatDeserializeDualQuatDeserializeDualQuatDeserializeDualQuat, quat_rotate_point_3dquat_rotate_point_3dQuatRotatePoint3dQuatRotatePoint3dQuatRotatePoint3d

Module

Foundation