[Bf-blender-cvs] [185203ddb67] transform_mirror_axis: Rename `TransDataMirror` members and use bitfield for sign

mano-wii noreply at git.blender.org
Tue Sep 10 21:12:55 CEST 2019


Commit: 185203ddb67d873fc96b0b3ed68b76877c1721b4
Author: mano-wii
Date:   Tue Sep 10 09:45:46 2019 -0300
Branches: transform_mirror_axis
https://developer.blender.org/rB185203ddb67d873fc96b0b3ed68b76877c1721b4

Rename `TransDataMirror` members and use bitfield for sign

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

M	source/blender/editors/transform/transform.h
M	source/blender/editors/transform/transform_convert_mesh.c
M	source/blender/editors/transform/transform_generics.c

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

diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index 52c17b09aff..8fd7db72a00 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -447,11 +447,14 @@ typedef struct TransData {
 
 typedef struct TransDataMirror {
   /** location of mirrored reference data. */
-  float *loc_ref;
+  float *loc_src;
   /** Location of the data to transform. */
-  float *loc;
-  short sign[3];
+  float *loc_dst;
   void *extra;
+  /* `sign` can be -2, -1, 0 or 1. */
+  int sign_x : 2;
+  int sign_y : 2;
+  int sign_z : 2;
 } TransDataMirror;
 
 typedef struct MouseInput {
diff --git a/source/blender/editors/transform/transform_convert_mesh.c b/source/blender/editors/transform/transform_convert_mesh.c
index 8e6941baa6c..f616eb3c11e 100644
--- a/source/blender/editors/transform/transform_convert_mesh.c
+++ b/source/blender/editors/transform/transform_convert_mesh.c
@@ -531,13 +531,13 @@ static TransDataMirror *editmesh_mirror_data_calc(BMEditMesh *em,
     BM_ITER_MESH_INDEX (eve, &iter, bm, BM_VERTS_OF_MESH, i) {
       int elem_index = BM_elem_index_get(eve);
       if (elem_index != -1) {
-        BMVert *v_ref = BM_vert_at_index(bm, elem_index);
+        BMVert *v_src = BM_vert_at_index(bm, elem_index);
 
-        mirror_data_iter->loc_ref = v_ref->co;
-        mirror_data_iter->loc = eve->co;
-        mirror_data_iter->sign[0] = index[0] && index[0][i] == -2 ? -1 : 1;
-        mirror_data_iter->sign[1] = index[1] && index[1][i] == -2 ? -1 : 1;
-        mirror_data_iter->sign[2] = index[2] && index[2][i] == -2 ? -1 : 1;
+        mirror_data_iter->loc_src = v_src->co;
+        mirror_data_iter->loc_dst = eve->co;
+        mirror_data_iter->sign_x = index[0] && index[0][i] == -2 ? -1 : 1;
+        mirror_data_iter->sign_y = index[1] && index[1][i] == -2 ? -1 : 1;
+        mirror_data_iter->sign_z = index[2] && index[2][i] == -2 ? -1 : 1;
         mirror_data_iter->extra = eve;
 
         mirror_data_iter++;
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 66aa66850e2..ff7f4402549 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -245,9 +245,9 @@ static void transform_apply_to_mirror(TransInfo *t)
 
       TransDataMirror *tdm;
       for (i = 0, tdm = tc->mirror.data; i < tc->mirror.data_len; i++, tdm++) {
-        tdm->loc[0] = tdm->loc_ref[0] * tdm->sign[0];
-        tdm->loc[1] = tdm->loc_ref[1] * tdm->sign[1];
-        tdm->loc[2] = tdm->loc_ref[2] * tdm->sign[2];
+        tdm->loc_dst[0] = tdm->loc_src[0] * tdm->sign_x;
+        tdm->loc_dst[1] = tdm->loc_src[1] * tdm->sign_y;
+        tdm->loc_dst[2] = tdm->loc_src[2] * tdm->sign_z;
       }
     }
   }



More information about the Bf-blender-cvs mailing list