diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-07-16 12:24:53 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-07-16 12:24:53 +0400 |
commit | 922320f86e3b5902d408d30e8a572c1e1935a2b0 (patch) | |
tree | 039e47ac639189152f60740998efcc8aa1095a8e /source/blender/modifiers/intern/MOD_shrinkwrap.c | |
parent | 8a95fccbba997e548a748b70fb9503f7ea96eb4d (diff) |
fix own regression [#36154] Simple deform modifier doesn't recalculate normals
get_cddm and get_dm are called within modifiers so they wont ensure normals are valid, added an arg to optionally ensure valid normals.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_shrinkwrap.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_shrinkwrap.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/modifiers/intern/MOD_shrinkwrap.c b/source/blender/modifiers/intern/MOD_shrinkwrap.c index 9addcdc6ee1..e06c4f22553 100644 --- a/source/blender/modifiers/intern/MOD_shrinkwrap.c +++ b/source/blender/modifiers/intern/MOD_shrinkwrap.c @@ -48,6 +48,8 @@ #include "MOD_util.h" +static bool dependsOnNormals(ModifierData *md); + static void initData(ModifierData *md) { @@ -120,8 +122,9 @@ static void deformVerts(ModifierData *md, Object *ob, CustomDataMask dataMask = requiredDataMask(ob, md); /* ensure we get a CDDM with applied vertex coords */ - if (dataMask) - dm = get_cddm(ob, NULL, dm, vertexCos); + if (dataMask) { + dm = get_cddm(ob, NULL, dm, vertexCos, dependsOnNormals(md)); + } shrinkwrapModifier_deform((ShrinkwrapModifierData *)md, ob, dm, vertexCos, numVerts); @@ -136,8 +139,9 @@ static void deformVertsEM(ModifierData *md, Object *ob, struct BMEditMesh *editD CustomDataMask dataMask = requiredDataMask(ob, md); /* ensure we get a CDDM with applied vertex coords */ - if (dataMask) - dm = get_cddm(ob, editData, dm, vertexCos); + if (dataMask) { + dm = get_cddm(ob, editData, dm, vertexCos, dependsOnNormals(md)); + } shrinkwrapModifier_deform((ShrinkwrapModifierData *)md, ob, dm, vertexCos, numVerts); |