[Bf-blender-cvs] [671f75a] master: Math Lib: Add copy_m2_m2, unit_m2, zero_m2

Campbell Barton noreply at git.blender.org
Sat Sep 6 03:31:09 CEST 2014


Commit: 671f75a12a1d9e57d9f609148538bcb9cf8b3a46
Author: Campbell Barton
Date:   Sat Sep 6 11:19:34 2014 +1000
Branches: master
https://developer.blender.org/rB671f75a12a1d9e57d9f609148538bcb9cf8b3a46

Math Lib: Add copy_m2_m2, unit_m2, zero_m2

===================================================================

M	source/blender/blenlib/BLI_math_matrix.h
M	source/blender/blenlib/intern/math_matrix.c
M	source/blender/python/mathutils/mathutils_Matrix.c

===================================================================

diff --git a/source/blender/blenlib/BLI_math_matrix.h b/source/blender/blenlib/BLI_math_matrix.h
index 7bcaab1..0eac92c 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 09c581a..888587e 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 3456400..09db282 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);




More information about the Bf-blender-cvs mailing list