Code cleanup: remove redundant matrix initialization
authorCampbell Barton <ideasman42@gmail.com>
Tue, 29 Apr 2014 08:12:44 +0000 (18:12 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 29 Apr 2014 08:13:20 +0000 (18:13 +1000)
source/blender/blenkernel/intern/armature.c
source/blender/blenkernel/intern/object.c
source/blender/blenlib/intern/math_geom.c
source/blender/editors/sculpt_paint/sculpt.c
source/blender/editors/space_view3d/view3d_snap.c
source/blender/editors/transform/transform.c
source/blender/editors/transform/transform_constraints.c
source/blender/editors/transform/transform_manipulator.c
source/blender/python/mathutils/mathutils_Matrix.c
source/blender/render/intern/source/zbuf.c

index 3920f595514e16e099af1b4f4369fc5b145a2957..6d01d9ff14b3ebdaf83566a1ea77a90e07c24fea 100644 (file)
@@ -594,7 +594,6 @@ static void pchan_b_bone_defmats(bPoseChannel *pchan, bPoseChanDeform *pdef_info
        Mat4 b_bone[MAX_BBONE_SUBDIV], b_bone_rest[MAX_BBONE_SUBDIV];
        Mat4 *b_bone_mats;
        DualQuat *b_bone_dual_quats = NULL;
-       float tmat[4][4] = MAT4_UNITY;
        int a;
 
        b_bone_spline_setup(pchan, 0, b_bone);
@@ -620,6 +619,8 @@ static void pchan_b_bone_defmats(bPoseChannel *pchan, bPoseChanDeform *pdef_info
         * - transform back into global space */
 
        for (a = 0; a < bone->segments; a++) {
+               float tmat[4][4];
+
                invert_m4_m4(tmat, b_bone_rest[a].mat);
 
                mul_serie_m4(b_bone_mats[a + 1].mat, pchan->chan_mat, bone->arm_mat, b_bone[a].mat, tmat, b_bone_mats[0].mat,
@@ -1108,10 +1109,11 @@ void BKE_armature_mat_world_to_pose(Object *ob, float inmat[4][4], float outmat[
  *       pose-channel into its local space (i.e. 'visual'-keyframing) */
 void BKE_armature_loc_world_to_pose(Object *ob, const float inloc[3], float outloc[3])
 {
-       float xLocMat[4][4] = MAT4_UNITY;
+       float xLocMat[4][4];
        float nLocMat[4][4];
 
        /* build matrix for location */
+       unit_m4(xLocMat);
        copy_v3_v3(xLocMat[3], inloc);
 
        /* get bone-space cursor matrix and extract location */
@@ -1277,10 +1279,11 @@ void BKE_armature_mat_bone_to_pose(bPoseChannel *pchan, float inmat[4][4], float
  *       pose-channel into its local space (i.e. 'visual'-keyframing) */
 void BKE_armature_loc_pose_to_bone(bPoseChannel *pchan, const float inloc[3], float outloc[3])
 {
-       float xLocMat[4][4] = MAT4_UNITY;
+       float xLocMat[4][4];
        float nLocMat[4][4];
 
        /* build matrix for location */
+       unit_m4(xLocMat);
        copy_v3_v3(xLocMat[3], inloc);
 
        /* get bone-space cursor matrix and extract location */
index f6018409c620701749b87efa838b5ffeea998670..6f4fe636de32766e48b6fb7b8c9c7c485b036a4d 100644 (file)
@@ -2323,7 +2323,7 @@ void BKE_object_where_is_calc_time_ex(Scene *scene, Object *ob, float ctime,
        
        if (ob->parent) {
                Object *par = ob->parent;
-               float slowmat[4][4] = MAT4_UNITY;
+               float slowmat[4][4];
                
                /* calculate parent matrix */
                solve_parenting(scene, ob, par, ob->obmat, slowmat, r_originmat, true);
@@ -2369,9 +2369,10 @@ void BKE_object_where_is_calc_time(Scene *scene, Object *ob, float ctime)
  * used for bundles orientation in 3d space relative to parented blender camera */
 void BKE_object_where_is_calc_mat4(Scene *scene, Object *ob, float obmat[4][4])
 {
-       float slowmat[4][4] = MAT4_UNITY;
 
        if (ob->parent) {
+               float slowmat[4][4];
+
                Object *par = ob->parent;
                
                solve_parenting(scene, ob, par, obmat, slowmat, NULL, false);
index a12896049f5d3efd56e7e3e74757a337d885e414..58bb7c1f121954c764578d399c83bee7b900a900 100644 (file)
@@ -2996,9 +2996,10 @@ void polarview_m4(float Vm[4][4], float dist, float azimuth, float incidence, fl
 void lookat_m4(float mat[4][4], float vx, float vy, float vz, float px, float py, float pz, float twist)
 {
        float sine, cosine, hyp, hyp1, dx, dy, dz;
-       float mat1[4][4] = MAT4_UNITY;
+       float mat1[4][4];
 
        unit_m4(mat);
+       unit_m4(mat1);
 
        rotate_m4(mat, 'Z', -twist);
 
index d8816e73dff27a02136a4f16aef1650a04cac874..b2e5207a69c836138f7280309516f7c270ba3bac 100644 (file)
@@ -781,7 +781,8 @@ static float calc_overlap(StrokeCache *cache, const char symm, const char axis,
        flip_v3_v3(mirror, cache->true_location, symm);
 
        if (axis != 0) {
-               float mat[4][4] = MAT4_UNITY;
+               float mat[4][4];
+               unit_m4(mat);
                rotate_m4(mat, axis, angle);
                mul_m4_v3(mat, mirror);
        }
index 26ebd1ddf633df62f0f36873b7374f925e4c10e7..8e6deeddc3973b5dfdb41acc2ad6a74b8785c70c 100644 (file)
@@ -414,7 +414,7 @@ static void bundle_midpoint(Scene *scene, Object *ob, float vec[3])
        MovieTracking *tracking;
        MovieTrackingObject *object;
        bool ok = false;
-       float min[3], max[3], mat[4][4], pos[3], cammat[4][4] = MAT4_UNITY;
+       float min[3], max[3], mat[4][4], pos[3], cammat[4][4];
 
        if (!clip)
                return;
index b52fba36cac9d2a21428bf3e4333cdf61991d0bb..2cec4d61e3e74cdf15aaabe916520ef442cc22c9 100644 (file)
@@ -945,7 +945,6 @@ static void transform_event_xyz_constraint(TransInfo *t, short key_type, char cm
 
 int transformEvent(TransInfo *t, const wmEvent *event)
 {
-       float mati[3][3] = MAT3_UNITY;
        char cmode = constraintModeToChar(t);
        bool handled = false;
 
@@ -1306,7 +1305,9 @@ int transformEvent(TransInfo *t, const wmEvent *event)
                                                        }
                                                        else {
                                                                /* bit hackish... but it prevents mmb select to print the orientation from menu */
+                                                               float mati[3][3];
                                                                strcpy(t->spacename, "global");
+                                                               unit_m3(mati);
                                                                initSelectConstraint(t, mati);
                                                        }
                                                        postSelectConstraint(t);
index 4cc8833ba1efb0a6a87559766dc1977d12e1744f..749c45e316b6084c2b8de167ede5a10981421ac8 100644 (file)
@@ -625,8 +625,9 @@ void setUserConstraint(TransInfo *t, short orientation, int mode, const char fte
        switch (orientation) {
                case V3D_MANIP_GLOBAL:
                {
-                       float mtx[3][3] = MAT3_UNITY;
+                       float mtx[3][3];
                        BLI_snprintf(text, sizeof(text), ftext, IFACE_("global"));
+                       unit_m3(mtx);
                        setConstraint(t, mtx, mode, text);
                        break;
                }
index a2b53da831bce4f7b4399bb7d5da8d844478be76..aaa67e58eafaf7644c46df570e10b8af3f64cc52 100644 (file)
@@ -1507,7 +1507,9 @@ static void draw_manipulator_rotate_cyl(
 
        /* Screen aligned view rot circle */
        if (drawflags & MAN_ROT_V) {
-               float unitmat[4][4] = MAT4_UNITY;
+               float unitmat[4][4];
+
+               unit_m4(unitmat);
 
                if (is_picksel) glLoadName(MAN_ROT_V);
                UI_ThemeColor(TH_TRANSFORM);
index 1c8718aa122df4b46d31d096c18ae8a912d18c0e..3b526f885de732ec40f9aa49747283f61690235a 100644 (file)
@@ -550,7 +550,9 @@ PyDoc_STRVAR(C_Matrix_Translation_doc,
 );
 static PyObject *C_Matrix_Translation(PyObject *cls, PyObject *value)
 {
-       float mat[4][4] = MAT4_UNITY;
+       float mat[4][4];
+
+       unit_m4(mat);
 
        if (mathutils_array_parse(mat[3], 3, 4, value, "mathutils.Matrix.Translation(vector), invalid vector arg") == -1)
                return NULL;
@@ -1013,7 +1015,7 @@ PyDoc_STRVAR(Matrix_resize_4x4_doc,
 );
 static PyObject *Matrix_resize_4x4(MatrixObject *self)
 {
-       float mat[4][4] = MAT4_UNITY;
+       float mat[4][4];
        int col;
 
        if (self->wrapped == Py_WRAP) {
@@ -1029,7 +1031,7 @@ static PyObject *Matrix_resize_4x4(MatrixObject *self)
                return NULL;
        }
 
-       self->matrix = PyMem_Realloc(self->matrix, (sizeof(float) * 16));
+       self->matrix = PyMem_Realloc(self->matrix, (sizeof(float) * (MATRIX_MAX_DIM * MATRIX_MAX_DIM)));
        if (self->matrix == NULL) {
                PyErr_SetString(PyExc_MemoryError,
                                "Matrix.resize_4x4(): "
@@ -1037,6 +1039,8 @@ static PyObject *Matrix_resize_4x4(MatrixObject *self)
                return NULL;
        }
 
+       unit_m4(mat);
+
        for (col = 0; col < self->num_col; col++) {
                memcpy(mat[col], MATRIX_COL_PTR(self, col), self->num_row * sizeof(float));
        }
@@ -1177,10 +1181,7 @@ static PyObject *Matrix_invert(MatrixObject *self)
 
        int x, y, z = 0;
        float det = 0.0f;
-       float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f,
-                        0.0f, 0.0f, 0.0f, 0.0f,
-                        0.0f, 0.0f, 0.0f, 0.0f,
-                        0.0f, 0.0f, 0.0f, 1.0f};
+       float mat[MATRIX_MAX_DIM * MATRIX_MAX_DIM];
 
        if (BaseMath_ReadCallback(self) == -1)
                return NULL;
@@ -1811,7 +1812,7 @@ static PyObject *Matrix_item_col(MatrixObject *self, int col)
 static int Matrix_ass_item_row(MatrixObject *self, int row, PyObject *value)
 {
        int col;
-       float vec[4];
+       float vec[MATRIX_MAX_DIM];
        if (BaseMath_ReadCallback(self) == -1)
                return -1;
 
@@ -1836,7 +1837,7 @@ static int Matrix_ass_item_row(MatrixObject *self, int row, PyObject *value)
 static int Matrix_ass_item_col(MatrixObject *self, int col, PyObject *value)
 {
        int row;
-       float vec[4];
+       float vec[MATRIX_MAX_DIM];
        if (BaseMath_ReadCallback(self) == -1)
                return -1;
 
@@ -1904,7 +1905,7 @@ static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *va
        else {
                const int size = end - begin;
                int row, col;
-               float mat[16];
+               float mat[MATRIX_MAX_DIM * MATRIX_MAX_DIM];
                float vec[4];
 
                if (PySequence_Fast_GET_SIZE(value_fast) != size) {
@@ -1946,7 +1947,7 @@ static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *va
  *------------------------obj + obj------------------------------*/
 static PyObject *Matrix_add(PyObject *m1, PyObject *m2)
 {
-       float mat[16];
+       float mat[MATRIX_MAX_DIM * MATRIX_MAX_DIM];
        MatrixObject *mat1 = NULL, *mat2 = NULL;
 
        mat1 = (MatrixObject *)m1;
@@ -1978,7 +1979,7 @@ static PyObject *Matrix_add(PyObject *m1, PyObject *m2)
  * subtraction */
 static PyObject *Matrix_sub(PyObject *m1, PyObject *m2)
 {
-       float mat[16];
+       float mat[MATRIX_MAX_DIM * MATRIX_MAX_DIM];
        MatrixObject *mat1 = NULL, *mat2 = NULL;
 
        mat1 = (MatrixObject *)m1;
@@ -2010,7 +2011,7 @@ static PyObject *Matrix_sub(PyObject *m1, PyObject *m2)
  * multiplication */
 static PyObject *matrix_mul_float(MatrixObject *mat, const float scalar)
 {
-       float tmat[16];
+       float tmat[MATRIX_MAX_DIM * MATRIX_MAX_DIM];
        mul_vn_vn_fl(tmat, mat->matrix, mat->num_col * mat->num_row, scalar);
        return Matrix_CreatePyObject(tmat, mat->num_col, mat->num_row, Py_NEW, Py_TYPE(mat));
 }
@@ -2035,10 +2036,7 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2)
 
        if (mat1 && mat2) {
                /* MATRIX * MATRIX */
-               float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f,
-                                0.0f, 0.0f, 0.0f, 0.0f,
-                                0.0f, 0.0f, 0.0f, 0.0f,
-                                0.0f, 0.0f, 0.0f, 1.0f};
+               float mat[MATRIX_MAX_DIM * MATRIX_MAX_DIM];
 
                int col, row, item;
 
@@ -2071,7 +2069,7 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2)
                /* MATRIX * VECTOR */
                if (VectorObject_Check(m2)) {
                        VectorObject *vec2 = (VectorObject *)m2;
-                       float tvec[4];
+                       float tvec[MATRIX_MAX_DIM];
                        if (BaseMath_ReadCallback(vec2) == -1)
                                return NULL;
                        if (column_vector_multiplication(tvec, vec2, mat1) == -1) {
index 03eac8cb38b12b16571cbb946cc4f36e28641761..a9253a8e6358a39332be792e656554824e73f57c 100644 (file)
@@ -1831,7 +1831,9 @@ void zbuf_render_project(float winmat[4][4], const float co[3], float ho[4])
 void zbuf_make_winmat(Render *re, float winmat[4][4])
 {
        if (re->r.mode & R_PANORAMA) {
-               float panomat[4][4]= MAT4_UNITY;
+               float panomat[4][4];
+
+               unit_m4(panomat);
 
                panomat[0][0]= re->panoco;
                panomat[0][2]= re->panosi;