affine_trans_point_3d T_affine_trans_point_3d AffineTransPoint3d AffineTransPoint3d affine_trans_point_3d (Operator)
affine_trans_point_3d T_affine_trans_point_3d AffineTransPoint3d AffineTransPoint3d affine_trans_point_3d
— Apply an arbitrary affine 3D transformation to points.
Signature
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 )
def affine_trans_point_3d (hom_mat_3d : Sequence[float], px : MaybeSequence[Union[float, int]], py : MaybeSequence[Union[float, int]], pz : MaybeSequence[Union[float, int]]) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]
def affine_trans_point_3d_s (hom_mat_3d : Sequence[float], px : MaybeSequence[Union[float, int]], py : MaybeSequence[Union[float, int]], pz : MaybeSequence[Union[float, int]]) -> Tuple[float, float, float]
Description
affine_trans_point_3d affine_trans_point_3d AffineTransPoint3d AffineTransPoint3d affine_trans_point_3d
applies an arbitrary affine 3D transformation,
i.e., scaling, rotation, and translation, to the input points
(Px Px Px px px
,Py Py Py py py
,Pz Pz Pz pz pz
) and returns the resulting points in
(Qx Qx Qx qx qx
, Qy Qy Qy qy qy
,Qz Qz Qz qz qz
). The affine transformation is
described by the homogeneous transformation matrix given in
HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d
. This corresponds to the following equation (input and
output points as homogeneous vectors):
The transformation matrix can be created using the operators
hom_mat3d_identity hom_mat3d_identity HomMat3dIdentity HomMat3dIdentity hom_mat3d_identity
, hom_mat3d_scale hom_mat3d_scale HomMat3dScale HomMat3dScale hom_mat3d_scale
,
hom_mat3d_rotate hom_mat3d_rotate HomMat3dRotate HomMat3dRotate hom_mat3d_rotate
, hom_mat3d_translate hom_mat3d_translate HomMat3dTranslate HomMat3dTranslate hom_mat3d_translate
, etc., or be the result
of pose_to_hom_mat3d pose_to_hom_mat3d PoseToHomMat3d PoseToHomMat3d pose_to_hom_mat3d
.
For example, if HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d
corresponds to a rigid transformation,
i.e., if it consists of a rotation and a translation, the
points are transformed as follows:
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on internal data level.
Parameters
HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d
(input_control) hom_mat3d →
HHomMat3D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Input transformation matrix.
Px Px Px px px
(input_control) point3d.x(-array) →
HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point(s) (x coordinate).
Default:
64
Suggested values:
0, 16, 32, 64, 128, 256, 512, 1024
Py Py Py py py
(input_control) point3d.y(-array) →
HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point(s) (y coordinate).
Default:
64
Suggested values:
0, 16, 32, 64, 128, 256, 512, 1024
Pz Pz Pz pz pz
(input_control) point3d.z(-array) →
HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point(s) (z coordinate).
Default:
64
Suggested values:
0, 16, 32, 64, 128, 256, 512, 1024
Qx Qx Qx qx qx
(output_control) point3d.x(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output point(s) (x coordinate).
Qy Qy Qy qy qy
(output_control) point3d.y(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output point(s) (y coordinate).
Qz Qz Qz qz qz
(output_control) point3d.z(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output point(s) (z coordinate).
Result
If the parameters are valid, the operator affine_trans_point_3d affine_trans_point_3d AffineTransPoint3d AffineTransPoint3d affine_trans_point_3d
returns 2 (
H_MSG_TRUE )
. If necessary, an exception is raised.
Possible Predecessors
hom_mat3d_translate hom_mat3d_translate HomMat3dTranslate HomMat3dTranslate hom_mat3d_translate
,
hom_mat3d_translate_local hom_mat3d_translate_local HomMat3dTranslateLocal HomMat3dTranslateLocal hom_mat3d_translate_local
,
hom_mat3d_scale hom_mat3d_scale HomMat3dScale HomMat3dScale hom_mat3d_scale
,
hom_mat3d_scale_local hom_mat3d_scale_local HomMat3dScaleLocal HomMat3dScaleLocal hom_mat3d_scale_local
,
hom_mat3d_rotate hom_mat3d_rotate HomMat3dRotate HomMat3dRotate hom_mat3d_rotate
,
hom_mat3d_rotate_local hom_mat3d_rotate_local HomMat3dRotateLocal HomMat3dRotateLocal hom_mat3d_rotate_local
Possible Successors
hom_mat3d_translate hom_mat3d_translate HomMat3dTranslate HomMat3dTranslate hom_mat3d_translate
,
hom_mat3d_translate_local hom_mat3d_translate_local HomMat3dTranslateLocal HomMat3dTranslateLocal hom_mat3d_translate_local
,
hom_mat3d_scale hom_mat3d_scale HomMat3dScale HomMat3dScale hom_mat3d_scale
,
hom_mat3d_scale_local hom_mat3d_scale_local HomMat3dScaleLocal HomMat3dScaleLocal hom_mat3d_scale_local
,
hom_mat3d_rotate hom_mat3d_rotate HomMat3dRotate HomMat3dRotate hom_mat3d_rotate
,
hom_mat3d_rotate_local hom_mat3d_rotate_local HomMat3dRotateLocal HomMat3dRotateLocal hom_mat3d_rotate_local
Module
Foundation