diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-05-01 16:14:44 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-05-01 16:14:44 +0400 |
commit | 8bd5648ce5fcae13b7dccfd50ae51ff49dffc637 (patch) | |
tree | 6c54a75174c504b3d5156f9c66ef8872dd90754a /source/blender/blenkernel | |
parent | 2f38f09c38277f024ddbd821c5407866c9bd35ab (diff) |
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.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 6 |
1 files changed, 5 insertions, 1 deletions
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; |