hom_mat3d_rotate_localT_hom_mat3d_rotate_localHomMat3dRotateLocalHomMat3dRotateLocal (Operator)

Name

hom_mat3d_rotate_localT_hom_mat3d_rotate_localHomMat3dRotateLocalHomMat3dRotateLocal — Add a rotation to a homogeneous 3D transformation matrix.

Signature

hom_mat3d_rotate_local( : : HomMat3D, Phi, Axis : HomMat3DRotate)

Herror T_hom_mat3d_rotate_local(const Htuple HomMat3D, const Htuple Phi, const Htuple Axis, Htuple* HomMat3DRotate)

void HomMat3dRotateLocal(const HTuple& HomMat3D, const HTuple& Phi, const HTuple& Axis, HTuple* HomMat3DRotate)

HHomMat3D HHomMat3D::HomMat3dRotateLocal(const HTuple& Phi, const HTuple& Axis) const

HHomMat3D HHomMat3D::HomMat3dRotateLocal(double Phi, const HString& Axis) const

HHomMat3D HHomMat3D::HomMat3dRotateLocal(double Phi, const char* Axis) const

HHomMat3D HHomMat3D::HomMat3dRotateLocal(double Phi, const wchar_t* Axis) const   (Windows only)

static void HOperatorSet.HomMat3dRotateLocal(HTuple homMat3D, HTuple phi, HTuple axis, out HTuple homMat3DRotate)

HHomMat3D HHomMat3D.HomMat3dRotateLocal(HTuple phi, HTuple axis)

HHomMat3D HHomMat3D.HomMat3dRotateLocal(double phi, string axis)

Description

hom_mat3d_rotate_localhom_mat3d_rotate_localHomMat3dRotateLocalHomMat3dRotateLocalHomMat3dRotateLocal adds a rotation by the angle PhiPhiPhiPhiphi around the axis passed in the parameter AxisAxisAxisAxisaxis to the homogeneous 3D transformation matrix HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D and returns the resulting matrix in HomMat3DRotateHomMat3DRotateHomMat3DRotateHomMat3DRotatehomMat3DRotate. The axis can be specified by passing the strings 'x', 'y', or 'z', or by passing a vector [x,y,z] as a tuple.

The rotation is described by a 3×3 rotation matrix R. In contrast to hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate, it is performed relative to the local coordinate system, i.e., the coordinate system described by HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D; this corresponds to the following chain of transformation matrices:

AxisAxisAxisAxisaxis = 'x'"x""x""x""x":

AxisAxisAxisAxisaxis = 'y'"y""y""y""y":

AxisAxisAxisAxisaxis = 'z'"z""z""z""z":

AxisAxisAxisAxisaxis = [x,y,z]:

The fixed point of the transformation is the origin of the local coordinate system, i.e., this point remains unchanged when transformed using HomMat3DRotateHomMat3DRotateHomMat3DRotateHomMat3DRotatehomMat3DRotate.

Attention

Note that homogeneous matrices are stored row-by-row as a tuple; the last row is usually not stored because it is identical for all homogeneous matrices that describe an affine transformation. For example, the homogeneous matrix is stored as the tuple [ra, rb, rc, td, re, rf, rg, th, ri, rj, rk, tl]. However, it is also possible to process full 4×4 matrices, which represent a projective 4D transformation.

Execution Information

Parameters

HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D (input_control)  hom_mat3d HHomMat3D, HTupleHTupleHtuple (real) (double) (double) (double)

Input transformation matrix.

PhiPhiPhiPhiphi (input_control)  angle.rad HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Rotation angle.

Default value: 0.78

Suggested values: 0.1, 0.2, 0.3, 0.4, 0.78, 1.57, 3.14

Typical range of values: 0 ≤ Phi Phi Phi Phi phi ≤ 6.28318530718

AxisAxisAxisAxisaxis (input_control)  string(-array) HTupleHTupleHtuple (string / real / integer) (string / double / int / long) (HString / double / Hlong) (char* / double / Hlong)

Axis, to be rotated around.

Default value: 'x' "x" "x" "x" "x"

Suggested values: 'x'"x""x""x""x", 'y'"y""y""y""y", 'z'"z""z""z""z"

HomMat3DRotateHomMat3DRotateHomMat3DRotateHomMat3DRotatehomMat3DRotate (output_control)  hom_mat3d HHomMat3D, HTupleHTupleHtuple (real) (double) (double) (double)

Output transformation matrix.

Result

If the parameters are valid, the operator hom_mat3d_rotate_localhom_mat3d_rotate_localHomMat3dRotateLocalHomMat3dRotateLocalHomMat3dRotateLocal returns 2 (H_MSG_TRUE). If necessary, an exception is raised.

Possible Predecessors

hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentity, hom_mat3d_translate_localhom_mat3d_translate_localHomMat3dTranslateLocalHomMat3dTranslateLocalHomMat3dTranslateLocal, hom_mat3d_scale_localhom_mat3d_scale_localHomMat3dScaleLocalHomMat3dScaleLocalHomMat3dScaleLocal, hom_mat3d_rotate_localhom_mat3d_rotate_localHomMat3dRotateLocalHomMat3dRotateLocalHomMat3dRotateLocal

Possible Successors

hom_mat3d_translate_localhom_mat3d_translate_localHomMat3dTranslateLocalHomMat3dTranslateLocalHomMat3dTranslateLocal, hom_mat3d_scale_localhom_mat3d_scale_localHomMat3dScaleLocalHomMat3dScaleLocalHomMat3dScaleLocal, hom_mat3d_rotate_localhom_mat3d_rotate_localHomMat3dRotateLocalHomMat3dRotateLocalHomMat3dRotateLocal

See also

hom_mat3d_inverthom_mat3d_invertHomMat3dInvertHomMat3dInvertHomMat3dInvert, hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentity, hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate, pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3d, hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPose, hom_mat3d_composehom_mat3d_composeHomMat3dComposeHomMat3dComposeHomMat3dCompose

Module

Foundation