From 8bd5648ce5fcae13b7dccfd50ae51ff49dffc637 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 1 May 2012 12:14:44 +0000 Subject: Fox #31185: Cannot sculpt shape keys Was related on sculpting on locked keys. Issue was caused by building PBVH from base mesh which is now doesn't have shape key loaded into it as it was in 2.62. Fixed by loading coordinates from deformed mesh into PBVH like it happens for on-locked shape keys. --- source/blender/blenkernel/intern/cdderivedmesh.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 6ff612e3367..2bf199cb47f 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -267,6 +267,8 @@ static struct PBVH *cdDM_getPBVH(Object *ob, DerivedMesh *dm) if (!cddm->pbvh && ob->type == OB_MESH) { SculptSession *ss= ob->sculpt; Mesh *me= ob->data; + int deformed = 0; + cddm->pbvh = BLI_pbvh_new(); cddm->pbvh_draw = can_pbvh_draw(ob, dm); @@ -275,7 +277,9 @@ static struct PBVH *cdDM_getPBVH(Object *ob, DerivedMesh *dm) BLI_pbvh_build_mesh(cddm->pbvh, me->mface, me->mvert, me->totface, me->totvert); - if (ss->modifiers_active && ob->derivedDeform) { + deformed = ss->modifiers_active || me->key; + + if (deformed && ob->derivedDeform) { DerivedMesh *deformdm= ob->derivedDeform; float (*vertCos)[3]; int totvert; -- cgit v1.2.3