From 0f1f6e448d0e02549a4ef7159eccf60f87ace219 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 26 May 2011 10:21:09 +0000 Subject: Fix #27480: armature multimodifier was not working in edit mode. --- source/blender/modifiers/intern/MOD_armature.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'source/blender/modifiers/intern/MOD_armature.c') diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c index 95579147dbb..a0ee047e319 100644 --- a/source/blender/modifiers/intern/MOD_armature.c +++ b/source/blender/modifiers/intern/MOD_armature.c @@ -127,8 +127,8 @@ static void deformVerts(ModifierData *md, Object *ob, modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */ armature_deform_verts(amd->object, ob, derivedData, vertexCos, NULL, - numVerts, amd->deformflag, - (float(*)[3])amd->prevCos, amd->defgrp_name); + numVerts, amd->deformflag, (float(*)[3])amd->prevCos, amd->defgrp_name); + /* free cache */ if(amd->prevCos) { MEM_freeN(amd->prevCos); @@ -145,8 +145,16 @@ static void deformVertsEM( if(!derivedData) dm = CDDM_from_editmesh(editData, ob->data); - armature_deform_verts(amd->object, ob, dm, vertexCos, NULL, numVerts, - amd->deformflag, NULL, amd->defgrp_name); + modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */ + + armature_deform_verts(amd->object, ob, dm, vertexCos, NULL, + numVerts, amd->deformflag, (float(*)[3])amd->prevCos, amd->defgrp_name); + + /* free cache */ + if(amd->prevCos) { + MEM_freeN(amd->prevCos); + amd->prevCos= NULL; + } if(!derivedData) dm->release(dm); } -- cgit v1.2.3