BLI_math: add 'equals_m4m4' (and 'm3' variant) helpers.

This commit is contained in:
Bastien Montagne 2016-05-12 12:07:31 +02:00
parent 0903ee6ce2
commit ba6519f0a7
2 changed files with 18 additions and 0 deletions

View File

@ -246,6 +246,9 @@ bool is_negative_m4(float mat[4][4]);
bool is_zero_m3(float mat[3][3]);
bool is_zero_m4(float mat[4][4]);
bool equals_m3m3(float mat1[3][3], float mat2[3][3]);
bool equals_m4m4(float mat1[4][4], float mat2[4][4]);
/* SpaceTransform helper */
typedef struct SpaceTransform {
float local2target[4][4];

View File

@ -1828,6 +1828,21 @@ bool is_zero_m4(float mat[4][4])
is_zero_v4(mat[3]));
}
bool equals_m3m3(float mat1[3][3], float mat2[3][3])
{
return (equals_v3v3(mat1[0], mat2[0]) &&
equals_v3v3(mat1[1], mat2[1]) &&
equals_v3v3(mat1[2], mat2[2]));
}
bool equals_m4m4(float mat1[4][4], float mat2[4][4])
{
return (equals_v4v4(mat1[0], mat2[0]) &&
equals_v4v4(mat1[1], mat2[1]) &&
equals_v4v4(mat1[2], mat2[2]) &&
equals_v4v4(mat1[3], mat2[3]));
}
/* make a 4x4 matrix out of 3 transform components */
/* matrices are made in the order: scale * rot * loc */
/* TODO: need to have a version that allows for rotation order... */