Revision: 36296 http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36296 Author: nazgul Date: 2011-04-23 09:25:34 +0000 (Sat, 23 Apr 2011) Log Message: ----------- Fix #26959: change selection of shapekeys in edit mode causes mesh deformity of a key
Vertex offset, which was used to update referenced keys was calculating between editmesh (which represents shapekey data) and base mesh (ob->mesh) which represents Bases key. This commit fixes bug with incorrect ofsset calculation for case when some keys got other (not Basis) keys as relative key by calculating offset using EditMesh (new shapekey data) and keyblock data (which was used to create EditMesh when entering edit mode). This commit shouldn't lead to regressions, but maybe there's something else which should be fixed for such kinda complicated cases -- more testing would be welcome. Modified Paths: -------------- trunk/blender/source/blender/editors/mesh/editmesh.c Modified: trunk/blender/source/blender/editors/mesh/editmesh.c =================================================================== --- trunk/blender/source/blender/editors/mesh/editmesh.c 2011-04-23 09:07:46 UTC (rev 36295) +++ trunk/blender/source/blender/editors/mesh/editmesh.c 2011-04-23 09:25:34 UTC (rev 36296) @@ -1177,13 +1177,14 @@ } if(act_is_basis) { /* active key is a base */ + float (*fp)[3]= actkey->data; i=0; ofs= MEM_callocN(sizeof(float) * 3 * em->totvert, "currkey->data"); eve= em->verts.first; mvert = me->mvert; while(eve) { if(eve->keyindex>=0) - VECSUB(ofs[i], mvert->co, oldverts[eve->keyindex].co); + VECSUB(ofs[i], mvert->co, fp[eve->keyindex]); eve= eve->next; i++; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs