diff options
author | Sebastian Parborg <darkdefende@gmail.com> | 2020-09-04 21:59:13 +0300 |
---|---|---|
committer | Sebastian Parborg <darkdefende@gmail.com> | 2020-09-04 22:04:16 +0300 |
commit | 2115232a16d81d28dbdb8042ed8e9316858514c6 (patch) | |
tree | 1aeb7354a85b21b43a3ede7bf2980c172d4eec82 /source/blender/blenlib/intern/math_matrix.c | |
parent | e43d482cc93c64d55b1f58178db68551077e6560 (diff) |
Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fix
No functional changes
Diffstat (limited to 'source/blender/blenlib/intern/math_matrix.c')
-rw-r--r-- | source/blender/blenlib/intern/math_matrix.c | 918 |
1 files changed, 457 insertions, 461 deletions
diff --git a/source/blender/blenlib/intern/math_matrix.c b/source/blender/blenlib/intern/math_matrix.c index f523bd07c09..08c7d3b1e91 100644 --- a/source/blender/blenlib/intern/math_matrix.c +++ b/source/blender/blenlib/intern/math_matrix.c @@ -204,20 +204,20 @@ void copy_m4d_m4(double m1[4][4], const float m2[4][4]) m1[3][3] = m2[3][3]; } -void copy_m3_m3d(float R[3][3], const double A[3][3]) +void copy_m3_m3d(float m1[3][3], const double m2[3][3]) { /* Keep it stupid simple for better data flow in CPU. */ - R[0][0] = (float)A[0][0]; - R[0][1] = (float)A[0][1]; - R[0][2] = (float)A[0][2]; + m1[0][0] = (float)m2[0][0]; + m1[0][1] = (float)m2[0][1]; + m1[0][2] = (float)m2[0][2]; - R[1][0] = (float)A[1][0]; - R[1][1] = (float)A[1][1]; - R[1][2] = (float)A[1][2]; + m1[1][0] = (float)m2[1][0]; + m1[1][1] = (float)m2[1][1]; + m1[1][2] = (float)m2[1][2]; - R[2][0] = (float)A[2][0]; - R[2][1] = (float)A[2][1]; - R[2][2] = (float)A[2][2]; + m1[2][0] = (float)m2[2][0]; + m1[2][1] = (float)m2[2][1]; + m1[2][2] = (float)m2[2][2]; } void swap_m3m3(float m1[3][3], float m2[3][3]) @@ -435,105 +435,105 @@ void mul_m3_m3m3_uniq(float R[3][3], const float A[3][3], const float B[3][3]) R[2][2] = B[2][0] * A[0][2] + B[2][1] * A[1][2] + B[2][2] * A[2][2]; } -void mul_m4_m4m3(float m1[4][4], const float m3_[4][4], const float m2_[3][3]) +void mul_m4_m4m3(float R[4][4], const float A[4][4], const float B[3][3]) { - float m2[3][3], m3[4][4]; + float B_[3][3], A_[4][4]; - /* copy so it works when m1 is the same pointer as m2 or m3 */ + /* copy so it works when R is the same pointer as A or B */ /* TODO: avoid copying when matrices are different */ - copy_m3_m3(m2, m2_); - copy_m4_m4(m3, m3_); + copy_m4_m4(A_, A); + copy_m3_m3(B_, B); - m1[0][0] = m2[0][0] * m3[0][0] + m2[0][1] * m3[1][0] + m2[0][2] * m3[2][0]; - m1[0][1] = m2[0][0] * m3[0][1] + m2[0][1] * m3[1][1] + m2[0][2] * m3[2][1]; - m1[0][2] = m2[0][0] * m3[0][2] + m2[0][1] * m3[1][2] + m2[0][2] * m3[2][2]; - m1[1][0] = m2[1][0] * m3[0][0] + m2[1][1] * m3[1][0] + m2[1][2] * m3[2][0]; - m1[1][1] = m2[1][0] * m3[0][1] + m2[1][1] * m3[1][1] + m2[1][2] * m3[2][1]; - m1[1][2] = m2[1][0] * m3[0][2] + m2[1][1] * m3[1][2] + m2[1][2] * m3[2][2]; - m1[2][0] = m2[2][0] * m3[0][0] + m2[2][1] * m3[1][0] + m2[2][2] * m3[2][0]; - m1[2][1] = m2[2][0] * m3[0][1] + m2[2][1] * m3[1][1] + m2[2][2] * m3[2][1]; - m1[2][2] = m2[2][0] * m3[0][2] + m2[2][1] * m3[1][2] + m2[2][2] * m3[2][2]; + R[0][0] = B_[0][0] * A_[0][0] + B_[0][1] * A_[1][0] + B_[0][2] * A_[2][0]; + R[0][1] = B_[0][0] * A_[0][1] + B_[0][1] * A_[1][1] + B_[0][2] * A_[2][1]; + R[0][2] = B_[0][0] * A_[0][2] + B_[0][1] * A_[1][2] + B_[0][2] * A_[2][2]; + R[1][0] = B_[1][0] * A_[0][0] + B_[1][1] * A_[1][0] + B_[1][2] * A_[2][0]; + R[1][1] = B_[1][0] * A_[0][1] + B_[1][1] * A_[1][1] + B_[1][2] * A_[2][1]; + R[1][2] = B_[1][0] * A_[0][2] + B_[1][1] * A_[1][2] + B_[1][2] * A_[2][2]; + R[2][0] = B_[2][0] * A_[0][0] + B_[2][1] * A_[1][0] + B_[2][2] * A_[2][0]; + R[2][1] = B_[2][0] * A_[0][1] + B_[2][1] * A_[1][1] + B_[2][2] * A_[2][1]; + R[2][2] = B_[2][0] * A_[0][2] + B_[2][1] * A_[1][2] + B_[2][2] * A_[2][2]; } -/* m1 = m2 * m3, ignore the elements on the 4th row/column of m2 */ -void mul_m3_m3m4(float m1[3][3], const float m3_[3][3], const float m2_[4][4]) +/* R = A * B, ignore the elements on the 4th row/column of A */ +void mul_m3_m3m4(float R[3][3], const float A[3][3], const float B[4][4]) { - float m2[4][4], m3[3][3]; + float B_[4][4], A_[3][3]; - /* copy so it works when m1 is the same pointer as m2 or m3 */ + /* copy so it works when R is the same pointer as A or B */ /* TODO: avoid copying when matrices are different */ - copy_m4_m4(m2, m2_); - copy_m3_m3(m3, m3_); + copy_m3_m3(A_, A); + copy_m4_m4(B_, B); - /* m1[i][j] = m2[i][k] * m3[k][j] */ - m1[0][0] = m2[0][0] * m3[0][0] + m2[0][1] * m3[1][0] + m2[0][2] * m3[2][0]; - m1[0][1] = m2[0][0] * m3[0][1] + m2[0][1] * m3[1][1] + m2[0][2] * m3[2][1]; - m1[0][2] = m2[0][0] * m3[0][2] + m2[0][1] * m3[1][2] + m2[0][2] * m3[2][2]; + /* R[i][j] = B_[i][k] * A_[k][j] */ + R[0][0] = B_[0][0] * A_[0][0] + B_[0][1] * A_[1][0] + B_[0][2] * A_[2][0]; + R[0][1] = B_[0][0] * A_[0][1] + B_[0][1] * A_[1][1] + B_[0][2] * A_[2][1]; + R[0][2] = B_[0][0] * A_[0][2] + B_[0][1] * A_[1][2] + B_[0][2] * A_[2][2]; - m1[1][0] = m2[1][0] * m3[0][0] + m2[1][1] * m3[1][0] + m2[1][2] * m3[2][0]; - m1[1][1] = m2[1][0] * m3[0][1] + m2[1][1] * m3[1][1] + m2[1][2] * m3[2][1]; - m1[1][2] = m2[1][0] * m3[0][2] + m2[1][1] * m3[1][2] + m2[1][2] * m3[2][2]; + R[1][0] = B_[1][0] * A_[0][0] + B_[1][1] * A_[1][0] + B_[1][2] * A_[2][0]; + R[1][1] = B_[1][0] * A_[0][1] + B_[1][1] * A_[1][1] + B_[1][2] * A_[2][1]; + R[1][2] = B_[1][0] * A_[0][2] + B_[1][1] * A_[1][2] + B_[1][2] * A_[2][2]; - m1[2][0] = m2[2][0] * m3[0][0] + m2[2][1] * m3[1][0] + m2[2][2] * m3[2][0]; - m1[2][1] = m2[2][0] * m3[0][1] + m2[2][1] * m3[1][1] + m2[2][2] * m3[2][1]; - m1[2][2] = m2[2][0] * m3[0][2] + m2[2][1] * m3[1][2] + m2[2][2] * m3[2][2]; + R[2][0] = B_[2][0] * A_[0][0] + B_[2][1] * A_[1][0] + B_[2][2] * A_[2][0]; + R[2][1] = B_[2][0] * A_[0][1] + B_[2][1] * A_[1][1] + B_[2][2] * A_[2][1]; + R[2][2] = B_[2][0] * A_[0][2] + B_[2][1] * A_[1][2] + B_[2][2] * A_[2][2]; } -/* m1 = m2 * m3, ignore the elements on the 4th row/column of m3 */ -void mul_m3_m4m3(float m1[3][3], const float m3_[4][4], const float m2_[3][3]) +/* R = A * B, ignore the elements on the 4th row/column of B */ +void mul_m3_m4m3(float R[3][3], const float A[4][4], const float B[3][3]) { - float m2[3][3], m3[4][4]; + float B_[3][3], A_[4][4]; - /* copy so it works when m1 is the same pointer as m2 or m3 */ + /* copy so it works when R is the same pointer as A or B */ /* TODO: avoid copying when matrices are different */ - copy_m3_m3(m2, m2_); - copy_m4_m4(m3, m3_); + copy_m4_m4(A_, A); + copy_m3_m3(B_, B); - /* m1[i][j] = m2[i][k] * m3[k][j] */ - m1[0][0] = m2[0][0] * m3[0][0] + m2[0][1] * m3[1][0] + m2[0][2] * m3[2][0]; - m1[0][1] = m2[0][0] * m3[0][1] + m2[0][1] * m3[1][1] + m2[0][2] * m3[2][1]; - m1[0][2] = m2[0][0] * m3[0][2] + m2[0][1] * m3[1][2] + m2[0][2] * m3[2][2]; + /* R[i][j] = B[i][k] * A[k][j] */ + R[0][0] = B_[0][0] * A_[0][0] + B_[0][1] * A_[1][0] + B_[0][2] * A_[2][0]; + R[0][1] = B_[0][0] * A_[0][1] + B_[0][1] * A_[1][1] + B_[0][2] * A_[2][1]; + R[0][2] = B_[0][0] * A_[0][2] + B_[0][1] * A_[1][2] + B_[0][2] * A_[2][2]; - m1[1][0] = m2[1][0] * m3[0][0] + m2[1][1] * m3[1][0] + m2[1][2] * m3[2][0]; - m1[1][1] = m2[1][0] * m3[0][1] + m2[1][1] * m3[1][1] + m2[1][2] * m3[2][1]; - m1[1][2] = m2[1][0] * m3[0][2] + m2[1][1] * m3[1][2] + m2[1][2] * m3[2][2]; + R[1][0] = B_[1][0] * A_[0][0] + B_[1][1] * A_[1][0] + B_[1][2] * A_[2][0]; + R[1][1] = B_[1][0] * A_[0][1] + B_[1][1] * A_[1][1] + B_[1][2] * A_[2][1]; + R[1][2] = B_[1][0] * A_[0][2] + B_[1][1] * A_[1][2] + B_[1][2] * A_[2][2]; - m1[2][0] = m2[2][0] * m3[0][0] + m2[2][1] * m3[1][0] + m2[2][2] * m3[2][0]; - m1[2][1] = m2[2][0] * m3[0][1] + m2[2][1] * m3[1][1] + m2[2][2] * m3[2][1]; - m1[2][2] = m2[2][0] * m3[0][2] + m2[2][1] * m3[1][2] + m2[2][2] * m3[2][2]; + R[2][0] = B_[2][0] * A_[0][0] + B_[2][1] * A_[1][0] + B_[2][2] * A_[2][0]; + R[2][1] = B_[2][0] * A_[0][1] + B_[2][1] * A_[1][1] + B_[2][2] * A_[2][1]; + R[2][2] = B_[2][0] * A_[0][2] + B_[2][1] * A_[1][2] + B_[2][2] * A_[2][2]; } -void mul_m4_m3m4(float m1[4][4], const float m3_[3][3], const float m2_[4][4]) +void mul_m4_m3m4(float R[4][4], const float A[3][3], const float B[4][4]) { - float m2[4][4], m3[3][3]; + float B_[4][4], A_[3][3]; - /* copy so it works when m1 is the same pointer as m2 or m3 */ + /* copy so it works when R is the same pointer as A or B */ /* TODO: avoid copying when matrices are different */ - copy_m4_m4(m2, m2_); - copy_m3_m3(m3, m3_); + copy_m3_m3(A_, A); + copy_m4_m4(B_, B); - m1[0][0] = m2[0][0] * m3[0][0] + m2[0][1] * m3[1][0] + m2[0][2] * m3[2][0]; - m1[0][1] = m2[0][0] * m3[0][1] + m2[0][1] * m3[1][1] + m2[0][2] * m3[2][1]; - m1[0][2] = m2[0][0] * m3[0][2] + m2[0][1] * m3[1][2] + m2[0][2] * m3[2][2]; - m1[1][0] = m2[1][0] * m3[0][0] + m2[1][1] * m3[1][0] + m2[1][2] * m3[2][0]; - m1[1][1] = m2[1][0] * m3[0][1] + m2[1][1] * m3[1][1] + m2[1][2] * m3[2][1]; - m1[1][2] = m2[1][0] * m3[0][2] + m2[1][1] * m3[1][2] + m2[1][2] * m3[2][2]; - m1[2][0] = m2[2][0] * m3[0][0] + m2[2][1] * m3[1][0] + m2[2][2] * m3[2][0]; - m1[2][1] = m2[2][0] * m3[0][1] + m2[2][1] * m3[1][1] + m2[2][2] * m3[2][1]; - m1[2][2] = m2[2][0] * m3[0][2] + m2[2][1] * m3[1][2] + m2[2][2] * m3[2][2]; + R[0][0] = B_[0][0] * A_[0][0] + B_[0][1] * A_[1][0] + B_[0][2] * A_[2][0]; + R[0][1] = B_[0][0] * A_[0][1] + B_[0][1] * A_[1][1] + B_[0][2] * A_[2][1]; + R[0][2] = B_[0][0] * A_[0][2] + B_[0][1] * A_[1][2] + B_[0][2] * A_[2][2]; + R[1][0] = B_[1][0] * A_[0][0] + B_[1][1] * A_[1][0] + B_[1][2] * A_[2][0]; + R[1][1] = B_[1][0] * A_[0][1] + B_[1][1] * A_[1][1] + B_[1][2] * A_[2][1]; + R[1][2] = B_[1][0] * A_[0][2] + B_[1][1] * A_[1][2] + B_[1][2] * A_[2][2]; + R[2][0] = B_[2][0] * A_[0][0] + B_[2][1] * A_[1][0] + B_[2][2] * A_[2][0]; + R[2][1] = B_[2][0] * A_[0][1] + B_[2][1] * A_[1][1] + B_[2][2] * A_[2][1]; + R[2][2] = B_[2][0] * A_[0][2] + B_[2][1] * A_[1][2] + B_[2][2] * A_[2][2]; } -void mul_m3_m4m4(float m1[3][3], const float m3[4][4], const float m2[4][4]) +void mul_m3_m4m4(float R[3][3], const float A[4][4], const float B[4][4]) { - m1[0][0] = m2[0][0] * m3[0][0] + m2[0][1] * m3[1][0] + m2[0][2] * m3[2][0]; - m1[0][1] = m2[0][0] * m3[0][1] + m2[0][1] * m3[1][1] + m2[0][2] * m3[2][1]; - m1[0][2] = m2[0][0] * m3[0][2] + m2[0][1] * m3[1][2] + m2[0][2] * m3[2][2]; - m1[1][0] = m2[1][0] * m3[0][0] + m2[1][1] * m3[1][0] + m2[1][2] * m3[2][0]; - m1[1][1] = m2[1][0] * m3[0][1] + m2[1][1] * m3[1][1] + m2[1][2] * m3[2][1]; - m1[1][2] = m2[1][0] * m3[0][2] + m2[1][1] * m3[1][2] + m2[1][2] * m3[2][2]; - m1[2][0] = m2[2][0] * m3[0][0] + m2[2][1] * m3[1][0] + m2[2][2] * m3[2][0]; - m1[2][1] = m2[2][0] * m3[0][1] + m2[2][1] * m3[1][1] + m2[2][2] * m3[2][1]; - m1[2][2] = m2[2][0] * m3[0][2] + m2[2][1] * m3[1][2] + m2[2][2] * m3[2][2]; + R[0][0] = B[0][0] * A[0][0] + B[0][1] * A[1][0] + B[0][2] * A[2][0]; + R[0][1] = B[0][0] * A[0][1] + B[0][1] * A[1][1] + B[0][2] * A[2][1]; + R[0][2] = B[0][0] * A[0][2] + B[0][1] * A[1][2] + B[0][2] * A[2][2]; + R[1][0] = B[1][0] * A[0][0] + B[1][1] * A[1][0] + B[1][2] * A[2][0]; + R[1][1] = B[1][0] * A[0][1] + B[1][1] * A[1][1] + B[1][2] * A[2][1]; + R[1][2] = B[1][0] * A[0][2] + B[1][1] * A[1][2] + B[1][2] * A[2][2]; + R[2][0] = B[2][0] * A[0][0] + B[2][1] * A[1][0] + B[2][2] * A[2][0]; + R[2][1] = B[2][0] * A[0][1] + B[2][1] * A[1][1] + B[2][2] * A[2][1]; + R[2][2] = B[2][0] * A[0][2] + B[2][1] * A[1][2] + B[2][2] * A[2][2]; } /** \name Macro helpers for: mul_m3_series @@ -726,14 +726,14 @@ void mul_m3_v2(const float m[3][3], float r[2]) mul_v2_m3v2(r, m, r); } -void mul_m4_v3(const float mat[4][4], float vec[3]) +void mul_m4_v3(const float M[4][4], float r[3]) { - const float x = vec[0]; - const float y = vec[1]; + const float x = r[0]; + const float y = r[1]; - vec[0] = x * mat[0][0] + y * mat[1][0] + mat[2][0] * vec[2] + mat[3][0]; - vec[1] = x * mat[0][1] + y * mat[1][1] + mat[2][1] * vec[2] + mat[3][1]; - vec[2] = x * mat[0][2] + y * mat[1][2] + mat[2][2] * vec[2] + mat[3][2]; + r[0] = x * M[0][0] + y * M[1][0] + M[2][0] * r[2] + M[3][0]; + r[1] = x * M[0][1] + y * M[1][1] + M[2][1] * r[2] + M[3][1]; + r[2] = x * M[0][2] + y * M[1][2] + M[2][2] * r[2] + M[3][2]; } void mul_v3_m4v3(float r[3], const float mat[4][4], const float vec[3]) @@ -788,14 +788,14 @@ void mul_m2_v2(const float mat[2][2], float vec[2]) } /** Same as #mul_m4_v3() but doesn't apply translation component. */ -void mul_mat3_m4_v3(const float mat[4][4], float vec[3]) +void mul_mat3_m4_v3(const float M[4][4], float r[3]) { - const float x = vec[0]; - const float y = vec[1]; + const float x = r[0]; + const float y = r[1]; - vec[0] = x * mat[0][0] + y * mat[1][0] + mat[2][0] * vec[2]; - vec[1] = x * mat[0][1] + y * mat[1][1] + mat[2][1] * vec[2]; - vec[2] = x * mat[0][2] + y * mat[1][2] + mat[2][2] * vec[2]; + r[0] = x * M[0][0] + y * M[1][0] + M[2][0] * r[2]; + r[1] = x * M[0][1] + y * M[1][1] + M[2][1] * r[2]; + r[2] = x * M[0][2] + y * M[1][2] + M[2][2] * r[2]; } void mul_v3_mat3_m4v3(float r[3], const float mat[4][4], const float vec[3]) @@ -934,164 +934,164 @@ void mul_m3_v3_db(const double M[3][3], double r[3]) mul_v3_m3v3_db(r, M, (const double[3]){UNPACK3(r)}); } -void mul_transposed_m3_v3(const float mat[3][3], float vec[3]) +void mul_transposed_m3_v3(const float M[3][3], float r[3]) { - const float x = vec[0]; - const float y = vec[1]; + const float x = r[0]; + const float y = r[1]; - vec[0] = x * mat[0][0] + y * mat[0][1] + mat[0][2] * vec[2]; - vec[1] = x * mat[1][0] + y * mat[1][1] + mat[1][2] * vec[2]; - vec[2] = x * mat[2][0] + y * mat[2][1] + mat[2][2] * vec[2]; + r[0] = x * M[0][0] + y * M[0][1] + M[0][2] * r[2]; + r[1] = x * M[1][0] + y * M[1][1] + M[1][2] * r[2]; + r[2] = x * M[2][0] + y * M[2][1] + M[2][2] * r[2]; } -void mul_transposed_mat3_m4_v3(const float mat[4][4], float vec[3]) +void mul_transposed_mat3_m4_v3(const float M[4][4], float r[3]) { - const float x = vec[0]; - const float y = vec[1]; + const float x = r[0]; + const float y = r[1]; - vec[0] = x * mat[0][0] + y * mat[0][1] + mat[0][2] * vec[2]; - vec[1] = x * mat[1][0] + y * mat[1][1] + mat[1][2] * vec[2]; - vec[2] = x * mat[2][0] + y * mat[2][1] + mat[2][2] * vec[2]; + r[0] = x * M[0][0] + y * M[0][1] + M[0][2] * r[2]; + r[1] = x * M[1][0] + y * M[1][1] + M[1][2] * r[2]; + r[2] = x * M[2][0] + y * M[2][1] + M[2][2] * r[2]; } -void mul_m3_fl(float m[3][3], float f) +void mul_m3_fl(float R[3][3], float f) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { - m[i][j] *= f; + R[i][j] *= f; } } } -void mul_m4_fl(float m[4][4], float f) +void mul_m4_fl(float R[4][4], float f) { int i, j; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { - m[i][j] *= f; + R[i][j] *= f; } } } -void mul_mat3_m4_fl(float m[4][4], float f) +void mul_mat3_m4_fl(float R[4][4], float f) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { - m[i][j] *= f; + R[i][j] *= f; } } } -void negate_m3(float m[3][3]) +void negate_m3(float R[3][3]) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { - m[i][j] *= -1.0f; + R[i][j] *= -1.0f; } } } -void negate_mat3_m4(float m[4][4]) +void negate_mat3_m4(float R[4][4]) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { - m[i][j] *= -1.0f; + R[i][j] *= -1.0f; } } } -void negate_m4(float m[4][4]) +void negate_m4(float R[4][4]) { int i, j; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { - m[i][j] *= -1.0f; + R[i][j] *= -1.0f; } } } -void mul_m3_v3_double(const float mat[3][3], double vec[3]) +void mul_m3_v3_double(const float M[3][3], double r[3]) { - const double x = vec[0]; - const double y = vec[1]; + const double x = r[0]; + const double y = r[1]; - vec[0] = x * (double)mat[0][0] + y * (double)mat[1][0] + (double)mat[2][0] * vec[2]; - vec[1] = x * (double)mat[0][1] + y * (double)mat[1][1] + (double)mat[2][1] * vec[2]; - vec[2] = x * (double)mat[0][2] + y * (double)mat[1][2] + (double)mat[2][2] * vec[2]; + r[0] = x * (double)M[0][0] + y * (double)M[1][0] + (double)M[2][0] * r[2]; + r[1] = x * (double)M[0][1] + y * (double)M[1][1] + (double)M[2][1] * r[2]; + r[2] = x * (double)M[0][2] + y * (double)M[1][2] + (double)M[2][2] * r[2]; } -void add_m3_m3m3(float m1[3][3], const float m2[3][3], const float m3[3][3]) +void add_m3_m3m3(float R[3][3], const float A[3][3], const float B[3][3]) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { - m1[i][j] = m2[i][j] + m3[i][j]; + R[i][j] = A[i][j] + B[i][j]; } } } -void add_m4_m4m4(float m1[4][4], const float m2[4][4], const float m3[4][4]) +void add_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4]) { int i, j; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { - m1[i][j] = m2[i][j] + m3[i][j]; + R[i][j] = A[i][j] + B[i][j]; } } } -void madd_m3_m3m3fl(float m1[3][3], const float m2[3][3], const float m3[3][3], const float f) +void madd_m3_m3m3fl(float R[3][3], const float A[3][3], const float B[3][3], const float f) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { - m1[i][j] = m2[i][j] + m3[i][j] * f; + R[i][j] = A[i][j] + B[i][j] * f; } } } -void madd_m4_m4m4fl(float m1[4][4], const float m2[4][4], const float m3[4][4], const float f) +void madd_m4_m4m4fl(float R[4][4], const float A[4][4], const float B[4][4], const float f) { int i, j; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { - m1[i][j] = m2[i][j] + m3[i][j] * f; + R[i][j] = A[i][j] + B[i][j] * f; } } } -void sub_m3_m3m3(float m1[3][3], const float m2[3][3], const float m3[3][3]) +void sub_m3_m3m3(float R[3][3], const float A[3][3], const float B[3][3]) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { - m1[i][j] = m2[i][j] - m3[i][j]; + R[i][j] = A[i][j] - B[i][j]; } } } -void sub_m4_m4m4(float m1[4][4], const float m2[4][4], const float m3[4][4]) +void sub_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4]) { int i, j; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { - m1[i][j] = m2[i][j] - m3[i][j]; + R[i][j] = A[i][j] - B[i][j]; } } } @@ -1306,113 +1306,112 @@ void mul_m4_m4m4_aligned_scale(float R[4][4], const float A[4][4], const float B /****************************** Linear Algebra *******************************/ -void transpose_m3(float mat[3][3]) +void transpose_m3(float R[3][3]) { float t; - t = mat[0][1]; - mat[0][1] = mat[1][0]; - mat[1][0] = t; - t = mat[0][2]; - mat[0][2] = mat[2][0]; - mat[2][0] = t; - t = mat[1][2]; - mat[1][2] = mat[2][1]; - mat[2][1] = t; + t = R[0][1]; + R[0][1] = R[1][0]; + R[1][0] = t; + t = R[0][2]; + R[0][2] = R[2][0]; + R[2][0] = t; + t = R[1][2]; + R[1][2] = R[2][1]; + R[2][1] = t; } -void transpose_m3_m3(float rmat[3][3], const float mat[3][3]) +void transpose_m3_m3(float R[3][3], const float M[3][3]) { - BLI_assert(rmat != mat); + BLI_assert(R != M); - rmat[0][0] = mat[0][0]; - rmat[0][1] = mat[1][0]; - rmat[0][2] = mat[2][0]; - rmat[1][0] = mat[0][1]; - rmat[1][1] = mat[1][1]; - rmat[1][2] = mat[2][1]; - rmat[2][0] = mat[0][2]; - rmat[2][1] = mat[1][2]; - rmat[2][2] = mat[2][2]; + R[0][0] = M[0][0]; + R[0][1] = M[1][0]; + R[0][2] = M[2][0]; + R[1][0] = M[0][1]; + R[1][1] = M[1][1]; + R[1][2] = M[2][1]; + R[2][0] = M[0][2]; + R[2][1] = M[1][2]; + R[2][2] = M[2][2]; } /* seems obscure but in-fact a common operation */ -void transpose_m3_m4(float rmat[3][3], const float mat[4][4]) +void transpose_m3_m4(float R[3][3], const float M[4][4]) { - BLI_assert(&rmat[0][0] != &mat[0][0]); + BLI_assert(&R[0][0] != &M[0][0]); - rmat[0][0] = mat[0][0]; - rmat[0][1] = mat[1][0]; - rmat[0][2] = mat[2][0]; - rmat[1][0] = mat[0][1]; - rmat[1][1] = mat[1][1]; - rmat[1][2] = mat[2][1]; - rmat[2][0] = mat[0][2]; - rmat[2][1] = mat[1][2]; - rmat[2][2] = mat[2][2]; + R[0][0] = M[0][0]; + R[0][1] = M[1][0]; + R[0][2] = M[2][0]; + R[1][0] = M[0][1]; + R[1][1] = M[1][1]; + R[1][2] = M[2][1]; + R[2][0] = M[0][2]; + R[2][1] = M[1][2]; + R[2][2] = M[2][2]; } -void transpose_m4(float mat[4][4]) +void transpose_m4(float R[4][4]) { float t; - t = mat[0][1]; - mat[0][1] = mat[1][0]; - mat[1][0] = t; - t = mat[0][2]; - mat[0][2] = mat[2][0]; - mat[2][0] = t; - t = mat[0][3]; - mat[0][3] = mat[3][0]; - mat[3][0] = t; - - t = mat[1][2]; - mat[1][2] = mat[2][1]; - mat[2][1] = t; - t = mat[1][3]; - mat[1][3] = mat[3][1]; - mat[3][1] = t; - - t = mat[2][3]; - mat[2][3] = mat[3][2]; - mat[3][2] = t; -} - -void transpose_m4_m4(float rmat[4][4], const float mat[4][4]) -{ - BLI_assert(rmat != mat); - - rmat[0][0] = mat[0][0]; - rmat[0][1] = mat[1][0]; - rmat[0][2] = mat[2][0]; - rmat[0][3] = mat[3][0]; - rmat[1][0] = mat[0][1]; - rmat[1][1] = mat[1][1]; - rmat[1][2] = mat[2][1]; - rmat[1][3] = mat[3][1]; - rmat[2][0] = mat[0][2]; - rmat[2][1] = mat[1][2]; - rmat[2][2] = mat[2][2]; - rmat[2][3] = mat[3][2]; - rmat[3][0] = mat[0][3]; - rmat[3][1] = mat[1][3]; - rmat[3][2] = mat[2][3]; - rmat[3][3] = mat[3][3]; -} - -/* TODO: return bool */ -int compare_m4m4(const float mat1[4][4], const float mat2[4][4], float limit) + t = R[0][1]; + R[0][1] = R[1][0]; + R[1][0] = t; + t = R[0][2]; + R[0][2] = R[2][0]; + R[2][0] = t; + t = R[0][3]; + R[0][3] = R[3][0]; + R[3][0] = t; + + t = R[1][2]; + R[1][2] = R[2][1]; + R[2][1] = t; + t = R[1][3]; + R[1][3] = R[3][1]; + R[3][1] = t; + + t = R[2][3]; + R[2][3] = R[3][2]; + R[3][2] = t; +} + +void transpose_m4_m4(float R[4][4], const float M[4][4]) +{ + BLI_assert(R != M); + + R[0][0] = M[0][0]; + R[0][1] = M[1][0]; + R[0][2] = M[2][0]; + R[0][3] = M[3][0]; + R[1][0] = M[0][1]; + R[1][1] = M[1][1]; + R[1][2] = M[2][1]; + R[1][3] = M[3][1]; + R[2][0] = M[0][2]; + R[2][1] = M[1][2]; + R[2][2] = M[2][2]; + R[2][3] = M[3][2]; + R[3][0] = M[0][3]; + R[3][1] = M[1][3]; + R[3][2] = M[2][3]; + R[3][3] = M[3][3]; +} + +bool compare_m4m4(const float mat1[4][4], const float mat2[4][4], float limit) { if (compare_v4v4(mat1[0], mat2[0], limit)) { if (compare_v4v4(mat1[1], mat2[1], limit)) { if (compare_v4v4(mat1[2], mat2[2], limit)) { if (compare_v4v4(mat1[3], mat2[3], limit)) { - return 1; + return true; } } } } - return 0; + return false; } /** @@ -1420,88 +1419,88 @@ int compare_m4m4(const float mat1[4][4], const float mat2[4][4], float limit) * * \param axis: Axis to build the orthonormal basis around. */ -void orthogonalize_m3(float mat[3][3], int axis) +void orthogonalize_m3(float R[3][3], int axis) { float size[3]; - mat3_to_size(size, mat); - normalize_v3(mat[axis]); + mat3_to_size(size, R); + normalize_v3(R[axis]); switch (axis) { case 0: - if (dot_v3v3(mat[0], mat[1]) < 1) { - cross_v3_v3v3(mat[2], mat[0], mat[1]); - normalize_v3(mat[2]); - cross_v3_v3v3(mat[1], mat[2], mat[0]); + if (dot_v3v3(R[0], R[1]) < 1) { + cross_v3_v3v3(R[2], R[0], R[1]); + normalize_v3(R[2]); + cross_v3_v3v3(R[1], R[2], R[0]); } - else if (dot_v3v3(mat[0], mat[2]) < 1) { - cross_v3_v3v3(mat[1], mat[2], mat[0]); - normalize_v3(mat[1]); - cross_v3_v3v3(mat[2], mat[0], mat[1]); + else if (dot_v3v3(R[0], R[2]) < 1) { + cross_v3_v3v3(R[1], R[2], R[0]); + normalize_v3(R[1]); + cross_v3_v3v3(R[2], R[0], R[1]); } else { float vec[3]; - vec[0] = mat[0][1]; - vec[1] = mat[0][2]; - vec[2] = mat[0][0]; + vec[0] = R[0][1]; + vec[1] = R[0][2]; + vec[2] = R[0][0]; - cross_v3_v3v3(mat[2], mat[0], vec); - normalize_v3(mat[2]); - cross_v3_v3v3(mat[1], mat[2], mat[0]); + cross_v3_v3v3(R[2], R[0], vec); + normalize_v3(R[2]); + cross_v3_v3v3(R[1], R[2], R[0]); } break; case 1: - if (dot_v3v3(mat[1], mat[0]) < 1) { - cross_v3_v3v3(mat[2], mat[0], mat[1]); - normalize_v3(mat[2]); - cross_v3_v3v3(mat[0], mat[1], mat[2]); + if (dot_v3v3(R[1], R[0]) < 1) { + cross_v3_v3v3(R[2], R[0], R[1]); + normalize_v3(R[2]); + cross_v3_v3v3(R[0], R[1], R[2]); } - else if (dot_v3v3(mat[0], mat[2]) < 1) { - cross_v3_v3v3(mat[0], mat[1], mat[2]); - normalize_v3(mat[0]); - cross_v3_v3v3(mat[2], mat[0], mat[1]); + else if (dot_v3v3(R[0], R[2]) < 1) { + cross_v3_v3v3(R[0], R[1], R[2]); + normalize_v3(R[0]); + cross_v3_v3v3(R[2], R[0], R[1]); } else { float vec[3]; - vec[0] = mat[1][1]; - vec[1] = mat[1][2]; - vec[2] = mat[1][0]; + vec[0] = R[1][1]; + vec[1] = R[1][2]; + vec[2] = R[1][0]; - cross_v3_v3v3(mat[0], mat[1], vec); - normalize_v3(mat[0]); - cross_v3_v3v3(mat[2], mat[0], mat[1]); + cross_v3_v3v3(R[0], R[1], vec); + normalize_v3(R[0]); + cross_v3_v3v3(R[2], R[0], R[1]); } break; case 2: - if (dot_v3v3(mat[2], mat[0]) < 1) { - cross_v3_v3v3(mat[1], mat[2], mat[0]); - normalize_v3(mat[1]); - cross_v3_v3v3(mat[0], mat[1], mat[2]); + if (dot_v3v3(R[2], R[0]) < 1) { + cross_v3_v3v3(R[1], R[2], R[0]); + normalize_v3(R[1]); + cross_v3_v3v3(R[0], R[1], R[2]); } - else if (dot_v3v3(mat[2], mat[1]) < 1) { - cross_v3_v3v3(mat[0], mat[1], mat[2]); - normalize_v3(mat[0]); - cross_v3_v3v3(mat[1], mat[2], mat[0]); + else if (dot_v3v3(R[2], R[1]) < 1) { + cross_v3_v3v3(R[0], R[1], R[2]); + normalize_v3(R[0]); + cross_v3_v3v3(R[1], R[2], R[0]); } else { float vec[3]; - vec[0] = mat[2][1]; - vec[1] = mat[2][2]; - vec[2] = mat[2][0]; + vec[0] = R[2][1]; + vec[1] = R[2][2]; + vec[2] = R[2][0]; - cross_v3_v3v3(mat[0], vec, mat[2]); - normalize_v3(mat[0]); - cross_v3_v3v3(mat[1], mat[2], mat[0]); + cross_v3_v3v3(R[0], vec, R[2]); + normalize_v3(R[0]); + cross_v3_v3v3(R[1], R[2], R[0]); } break; default: BLI_assert(0); break; } - mul_v3_fl(mat[0], size[0]); - mul_v3_fl(mat[1], size[1]); - mul_v3_fl(mat[2], size[2]); + mul_v3_fl(R[0], size[0]); + mul_v3_fl(R[1], size[1]); + mul_v3_fl(R[2], size[2]); } /** @@ -1509,88 +1508,88 @@ void orthogonalize_m3(float mat[3][3], int axis) * * \param axis: Axis to build the orthonormal basis around. */ -void orthogonalize_m4(float mat[4][4], int axis) +void orthogonalize_m4(float R[4][4], int axis) { float size[3]; - mat4_to_size(size, mat); - normalize_v3(mat[axis]); + mat4_to_size(size, R); + normalize_v3(R[axis]); switch (axis) { case 0: - if (dot_v3v3(mat[0], mat[1]) < 1) { - cross_v3_v3v3(mat[2], mat[0], mat[1]); - normalize_v3(mat[2]); - cross_v3_v3v3(mat[1], mat[2], mat[0]); + if (dot_v3v3(R[0], R[1]) < 1) { + cross_v3_v3v3(R[2], R[0], R[1]); + normalize_v3(R[2]); + cross_v3_v3v3(R[1], R[2], R[0]); } - else if (dot_v3v3(mat[0], mat[2]) < 1) { - cross_v3_v3v3(mat[1], mat[2], mat[0]); - normalize_v3(mat[1]); - cross_v3_v3v3(mat[2], mat[0], mat[1]); + else if (dot_v3v3(R[0], R[2]) < 1) { + cross_v3_v3v3(R[1], R[2], R[0]); + normalize_v3(R[1]); + cross_v3_v3v3(R[2], R[0], R[1]); } else { float vec[3]; - vec[0] = mat[0][1]; - vec[1] = mat[0][2]; - vec[2] = mat[0][0]; + vec[0] = R[0][1]; + vec[1] = R[0][2]; + vec[2] = R[0][0]; - cross_v3_v3v3(mat[2], mat[0], vec); - normalize_v3(mat[2]); - cross_v3_v3v3(mat[1], mat[2], mat[0]); + cross_v3_v3v3(R[2], R[0], vec); + normalize_v3(R[2]); + cross_v3_v3v3(R[1], R[2], R[0]); } break; case 1: - if (dot_v3v3(mat[1], mat[0]) < 1) { - cross_v3_v3v3(mat[2], mat[0], mat[1]); - normalize_v3(mat[2]); - cross_v3_v3v3(mat[0], mat[1], mat[2]); + if (dot_v3v3(R[1], R[0]) < 1) { + cross_v3_v3v3(R[2], R[0], R[1]); + normalize_v3(R[2]); + cross_v3_v3v3(R[0], R[1], R[2]); } - else if (dot_v3v3(mat[0], mat[2]) < 1) { - cross_v3_v3v3(mat[0], mat[1], mat[2]); - normalize_v3(mat[0]); - cross_v3_v3v3(mat[2], mat[0], mat[1]); + else if (dot_v3v3(R[0], R[2]) < 1) { + cross_v3_v3v3(R[0], R[1], R[2]); + normalize_v3(R[0]); + cross_v3_v3v3(R[2], R[0], R[1]); } else { float vec[3]; - vec[0] = mat[1][1]; - vec[1] = mat[1][2]; - vec[2] = mat[1][0]; + vec[0] = R[1][1]; + vec[1] = R[1][2]; + vec[2] = R[1][0]; - cross_v3_v3v3(mat[0], mat[1], vec); - normalize_v3(mat[0]); - cross_v3_v3v3(mat[2], mat[0], mat[1]); + cross_v3_v3v3(R[0], R[1], vec); + normalize_v3(R[0]); + cross_v3_v3v3(R[2], R[0], R[1]); } break; case 2: - if (dot_v3v3(mat[2], mat[0]) < 1) { - cross_v3_v3v3(mat[1], mat[2], mat[0]); - normalize_v3(mat[1]); - cross_v3_v3v3(mat[0], mat[1], mat[2]); + if (dot_v3v3(R[2], R[0]) < 1) { + cross_v3_v3v3(R[1], R[2], R[0]); + normalize_v3(R[1]); + cross_v3_v3v3(R[0], R[1], R[2]); } - else if (dot_v3v3(mat[2], mat[1]) < 1) { - cross_v3_v3v3(mat[0], mat[1], mat[2]); - normalize_v3(mat[0]); - cross_v3_v3v3(mat[1], mat[2], mat[0]); + else if (dot_v3v3(R[2], R[1]) < 1) { + cross_v3_v3v3(R[0], R[1], R[2]); + normalize_v3(R[0]); + cross_v3_v3v3(R[1], R[2], R[0]); } else { float vec[3]; - vec[0] = mat[2][1]; - vec[1] = mat[2][2]; - vec[2] = mat[2][0]; + vec[0] = R[2][1]; + vec[1] = R[2][2]; + vec[2] = R[2][0]; - cross_v3_v3v3(mat[0], vec, mat[2]); - normalize_v3(mat[0]); - cross_v3_v3v3(mat[1], mat[2], mat[0]); + cross_v3_v3v3(R[0], vec, R[2]); + normalize_v3(R[0]); + cross_v3_v3v3(R[1], R[2], R[0]); } break; default: BLI_assert(0); break; } - mul_v3_fl(mat[0], size[0]); - mul_v3_fl(mat[1], size[1]); - mul_v3_fl(mat[2], size[2]); + mul_v3_fl(R[0], size[0]); + mul_v3_fl(R[1], size[1]); + mul_v3_fl(R[2], size[2]); } /** Make an orthonormal basis around v1 in a way that is stable and symmetric. */ @@ -1793,84 +1792,84 @@ bool is_uniform_scaled_m4(const float m[4][4]) return is_uniform_scaled_m3(t); } -void normalize_m2_ex(float mat[2][2], float r_scale[2]) +void normalize_m2_ex(float R[2][2], float r_scale[2]) { int i; for (i = 0; i < 2; i++) { - r_scale[i] = normalize_v2(mat[i]); + r_scale[i] = normalize_v2(R[i]); } } -void normalize_m2(float mat[2][2]) +void normalize_m2(float R[2][2]) { int i; for (i = 0; i < 2; i++) { - normalize_v2(mat[i]); + normalize_v2(R[i]); } } -void normalize_m2_m2_ex(float rmat[2][2], const float mat[2][2], float r_scale[2]) +void normalize_m2_m2_ex(float R[2][2], const float M[2][2], float r_scale[2]) { int i; for (i = 0; i < 2; i++) { - r_scale[i] = normalize_v2_v2(rmat[i], mat[i]); + r_scale[i] = normalize_v2_v2(R[i], M[i]); } } -void normalize_m2_m2(float rmat[2][2], const float mat[2][2]) +void normalize_m2_m2(float R[2][2], const float M[2][2]) { int i; for (i = 0; i < 2; i++) { - normalize_v2_v2(rmat[i], mat[i]); + normalize_v2_v2(R[i], M[i]); } } -void normalize_m3_ex(float mat[3][3], float r_scale[3]) +void normalize_m3_ex(float R[3][3], float r_scale[3]) { int i; for (i = 0; i < 3; i++) { - r_scale[i] = normalize_v3(mat[i]); + r_scale[i] = normalize_v3(R[i]); } } -void normalize_m3(float mat[3][3]) +void normalize_m3(float R[3][3]) { int i; for (i = 0; i < 3; i++) { - normalize_v3(mat[i]); + normalize_v3(R[i]); } } -void normalize_m3_m3_ex(float rmat[3][3], const float mat[3][3], float r_scale[3]) +void normalize_m3_m3_ex(float R[3][3], const float M[3][3], float r_scale[3]) { int i; for (i = 0; i < 3; i++) { - r_scale[i] = normalize_v3_v3(rmat[i], mat[i]); + r_scale[i] = normalize_v3_v3(R[i], M[i]); } } -void normalize_m3_m3(float rmat[3][3], const float mat[3][3]) +void normalize_m3_m3(float R[3][3], const float M[3][3]) { int i; for (i = 0; i < 3; i++) { - normalize_v3_v3(rmat[i], mat[i]); + normalize_v3_v3(R[i], M[i]); } } -void normalize_m4_ex(float mat[4][4], float r_scale[3]) +void normalize_m4_ex(float R[4][4], float r_scale[3]) { int i; for (i = 0; i < 3; i++) { - r_scale[i] = normalize_v3(mat[i]); + r_scale[i] = normalize_v3(R[i]); if (r_scale[i] != 0.0f) { - mat[i][3] /= r_scale[i]; + R[i][3] /= r_scale[i]; } } } -void normalize_m4(float mat[4][4]) +void normalize_m4(float R[4][4]) { int i; for (i = 0; i < 3; i++) { - float len = normalize_v3(mat[i]); + float len = normalize_v3(R[i]); if (len != 0.0f) { - mat[i][3] /= len; + R[i][3] /= len; } } } @@ -1894,75 +1893,75 @@ void normalize_m4_m4(float rmat[4][4], const float mat[4][4]) copy_v4_v4(rmat[3], mat[3]); } -void adjoint_m2_m2(float m1[2][2], const float m[2][2]) +void adjoint_m2_m2(float R[2][2], const float M[2][2]) { - BLI_assert(m1 != m); - m1[0][0] = m[1][1]; - m1[0][1] = -m[0][1]; - m1[1][0] = -m[1][0]; - m1[1][1] = m[0][0]; + BLI_assert(R != M); + R[0][0] = M[1][1]; + R[0][1] = -M[0][1]; + R[1][0] = -M[1][0]; + R[1][1] = M[0][0]; } -void adjoint_m3_m3(float m1[3][3], const float m[3][3]) +void adjoint_m3_m3(float R[3][3], const float M[3][3]) { - BLI_assert(m1 != m); - m1[0][0] = m[1][1] * m[2][2] - m[1][2] * m[2][1]; - m1[0][1] = -m[0][1] * m[2][2] + m[0][2] * m[2][1]; - m1[0][2] = m[0][1] * m[1][2] - m[0][2] * m[1][1]; + BLI_assert(R != M); + R[0][0] = M[1][1] * M[2][2] - M[1][2] * M[2][1]; + R[0][1] = -M[0][1] * M[2][2] + M[0][2] * M[2][1]; + R[0][2] = M[0][1] * M[1][2] - M[0][2] * M[1][1]; - m1[1][0] = -m[1][0] * m[2][2] + m[1][2] * m[2][0]; - m1[1][1] = m[0][0] * m[2][2] - m[0][2] * m[2][0]; - m1[1][2] = -m[0][0] * m[1][2] + m[0][2] * m[1][0]; + R[1][0] = -M[1][0] * M[2][2] + M[1][2] * M[2][0]; + R[1][1] = M[0][0] * M[2][2] - M[0][2] * M[2][0]; + R[1][2] = -M[0][0] * M[1][2] + M[0][2] * M[1][0]; - m1[2][0] = m[1][0] * m[2][1] - m[1][1] * m[2][0]; - m1[2][1] = -m[0][0] * m[2][1] + m[0][1] * m[2][0]; - m1[2][2] = m[0][0] * m[1][1] - m[0][1] * m[1][0]; + R[2][0] = M[1][0] * M[2][1] - M[1][1] * M[2][0]; + R[2][1] = -M[0][0] * M[2][1] + M[0][1] * M[2][0]; + R[2][2] = M[0][0] * M[1][1] - M[0][1] * M[1][0]; } -void adjoint_m4_m4(float out[4][4], const float in[4][4]) /* out = ADJ(in) */ +void adjoint_m4_m4(float R[4][4], const float M[4][4]) /* out = ADJ(in) */ { float a1, a2, a3, a4, b1, b2, b3, b4; float c1, c2, c3, c4, d1, d2, d3, d4; - a1 = in[0][0]; - b1 = in[0][1]; - c1 = in[0][2]; - d1 = in[0][3]; + a1 = M[0][0]; + b1 = M[0][1]; + c1 = M[0][2]; + d1 = M[0][3]; - a2 = in[1][0]; - b2 = in[1][1]; - c2 = in[1][2]; - d2 = in[1][3]; + a2 = M[1][0]; + b2 = M[1][1]; + c2 = M[1][2]; + d2 = M[1][3]; - a3 = in[2][0]; - b3 = in[2][1]; - c3 = in[2][2]; - d3 = in[2][3]; + a3 = M[2][0]; + b3 = M[2][1]; + c3 = M[2][2]; + d3 = M[2][3]; - a4 = in[3][0]; - b4 = in[3][1]; - c4 = in[3][2]; - d4 = in[3][3]; + a4 = M[3][0]; + b4 = M[3][1]; + c4 = M[3][2]; + d4 = M[3][3]; - out[0][0] = determinant_m3(b2, b3, b4, c2, c3, c4, d2, d3, d4); - out[1][0] = -determinant_m3(a2, a3, a4, c2, c3, c4, d2, d3, d4); - out[2][0] = determinant_m3(a2, a3, a4, b2, b3, b4, d2, d3, d4); - out[3][0] = -determinant_m3(a2, a3, a4, b2, b3, b4, c2, c3, c4); + R[0][0] = determinant_m3(b2, b3, b4, c2, c3, c4, d2, d3, d4); + R[1][0] = -determinant_m3(a2, a3, a4, c2, c3, c4, d2, d3, d4); + R[2][0] = determinant_m3(a2, a3, a4, b2, b3, b4, d2, d3, d4); + R[3][0] = -determinant_m3(a2, a3, a4, b2, b3, b4, c2, c3, c4); - out[0][1] = -determinant_m3(b1, b3, b4, c1, c3, c4, d1, d3, d4); - out[1][1] = determinant_m3(a1, a3, a4, c1, c3, c4, d1, d3, d4); - out[2][1] = -determinant_m3(a1, a3, a4, b1, b3, b4, d1, d3, d4); - out[3][1] = determinant_m3(a1, a3, a4, b1, b3, b4, c1, c3, c4); + R[0][1] = -determinant_m3(b1, b3, b4, c1, c3, c4, d1, d3, d4); + R[1][1] = determinant_m3(a1, a3, a4, c1, c3, c4, d1, d3, d4); + R[2][1] = -determinant_m3(a1, a3, a4, b1, b3, b4, d1, d3, d4); + R[3][1] = determinant_m3(a1, a3, a4, b1, b3, b4, c1, c3, c4); - out[0][2] = determinant_m3(b1, b2, b4, c1, c2, c4, d1, d2, d4); - out[1][2] = -determinant_m3(a1, a2, a4, c1, c2, c4, d1, d2, d4); - out[2][2] = determinant_m3(a1, a2, a4, b1, b2, b4, d1, d2, d4); - out[3][2] = -determinant_m3(a1, a2, a4, b1, b2, b4, c1, c2, c4); + R[0][2] = determinant_m3(b1, b2, b4, c1, c2, c4, d1, d2, d4); + R[1][2] = -determinant_m3(a1, a2, a4, c1, c2, c4, d1, d2, d4); + R[2][2] = determinant_m3(a1, a2, a4, b1, b2, b4, d1, d2, d4); + R[3][2] = -determinant_m3(a1, a2, a4, b1, b2, b4, c1, c2, c4); - out[0][3] = -determinant_m3(b1, b2, b3, c1, c2, c3, d1, d2, d3); - out[1][3] = determinant_m3(a1, a2, a3, c1, c2, c3, d1, d2, d3); - out[2][3] = -determinant_m3(a1, a2, a3, b1, b2, b3, d1, d2, d3); - out[3][3] = determinant_m3(a1, a2, a3, b1, b2, b3, c1, c2, c3); + R[0][3] = -determinant_m3(b1, b2, b3, c1, c2, c3, d1, d2, d3); + R[1][3] = determinant_m3(a1, a2, a3, c1, c2, c3, d1, d2, d3); + R[2][3] = -determinant_m3(a1, a2, a3, b1, b2, b3, d1, d2, d3); + R[3][3] = determinant_m3(a1, a2, a3, b1, b2, b3, c1, c2, c3); } float determinant_m2(float a, float b, float c, float d) @@ -2017,65 +2016,65 @@ float determinant_m4(const float m[4][4]) /****************************** Transformations ******************************/ -void size_to_mat3(float mat[3][3], const float size[3]) +void size_to_mat3(float R[3][3], const float size[3]) { - mat[0][0] = size[0]; - mat[0][1] = 0.0f; - mat[0][2] = 0.0f; - mat[1][1] = size[1]; - mat[1][0] = 0.0f; - mat[1][2] = 0.0f; - mat[2][2] = size[2]; - mat[2][1] = 0.0f; - mat[2][0] = 0.0f; + R[0][0] = size[0]; + R[0][1] = 0.0f; + R[0][2] = 0.0f; + R[1][1] = size[1]; + R[1][0] = 0.0f; + R[1][2] = 0.0f; + R[2][2] = size[2]; + R[2][1] = 0.0f; + R[2][0] = 0.0f; } -void size_to_mat4(float mat[4][4], const float size[3]) +void size_to_mat4(float R[4][4], const float size[3]) { - mat[0][0] = size[0]; - mat[0][1] = 0.0f; - mat[0][2] = 0.0f; - mat[0][3] = 0.0f; - mat[1][0] = 0.0f; - mat[1][1] = size[1]; - mat[1][2] = 0.0f; - mat[1][3] = 0.0f; - mat[2][0] = 0.0f; - mat[2][1] = 0.0f; - mat[2][2] = size[2]; - mat[2][3] = 0.0f; - mat[3][0] = 0.0f; - mat[3][1] = 0.0f; - mat[3][2] = 0.0f; - mat[3][3] = 1.0f; + R[0][0] = size[0]; + R[0][1] = 0.0f; + R[0][2] = 0.0f; + R[0][3] = 0.0f; + R[1][0] = 0.0f; + R[1][1] = size[1]; + R[1][2] = 0.0f; + R[1][3] = 0.0f; + R[2][0] = 0.0f; + R[2][1] = 0.0f; + R[2][2] = size[2]; + R[2][3] = 0.0f; + R[3][0] = 0.0f; + R[3][1] = 0.0f; + R[3][2] = 0.0f; + R[3][3] = 1.0f; } -void mat3_to_size(float size[3], const float mat[3][3]) +void mat3_to_size(float size[3], const float M[3][3]) { - size[0] = len_v3(mat[0]); - size[1] = len_v3(mat[1]); - size[2] = len_v3(mat[2]); + size[0] = len_v3(M[0]); + size[1] = len_v3(M[1]); + size[2] = len_v3(M[2]); } -void mat4_to_size(float size[3], const float mat[4][4]) +void mat4_to_size(float size[3], const float M[4][4]) { - size[0] = len_v3(mat[0]); - size[1] = len_v3(mat[1]); - size[2] = len_v3(mat[2]); + size[0] = len_v3(M[0]); + size[1] = len_v3(M[1]); + size[2] = len_v3(M[2]); } /** * Extract scale factors from the matrix, with correction to ensure * exact volume in case of a sheared matrix. */ -void mat4_to_size_fix_shear(float size[3], const float mat[4][4]) +void mat4_to_size_fix_shear(float size[3], const float M[4][4]) { - mat4_to_size(size, mat); + mat4_to_size(size, M); float volume = size[0] * size[1] * size[2]; if (volume != 0.0f) { - mul_v3_fl(size, cbrtf(fabsf(mat4_to_volume_scale(mat) / volume))); + mul_v3_fl(size, cbrtf(fabsf(mat4_to_volume_scale(M) / volume))); } } @@ -2203,22 +2202,22 @@ void mat3_polar_decompose(const float mat3[3][3], float r_U[3][3], float r_P[3][ } #endif -void scale_m3_fl(float m[3][3], float scale) +void scale_m3_fl(float R[3][3], float scale) { - m[0][0] = m[1][1] = m[2][2] = scale; - m[0][1] = m[0][2] = 0.0; - m[1][0] = m[1][2] = 0.0; - m[2][0] = m[2][1] = 0.0; + R[0][0] = R[1][1] = R[2][2] = scale; + R[0][1] = R[0][2] = 0.0; + R[1][0] = R[1][2] = 0.0; + R[2][0] = R[2][1] = 0.0; } -void scale_m4_fl(float m[4][4], float scale) +void scale_m4_fl(float R[4][4], float scale) { - m[0][0] = m[1][1] = m[2][2] = scale; - m[3][3] = 1.0; - m[0][1] = m[0][2] = m[0][3] = 0.0; - m[1][0] = m[1][2] = m[1][3] = 0.0; - m[2][0] = m[2][1] = m[2][3] = 0.0; - m[3][0] = m[3][1] = m[3][2] = 0.0; + R[0][0] = R[1][1] = R[2][2] = scale; + R[3][3] = 1.0; + R[0][1] = R[0][2] = R[0][3] = 0.0; + R[1][0] = R[1][2] = R[1][3] = 0.0; + R[2][0] = R[2][1] = R[2][3] = 0.0; + R[3][0] = R[3][1] = R[3][2] = 0.0; } void translate_m4(float mat[4][4], float Tx, float Ty, float Tz) @@ -2486,14 +2485,14 @@ bool equals_m4m4(const float mat1[4][4], const float mat2[4][4]) * Make a 4x4 matrix out of 3 transform components. * Matrices are made in the order: `scale * rot * loc` */ -void loc_rot_size_to_mat4(float mat[4][4], +void loc_rot_size_to_mat4(float R[4][4], const float loc[3], const float rot[3][3], const float size[3]) { - copy_m4_m3(mat, rot); - rescale_m4(mat, size); - copy_v3_v3(mat[3], loc); + copy_m4_m3(R, rot); + rescale_m4(R, size); + copy_v3_v3(R[3], loc); } /** @@ -2502,7 +2501,7 @@ void loc_rot_size_to_mat4(float mat[4][4], * * TODO: need to have a version that allows for rotation order... */ -void loc_eul_size_to_mat4(float mat[4][4], +void loc_eul_size_to_mat4(float R[4][4], const float loc[3], const float eul[3], const float size[3]) @@ -2510,7 +2509,7 @@ void loc_eul_size_to_mat4(float mat[4][4], float rmat[3][3], smat[3][3], tmat[3][3]; /* initialize new matrix */ - unit_m4(mat); + unit_m4(R); /* make rotation + scaling part */ eul_to_mat3(rmat, eul); @@ -2518,19 +2517,19 @@ void loc_eul_size_to_mat4(float mat[4][4], mul_m3_m3m3(tmat, rmat, smat); /* copy rot/scale part to output matrix*/ - copy_m4_m3(mat, tmat); + copy_m4_m3(R, tmat); /* copy location to matrix */ - mat[3][0] = loc[0]; - mat[3][1] = loc[1]; - mat[3][2] = loc[2]; + R[3][0] = loc[0]; + R[3][1] = loc[1]; + R[3][2] = loc[2]; } /** * Make a 4x4 matrix out of 3 transform components. * Matrices are made in the order: `scale * rot * loc` */ -void loc_eulO_size_to_mat4(float mat[4][4], +void loc_eulO_size_to_mat4(float R[4][4], const float loc[3], const float eul[3], const float size[3], @@ -2539,7 +2538,7 @@ void loc_eulO_size_to_mat4(float mat[4][4], float rmat[3][3], smat[3][3], tmat[3][3]; /* initialize new matrix */ - unit_m4(mat); + unit_m4(R); /* make rotation + scaling part */ eulO_to_mat3(rmat, eul, rotOrder); @@ -2547,19 +2546,19 @@ void loc_eulO_size_to_mat4(float mat[4][4], mul_m3_m3m3(tmat, rmat, smat); /* copy rot/scale part to output matrix*/ - copy_m4_m3(mat, tmat); + copy_m4_m3(R, tmat); /* copy location to matrix */ - mat[3][0] = loc[0]; - mat[3][1] = loc[1]; - mat[3][2] = loc[2]; + R[3][0] = loc[0]; + R[3][1] = loc[1]; + R[3][2] = loc[2]; } /** * Make a 4x4 matrix out of 3 transform components. * Matrices are made in the order: `scale * rot * loc` */ -void loc_quat_size_to_mat4(float mat[4][4], +void loc_quat_size_to_mat4(float R[4][4], const float loc[3], const float quat[4], const float size[3]) @@ -2567,7 +2566,7 @@ void loc_quat_size_to_mat4(float mat[4][4], float rmat[3][3], smat[3][3], tmat[3][3]; /* initialize new matrix */ - unit_m4(mat); + unit_m4(R); /* make rotation + scaling part */ quat_to_mat3(rmat, quat); @@ -2575,23 +2574,20 @@ void loc_quat_size_to_mat4(float mat[4][4], mul_m3_m3m3(tmat, rmat, smat); /* copy rot/scale part to output matrix*/ - copy_m4_m3(mat, tmat); + copy_m4_m3(R, tmat); /* copy location to matrix */ - mat[3][0] = loc[0]; - mat[3][1] = loc[1]; - mat[3][2] = loc[2]; + R[3][0] = loc[0]; + R[3][1] = loc[1]; + R[3][2] = loc[2]; } -void loc_axisangle_size_to_mat4(float mat[4][4], - const float loc[3], - const float axis[3], - const float angle, - const float size[3]) +void loc_axisangle_size_to_mat4( + float R[4][4], const float loc[3], const float axis[3], const float angle, const float size[3]) { float q[4]; axis_angle_to_quat(q, axis, angle); - loc_quat_size_to_mat4(mat, loc, q, size); + loc_quat_size_to_mat4(R, loc, q, size); } /*********************************** Other ***********************************/ |