diff options
author | mano-wii <germano.costa@ig.com.br> | 2019-09-11 19:48:42 +0300 |
---|---|---|
committer | mano-wii <germano.costa@ig.com.br> | 2019-09-11 19:49:18 +0300 |
commit | 3bd4f229beb1e18802d93c9f5a44b0ec80828a26 (patch) | |
tree | 1776fbabac0554092f0f45b2e22de457235b75b1 /source/blender/editors/transform/transform_convert.c | |
parent | 003802db83b561f9ff061811c6cde83356e5b277 (diff) |
Transform: Edit Mesh: Support mirror on all axes
Part of T68930
Now two other mirror options that can be enabled simultaneously: Mirror Y and Z.
Reviewers: campbellbarton
Reviewed By: campbellbarton
Subscribers: ThatAsherGuy
Differential Revision: https://developer.blender.org/D5720
Diffstat (limited to 'source/blender/editors/transform/transform_convert.c')
-rw-r--r-- | source/blender/editors/transform/transform_convert.c | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c index dfdd7b71332..1e783e0e7b8 100644 --- a/source/blender/editors/transform/transform_convert.c +++ b/source/blender/editors/transform/transform_convert.c @@ -1778,18 +1778,16 @@ static void special_aftertrans_update__mesh(bContext *UNUSED(C), TransInfo *t) char hflag; bool has_face_sel = (bm->totfacesel != 0); - if (tc->mirror.axis_flag) { - TransData *td; + if (tc->mirror.use_mirror_any) { + TransDataMirror *tdm; int i; /* Rather then adjusting the selection (which the user would notice) * tag all mirrored verts, then auto-merge those. */ BM_mesh_elem_hflag_disable_all(bm, BM_VERT, BM_ELEM_TAG, false); - for (i = 0, td = tc->data; i < tc->data_len; i++, td++) { - if (td->extra) { - BM_elem_flag_enable((BMVert *)td->extra, BM_ELEM_TAG); - } + for (i = tc->mirror.data_len, tdm = tc->mirror.data; i--; tdm++) { + BM_elem_flag_enable((BMVert *)tdm->extra, BM_ELEM_TAG); } hflag = BM_ELEM_SELECT | BM_ELEM_TAG; @@ -1850,26 +1848,10 @@ void special_aftertrans_update(bContext *C, TransInfo *t) * on transform completion since it's * really slow -joeedh */ projectEdgeSlideData(t, true); - - FOREACH_TRANS_DATA_CONTAINER (t, tc) { - EdgeSlideData *sld = tc->custom.mode.data; - - if (sld == NULL) { - continue; - } - - /* Free temporary faces to avoid auto-merging and deleting - * during cleanup - psy-fi. */ - freeEdgeSlideTempFaces(sld); - } } else if (t->mode == TFM_VERT_SLIDE) { /* as above */ projectVertSlideData(t, true); - FOREACH_TRANS_DATA_CONTAINER (t, tc) { - VertSlideData *sld = tc->custom.mode.data; - freeVertSlideTempFaces(sld); - } } if (t->obedit_type == OB_MESH) { |