Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-03-20 01:09:16 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-03-20 01:09:16 +0400
commitf18dab65ad4af5e96ac439b68a773ddbb9c0074c (patch)
tree3cf2b887fdfc3458a2ebc3b0b9448457bc9f0f16 /source/blender/modifiers/intern/MOD_mirror.c
parent82979d5ab57217502b34977b5e5e82895bd66dbb (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.c8
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);