affine_trans_point_3dT_affine_trans_point_3dAffineTransPoint3dAffineTransPoint3d (Operator)

Name

affine_trans_point_3dT_affine_trans_point_3dAffineTransPoint3dAffineTransPoint3d — Apply an arbitrary affine 3D transformation to points.

Signature

affine_trans_point_3d( : : HomMat3D, Px, Py, Pz : Qx, Qy, Qz)

Herror T_affine_trans_point_3d(const Htuple HomMat3D, const Htuple Px, const Htuple Py, const Htuple Pz, Htuple* Qx, Htuple* Qy, Htuple* Qz)

void AffineTransPoint3d(const HTuple& HomMat3D, const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* Qx, HTuple* Qy, HTuple* Qz)

HTuple HHomMat3D::AffineTransPoint3d(const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* Qy, HTuple* Qz) const

double HHomMat3D::AffineTransPoint3d(double Px, double Py, double Pz, double* Qy, double* Qz) const

static void HOperatorSet.AffineTransPoint3d(HTuple homMat3D, HTuple px, HTuple py, HTuple pz, out HTuple qx, out HTuple qy, out HTuple qz)

HTuple HHomMat3D.AffineTransPoint3d(HTuple px, HTuple py, HTuple pz, out HTuple qy, out HTuple qz)

double HHomMat3D.AffineTransPoint3d(double px, double py, double pz, out double qy, out double qz)

Description

affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3d applies an arbitrary affine 3D transformation, i.e., scaling, rotation, and translation, to the input points (PxPxPxPxpx,PyPyPyPypy,PzPzPzPzpz) and returns the resulting points in (QxQxQxQxqx, QyQyQyQyqy,QzQzQzQzqz). The affine transformation is described by the homogeneous transformation matrix given in HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D. This corresponds to the following equation (input and output points as homogeneous vectors):

The transformation matrix can be created using the operators hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentity, hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale, hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate, hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate, etc., or be the result of pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3d.

For example, if HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D corresponds to a rigid transformation, i.e., if it consists of a rotation and a translation, the points are transformed as follows:

Execution Information

Parameters

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

Input transformation matrix.

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

Input point(s) (x coordinate).

Default value: 64

Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024

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

Input point(s) (y coordinate).

Default value: 64

Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024

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

Input point(s) (z coordinate).

Default value: 64

Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024

QxQxQxQxqx (output_control)  point3d.x(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Output point(s) (x coordinate).

QyQyQyQyqy (output_control)  point3d.y(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Output point(s) (y coordinate).

QzQzQzQzqz (output_control)  point3d.z(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Output point(s) (z coordinate).

Result

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

Possible Predecessors

hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate, hom_mat3d_translate_localhom_mat3d_translate_localHomMat3dTranslateLocalHomMat3dTranslateLocalHomMat3dTranslateLocal, hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale, hom_mat3d_scale_localhom_mat3d_scale_localHomMat3dScaleLocalHomMat3dScaleLocalHomMat3dScaleLocal, hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate, hom_mat3d_rotate_localhom_mat3d_rotate_localHomMat3dRotateLocalHomMat3dRotateLocalHomMat3dRotateLocal

Possible Successors

hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate, hom_mat3d_translate_localhom_mat3d_translate_localHomMat3dTranslateLocalHomMat3dTranslateLocalHomMat3dTranslateLocal, hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale, hom_mat3d_scale_localhom_mat3d_scale_localHomMat3dScaleLocalHomMat3dScaleLocalHomMat3dScaleLocal, hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate, hom_mat3d_rotate_localhom_mat3d_rotate_localHomMat3dRotateLocalHomMat3dRotateLocalHomMat3dRotateLocal

Module

Foundation