Math lib: add negate_m3, negate_m4
authorCampbell Barton <ideasman42@gmail.com>
Thu, 29 May 2014 14:26:05 +0000 (00:26 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 29 May 2014 14:26:32 +0000 (00:26 +1000)
source/blender/blenlib/BLI_math_matrix.h
source/blender/blenlib/intern/math_matrix.c
source/blender/editors/sculpt_paint/paint_hide.c
source/blender/editors/sculpt_paint/paint_mask.c
source/blender/editors/sculpt_paint/paint_utils.c

index 8ce78e5be63448ba6ccc9e7fef22dc184159154b..d149ad73b04e67687997d25b6dd9c2412a319349 100644 (file)
@@ -111,6 +111,9 @@ void mul_m3_fl(float R[3][3], float f);
 void mul_m4_fl(float R[4][4], float f);
 void mul_mat3_m4_fl(float R[4][4], float f);
 
+void negate_m3(float R[4][4]);
+void negate_m4(float R[4][4]);
+
 bool invert_m3_ex(float m[3][3], const float epsilon);
 bool invert_m3_m3_ex(float m1[3][3], float m2[3][3], const float epsilon);
 
index f375a5c01ed26687dc8e26ab99748b647eda3052..7fc30e3112b691052b2482a12c2920ea752c540f 100644 (file)
@@ -519,7 +519,6 @@ void mul_transposed_mat3_m4_v3(float mat[4][4], float vec[3])
        vec[2] = x * mat[2][0] + y * mat[2][1] + mat[2][2] * vec[2];
 }
 
-
 void mul_m3_fl(float m[3][3], float f)
 {
        int i, j;
@@ -547,6 +546,24 @@ void mul_mat3_m4_fl(float m[4][4], float f)
                        m[i][j] *= f;
 }
 
+void negate_m3(float m[4][4])
+{
+       int i, j;
+
+       for (i = 0; i < 3; i++)
+               for (j = 0; j < 3; j++)
+                       m[i][j] *= -1.0f;
+}
+
+void negate_m4(float m[4][4])
+{
+       int i, j;
+
+       for (i = 0; i < 4; i++)
+               for (j = 0; j < 4; j++)
+                       m[i][j] *= -1.0f;
+}
+
 void mul_m3_v3_double(float mat[3][3], double vec[3])
 {
        double x, y;
index 3d860145f5909ab3167fa267b344b7bb6bcc37c2..bc37a88d7f0a5ce89df05d70569d9be35e724336 100644 (file)
@@ -329,7 +329,7 @@ static void clip_planes_from_rect(bContext *C,
        view3d_set_viewcontext(C, &vc);
        view3d_get_transformation(vc.ar, vc.rv3d, vc.obact, &mats);
        ED_view3d_clipping_calc(&bb, clip_planes, &mats, rect);
-       mul_m4_fl(clip_planes, -1.0f);
+       negate_m4(clip_planes);
 }
 
 /* If mode is inside, get all PBVH nodes that lie at least partially
index a5f0fcd3b5360f9411a5bf4760f49bb0656f7c22..9363542ba05598eed9ddfc1b8b37b1e95d5b437e 100644 (file)
@@ -208,7 +208,7 @@ int do_sculpt_mask_box_select(struct bContext *C, ViewContext *vc, rcti *rect, b
        /* transform the clip planes in object space */
        view3d_get_transformation(vc->ar, vc->rv3d, vc->obact, &mats);
        ED_view3d_clipping_calc(&bb, clip_planes, &mats, rect);
-       mul_m4_fl(clip_planes, -1.0f);
+       negate_m4(clip_planes);
 
        BKE_sculpt_update_mesh_elements(scene, sd, ob, false, true);
        pbvh = ob->sculpt->pbvh;
@@ -355,7 +355,7 @@ static int paint_mask_gesture_lasso_exec(bContext *C, wmOperator *op)
                       mask_lasso_px_cb, &data);
 
                ED_view3d_clipping_calc(&bb, clip_planes, &mats, &data.rect);
-               mul_m4_fl(clip_planes, -1.0f);
+               negate_m4(clip_planes);
 
                BKE_sculpt_update_mesh_elements(scene, sd, ob, false, true);
                pbvh = ob->sculpt->pbvh;
index 642c1dd9529c1a768717858cbef26cf78f1714e3..25308f6595eb3a2526700bf39cc4342299a22c50 100644 (file)
@@ -146,7 +146,7 @@ void paint_calc_redraw_planes(float planes[4][4],
        rect.ymax += 2;
 
        ED_view3d_clipping_calc(&bb, planes, &mats, &rect);
-       mul_m4_fl(planes, -1.0f);
+       negate_m4(planes);
 }
 
 float paint_calc_object_space_radius(ViewContext *vc, const float center[3],