diff options
Diffstat (limited to 'source/blender/editors/object/object_vgroup.c')
-rw-r--r-- | source/blender/editors/object/object_vgroup.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c index 94328259dc3..6e3fab0385f 100644 --- a/source/blender/editors/object/object_vgroup.c +++ b/source/blender/editors/object/object_vgroup.c @@ -1577,13 +1577,21 @@ static void dvert_mirror_op(MDeformVert *dvert, MDeformVert *dvert_mirr, } } else { - /* dvert should always be the target */ + /* dvert should always be the target, only swaps pointer */ if(sel_mirr) { SWAP(MDeformVert *, dvert, dvert_mirr); } - if(mirror_weights) - defvert_copy(dvert, dvert_mirr); + if(mirror_weights) { + if (all_vgroups) { + defvert_copy(dvert, dvert_mirr); + } + else { + defvert_copy_index(dvert, dvert_mirr, act_vgroup); + } + } + + /* flip map already modified for 'all_vgroups' */ if(flip_vgroups) { defvert_flip(dvert, flip_map, flip_map_len); } |