diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-03-20 01:09:16 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-03-20 01:09:16 +0400 |
commit | f18dab65ad4af5e96ac439b68a773ddbb9c0074c (patch) | |
tree | 3cf2b887fdfc3458a2ebc3b0b9448457bc9f0f16 /source/blender/modifiers/intern/MOD_mirror.c | |
parent | 82979d5ab57217502b34977b5e5e82895bd66dbb (diff) |
Fix #30531: mirror modifier with vertex groups did not add both the left and
right groups to merged vertices, only one. This made the result asymmetric,
now merged vertices will be part of both groups with half weight.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_mirror.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_mirror.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c index 29b37acaeaf..b4129483c8d 100644 --- a/source/blender/modifiers/intern/MOD_mirror.c +++ b/source/blender/modifiers/intern/MOD_mirror.c @@ -272,8 +272,12 @@ static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd, flip_map= defgroup_flip_map(ob, &flip_map_len, FALSE); if (flip_map) { - for (i = maxVerts; i-- > 0; dvert++) { - defvert_flip(dvert, flip_map, flip_map_len); + for (i = 0; i < maxVerts; dvert++, i++) { + /* merged vertices get both groups, others get flipped */ + if(do_vtargetmap && (vtargetmap[i] != -1)) + defvert_flip_merged(dvert, flip_map, flip_map_len); + else + defvert_flip(dvert, flip_map, flip_map_len); } MEM_freeN(flip_map); |