[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