diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-05-31 09:11:04 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-05-31 09:11:04 +0400 |
commit | 08d6932c860e7f2926e3980764fc5e11a821d0a3 (patch) | |
tree | 0d88c8f33701ce024f5c64317d05a5116dbc19ba /source/blender/modifiers/intern/MOD_armature.c | |
parent | 38293a00c379bdeb224a73279ee08850d86f308c (diff) | |
parent | dcd55cef86270f076cf827c5ae7a6cc76db4f9ad (diff) |
svn merge -r36900:37028 https://svn.blender.org/svnroot/bf-blender/trunk/blender
Diffstat (limited to 'source/blender/modifiers/intern/MOD_armature.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_armature.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c index 27b10f7cbe4..4e520f19f58 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_BMEditMesh(editData, ob->data, 0); - 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); } |