diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-02-24 00:23:59 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-02-24 00:23:59 +0400 |
commit | 3862e757d05a74af1584396d118d33451fcbe5a8 (patch) | |
tree | 1694dcb7ac4e3e324404b6f16cdefd486ef03679 /source/blender/modifiers/intern/MOD_shrinkwrap.c | |
parent | 5de307122c0a2a80fa3e253fe037497b02c2dd26 (diff) |
Fix #34358: shrinkwrap modifier project along normal did not work correctly
after other modifiers. It needs normals and those were not calculated.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_shrinkwrap.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_shrinkwrap.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/modifiers/intern/MOD_shrinkwrap.c b/source/blender/modifiers/intern/MOD_shrinkwrap.c index d3a03614d7c..7a55f9a5b48 100644 --- a/source/blender/modifiers/intern/MOD_shrinkwrap.c +++ b/source/blender/modifiers/intern/MOD_shrinkwrap.c @@ -161,6 +161,15 @@ static void updateDepgraph(ModifierData *md, DagForest *forest, DAG_RL_OB_DATA | DAG_RL_DATA_DATA, "Shrinkwrap Modifier"); } +static int dependsOnNormals(ModifierData *md) +{ + ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *)md; + + if (smd->target && smd->shrinkType == MOD_SHRINKWRAP_PROJECT) + return (smd->projAxis == MOD_SHRINKWRAP_PROJECT_OVER_NORMAL); + + return false; +} ModifierTypeInfo modifierType_Shrinkwrap = { /* name */ "Shrinkwrap", @@ -185,7 +194,7 @@ ModifierTypeInfo modifierType_Shrinkwrap = { /* isDisabled */ isDisabled, /* updateDepgraph */ updateDepgraph, /* dependsOnTime */ NULL, - /* dependsOnNormals */ NULL, + /* dependsOnNormals */ dependsOnNormals, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, /* foreachTexLink */ NULL, |