SMC_Matrix3_FromZYZ_deg (FUN) ¶ FUNCTION SMC_Matrix3_FromZYZ_deg : BOOL Computes the rotation matrix from angles A,B,C around Z, Y’, Z’ as mR = Rz(A) * Ry(B) * Rz(C). Note The columns of mR are the x, y, and z-axis of the rotated object coordinate system, expressed in the base coordinates. InOut: Scope Name Type Comment Return SMC_Matrix3_FromZYZ_deg BOOL Inout mR SMC_Matrix3 The resulting rotation matrix Input dA_deg LREAL Rotation around Z-axis in degree dB_deg LREAL Rotation around Y’-axis in degree dC_deg LREAL Rotation around Z’-axis in degree
SMC_Matrix3_GetCol (FUN) ¶ FUNCTION SMC_Matrix3_GetCol : BOOL Returns the elements of a given column of a 3x3 matrix. InOut: Scope Name Type Inout vDst SMC_Vector3D Inout Const M SMC_Matrix3 Input iCol DINT Return SMC_Matrix3_GetCol BOOL
SMC_Matrix3_GetRow (FUN) ¶ FUNCTION SMC_Matrix3_GetRow : BOOL Returns the elements of a given column of a 3x3 matrix. InOut: Scope Name Type Inout vDst SMC_Vector3D Inout Const M SMC_Matrix3 Input iRow DINT Return SMC_Matrix3_GetRow BOOL
SMC_Matrix3_IsRotation (FUN) ¶ FUNCTION SMC_Matrix3_IsRotation : BOOL Returns whether the given matrix is orthogonal, i.e. the column vectors are orthogonal units, and the basis formed by these units is right-handed. up to a given epsilon. Equivalently, tests whether R*R^T = I and det(R) = 1. InOut: Scope Name Type Inout Const mR SMC_Matrix3 Input dEpsRel LREAL Return SMC_Matrix3_IsRotation BOOL
SMC_Matrix3_Mult (FUN) ¶ FUNCTION SMC_Matrix3_Mult Multiplies two 3x3 matrices. InOut: Scope Name Type Inout mDst SMC_Matrix3 Inout Const mLhs SMC_Matrix3 mRhs SMC_Matrix3
SMC_Matrix3_MultS (FUN) ¶ FUNCTION SMC_Matrix3_MultS InOut: Scope Name Type Inout mDst SMC_Matrix3 Inout Const mSrc SMC_Matrix3 Input d LREAL
SMC_Matrix3_NormalizeRotation (FUN) ¶ FUNCTION SMC_Matrix3_NormalizeRotation Normalizes a rotation matrix slightly perturbed by rounding errors and converts it to a proper rotation matrix with R*R^-1 = I. InOut: Scope Name Type Comment Inout mDst SMC_Matrix3 The resulting rotation matrix, a rotation matrix close to mSrc. Inout Const mSrc SMC_Matrix3 The slightly non-orthonormal matrix, almost a rotation matrix.
SMC_Matrix3_RotDist (FUN) ¶ FUNCTION SMC_Matrix3_RotDist : LREAL Returns the distance between two orthonormal matrices with determinant 1 (i.e. matrices representing rotations). The distance is the absolute angle between the two rotations, i.e. the absolute angle of the shortest rotation transforming from one rotation to the other. The angle is measured in radian and is in the range [0, SMC_PI]. Note: the behavior is undefined unless both matrices are rotation matrices. InOut: Scope Name Type Inout Const r1 SMC_Matrix3 r2 SMC_Matrix3 Return SMC_Matrix3_RotDist LREAL
SMC_Matrix3_RotateX (FUN) ¶ FUNCTION SMC_Matrix3_RotateX : BOOL Computes a matrix representing a rotation around the x-axis. InOut: Scope Name Type Return SMC_Matrix3_RotateX BOOL Inout mR SMC_Matrix3 Input dAngle_Rad LREAL
SMC_Matrix3_RotateY (FUN) ¶ FUNCTION SMC_Matrix3_RotateY : BOOL Computes a matrix representing a rotation around the y-axis. InOut: Scope Name Type Return SMC_Matrix3_RotateY BOOL Inout mR SMC_Matrix3 Input dAngle_Rad LREAL