Name
hom_mat3d_scaleT_hom_mat3d_scaleHomMat3dScaleHomMat3dScale — Add a scaling to a homogeneous 3D transformation matrix.
Herror T_hom_mat3d_scale(const Htuple HomMat3D, const Htuple Sx, const Htuple Sy, const Htuple Sz, const Htuple Px, const Htuple Py, const Htuple Pz, Htuple* HomMat3DScale)
void HomMat3dScale(const HTuple& HomMat3D, const HTuple& Sx, const HTuple& Sy, const HTuple& Sz, const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* HomMat3DScale)
HHomMat3D HHomMat3D::HomMat3dScale(const HTuple& Sx, const HTuple& Sy, const HTuple& Sz, const HTuple& Px, const HTuple& Py, const HTuple& Pz) const
HHomMat3D HHomMat3D::HomMat3dScale(double Sx, double Sy, double Sz, double Px, double Py, double Pz) const
static void HOperatorSet.HomMat3dScale(HTuple homMat3D, HTuple sx, HTuple sy, HTuple sz, HTuple px, HTuple py, HTuple pz, out HTuple homMat3DScale)
HHomMat3D HHomMat3D.HomMat3dScale(HTuple sx, HTuple sy, HTuple sz, HTuple px, HTuple py, HTuple pz)
HHomMat3D HHomMat3D.HomMat3dScale(double sx, double sy, double sz, double px, double py, double pz)
hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale adds a scaling by the scale factors SxSxSxSxsx,
SySySySysy, and SzSzSzSzsz to the homogeneous 3D transformation matrix
HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D and returns the resulting matrix in HomMat3DScaleHomMat3DScaleHomMat3DScaleHomMat3DScalehomMat3DScale.
The scaling is described by a 3×3 scaling matrix
S. It is performed relative to the global (i.e.,
fixed) coordinate system; this corresponds to the following chain of
transformation matrices:
The point (PxPxPxPxpx,PyPyPyPypy,PzPzPzPzpz) is the fixed point of the
transformation, i.e., this point remains unchanged when transformed using
HomMat3DScaleHomMat3DScaleHomMat3DScaleHomMat3DScalehomMat3DScale. To obtain this behavior, first a translation is added
to the input transformation matrix that moves the fixed point onto the origin
of the global coordinate system. Then, the scaling is added, and finally a
translation that moves the fixed point back to its original position. This
corresponds to the following chain of transformations:
To perform the transformation in the local coordinate system, i.e.,
the one described by HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D, use
hom_mat3d_scale_localhom_mat3d_scale_localHomMat3dScaleLocalHomMat3dScaleLocalHomMat3dScaleLocal.
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.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Input transformation matrix.
SxSxSxSxsx (input_control) number → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Scale factor along the x-axis.
Default value: 2
Suggested values: 0.125, 0.25, 0.5, 1, 2, 4, 8, 112
Restriction: Sx != 0
SySySySysy (input_control) number → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Scale factor along the y-axis.
Default value: 2
Suggested values: 0.125, 0.25, 0.5, 1, 2, 4, 8, 112
Restriction: Sy != 0
SzSzSzSzsz (input_control) number → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Scale factor along the z-axis.
Default value: 2
Suggested values: 0.125, 0.25, 0.5, 1, 2, 4, 8, 112
Restriction: Sz != 0
PxPxPxPxpx (input_control) point3d.x → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Fixed point of the transformation (x coordinate).
Default value: 0
Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024
PyPyPyPypy (input_control) point3d.y → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Fixed point of the transformation (y coordinate).
Default value: 0
Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024
PzPzPzPzpz (input_control) point3d.z → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Fixed point of the transformation (z coordinate).
Default value: 0
Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024
Output transformation matrix.
hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale returns 2 (H_MSG_TRUE) if all three scale factors are not
0. If necessary, an exception is raised.
hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentity,
hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate,
hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale,
hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate
hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate,
hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale,
hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate
hom_mat3d_inverthom_mat3d_invertHomMat3dInvertHomMat3dInvertHomMat3dInvert,
hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentity,
hom_mat3d_scale_localhom_mat3d_scale_localHomMat3dScaleLocalHomMat3dScaleLocalHomMat3dScaleLocal,
pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3d,
hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPose,
hom_mat3d_composehom_mat3d_composeHomMat3dComposeHomMat3dComposeHomMat3dCompose
Foundation