diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-09-06 05:19:34 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-09-06 05:29:27 +0400 |
commit | 671f75a12a1d9e57d9f609148538bcb9cf8b3a46 (patch) | |
tree | b410028251edc29477105515f122d0aa1ffacbb1 /source/blender | |
parent | 7971e441c15b5740ac2e09f898e24011b88f51a5 (diff) |
Math Lib: Add copy_m2_m2, unit_m2, zero_m2
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenlib/BLI_math_matrix.h | 3 | ||||
-rw-r--r-- | source/blender/blenlib/intern/math_matrix.c | 25 | ||||
-rw-r--r-- | source/blender/python/mathutils/mathutils_Matrix.c | 5 |
3 files changed, 25 insertions, 8 deletions
diff --git a/source/blender/blenlib/BLI_math_matrix.h b/source/blender/blenlib/BLI_math_matrix.h index 7bcaab1f939..0eac92c1db9 100644 --- a/source/blender/blenlib/BLI_math_matrix.h +++ b/source/blender/blenlib/BLI_math_matrix.h @@ -38,12 +38,15 @@ extern "C" { /********************************* Init **************************************/ +void zero_m2(float R[2][2]); void zero_m3(float R[3][3]); void zero_m4(float R[4][4]); +void unit_m2(float R[2][2]); void unit_m3(float R[3][3]); void unit_m4(float R[4][4]); +void copy_m2_m2(float R[2][2], float A[2][2]); void copy_m3_m3(float R[3][3], float A[3][3]); void copy_m4_m4(float R[4][4], float A[4][4]); void copy_m3_m4(float R[3][3], float A[4][4]); diff --git a/source/blender/blenlib/intern/math_matrix.c b/source/blender/blenlib/intern/math_matrix.c index 09c581a589b..888587e055c 100644 --- a/source/blender/blenlib/intern/math_matrix.c +++ b/source/blender/blenlib/intern/math_matrix.c @@ -35,14 +35,26 @@ /********************************* Init **************************************/ +void zero_m2(float m[2][2]) +{ + memset(m, 0, sizeof(float[2][2])); +} + void zero_m3(float m[3][3]) { - memset(m, 0, 3 * 3 * sizeof(float)); + memset(m, 0, sizeof(float[3][3])); } void zero_m4(float m[4][4]) { - memset(m, 0, 4 * 4 * sizeof(float)); + memset(m, 0, sizeof(float[4][4])); +} + +void unit_m2(float m[2][2]) +{ + m[0][0] = m[1][1] = 1.0f; + m[0][1] = 0.0f; + m[1][0] = 0.0f; } void unit_m3(float m[3][3]) @@ -62,15 +74,20 @@ void unit_m4(float m[4][4]) m[3][0] = m[3][1] = m[3][2] = 0.0f; } +void copy_m2_m2(float m1[2][2], float m2[2][2]) +{ + memcpy(m1, m2, sizeof(float[2][2])); +} + void copy_m3_m3(float m1[3][3], float m2[3][3]) { /* destination comes first: */ - memcpy(&m1[0], &m2[0], 9 * sizeof(float)); + memcpy(m1, m2, sizeof(float[3][3])); } void copy_m4_m4(float m1[4][4], float m2[4][4]) { - memcpy(m1, m2, 4 * 4 * sizeof(float)); + memcpy(m1, m2, sizeof(float[4][4])); } void copy_m3_m4(float m1[3][3], float m2[4][4]) diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c index 34564007478..09db282d956 100644 --- a/source/blender/python/mathutils/mathutils_Matrix.c +++ b/source/blender/python/mathutils/mathutils_Matrix.c @@ -1755,10 +1755,7 @@ static PyObject *Matrix_identity(MatrixObject *self) } if (self->num_col == 2) { - MATRIX_ITEM(self, 0, 0) = 1.0f; - MATRIX_ITEM(self, 0, 1) = 0.0f; - MATRIX_ITEM(self, 1, 0) = 0.0f; - MATRIX_ITEM(self, 1, 1) = 1.0f; + unit_m2((float (*)[2])self->matrix); } else if (self->num_col == 3) { unit_m3((float (*)[3])self->matrix); |