Commit: 0c500326c761a975c1b7f006c03d15b8e5ec770a
Author: Mai Lavelle
Date:   Fri Apr 27 01:30:02 2018 -0400
Branches: temp-modifier-rm-cddm
https://developer.blender.org/rB0c500326c761a975c1b7f006c03d15b8e5ec770a

Add modifier_deformVerts_ensure_normals

Same as modwrap_deformVerts but for Mesh

===================================================================

M       source/blender/blenkernel/BKE_modifier.h
M       source/blender/blenkernel/intern/modifier.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_modifier.h 
b/source/blender/blenkernel/BKE_modifier.h
index 2972cdd7dd8..cba0ce0404d 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -519,6 +519,10 @@ struct Mesh *modifier_applyModifier(
         struct ModifierData *md, const struct ModifierEvalContext *ctx,
         struct Mesh *mesh);
 
+struct Mesh *modifier_applyModifier_ensure_normals(
+        struct ModifierData *md, const struct ModifierEvalContext *ctx,
+        struct Mesh *mesh);
+
 struct Mesh *modifier_applyModifierEM(
         struct ModifierData *md, const struct ModifierEvalContext *ctx,
         struct BMEditMesh *editData, struct Mesh *mesh);
diff --git a/source/blender/blenkernel/intern/modifier.c 
b/source/blender/blenkernel/intern/modifier.c
index 81f1e736edc..5bea55d8bf9 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -875,6 +875,7 @@ void modifier_deformVerts_ensure_normals(struct 
ModifierData *md, const Modifier
        float (*vertexCos)[3], int numVerts)
 {
        const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+       BLI_assert(!mesh || CustomData_has_layer(&mesh->pdata, CD_NORMAL) == 
false);
 
        if (mesh && mti->dependsOnNormals && mti->dependsOnNormals(md)) {
                BKE_mesh_calc_normals(mesh);
@@ -974,6 +975,18 @@ struct Mesh *modifier_applyModifier(struct ModifierData 
*md, const ModifierEvalC
        }
 }
 
+struct Mesh *modifier_applyModifier_ensure_normals(struct ModifierData *md, 
const ModifierEvalContext *ctx,
+       struct Mesh *mesh)
+{
+       const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+       BLI_assert(CustomData_has_layer(&mesh->pdata, CD_NORMAL) == false);
+
+       if (mti->dependsOnNormals && mti->dependsOnNormals(md)) {
+               BKE_mesh_calc_normals(mesh);
+       }
+       return modifier_applyModifier(md, ctx, mesh);
+}
+
 struct Mesh *modifier_applyModifierEM(struct ModifierData *md, const 
ModifierEvalContext *ctx,
        struct BMEditMesh *editData,
        struct Mesh *mesh)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to