diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2016-05-12 13:07:31 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2016-05-13 13:06:15 +0300 |
commit | ba6519f0a780bc32dadaa1be5b7bf53324de2cc8 (patch) | |
tree | 903742354bc1f0ce7dae8e0860cd137f826b55e2 | |
parent | 0903ee6ce26d10c79f31c523aca568ad05da576d (diff) |
BLI_math: add 'equals_m4m4' (and 'm3' variant) helpers.
-rw-r--r-- | source/blender/blenlib/BLI_math_matrix.h | 3 | ||||
-rw-r--r-- | source/blender/blenlib/intern/math_matrix.c | 15 |
2 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_math_matrix.h b/source/blender/blenlib/BLI_math_matrix.h index 6fb983a622e..6d6fbe4e7af 100644 --- a/source/blender/blenlib/BLI_math_matrix.h +++ b/source/blender/blenlib/BLI_math_matrix.h @@ -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]; diff --git a/source/blender/blenlib/intern/math_matrix.c b/source/blender/blenlib/intern/math_matrix.c index 52ff6fd3e8a..0e3f905ef16 100644 --- a/source/blender/blenlib/intern/math_matrix.c +++ b/source/blender/blenlib/intern/math_matrix.c @@ -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... */ |