Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-07-16 12:24:53 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-07-16 12:24:53 +0400
commit922320f86e3b5902d408d30e8a572c1e1935a2b0 (patch)
tree039e47ac639189152f60740998efcc8aa1095a8e /source/blender/modifiers/intern/MOD_shrinkwrap.c
parent8a95fccbba997e548a748b70fb9503f7ea96eb4d (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.c12
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);