diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-10-09 05:19:21 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-10-09 05:20:20 +0300 |
commit | 75ac83610baeb296e530d82df8c9913a02f7acd8 (patch) | |
tree | 8f2092ae83c18a5ffcbd9b1760475b33c5597872 /source/blender/blenkernel/intern/modifier.c | |
parent | c8c3bbaadeeb469a83f8b3ae47599f28fa94ad30 (diff) |
Modifier: add non derived mesh modifier wrappers
Rename modifier_deformVerts_ensure_normals &
modifier_applyModifier_ensure_normals with wrappers that match 2.7x
convention.
Diffstat (limited to 'source/blender/blenkernel/intern/modifier.c')
-rw-r--r-- | source/blender/blenkernel/intern/modifier.c | 113 |
1 files changed, 72 insertions, 41 deletions
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index d9d3730b29f..2a7c900379b 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -838,6 +838,18 @@ struct DerivedMesh *modwrap_applyModifier_DM_deprecated( } return modifier_applyModifier_DM_deprecated(md, ctx, dm); } +struct Mesh *modwrap_applyModifier( + ModifierData *md, const ModifierEvalContext *ctx, + struct Mesh *me) +{ + const ModifierTypeInfo *mti = modifierType_getInfo(md->type); + BLI_assert(CustomData_has_layer(&me->pdata, CD_NORMAL) == false); + + if (mti->dependsOnNormals && mti->dependsOnNormals(md)) { + BKE_mesh_calc_normals(me); + } + return mti->applyModifier(md, ctx, me); +} struct DerivedMesh *modwrap_applyModifierEM_DM_deprecated( ModifierData *md, const ModifierEvalContext *ctx, @@ -851,6 +863,18 @@ struct DerivedMesh *modwrap_applyModifierEM_DM_deprecated( } return modifier_applyModifierEM_DM_deprecated(md, ctx, em, dm); } +struct Mesh *modwrap_applyModifierEM( + ModifierData *md, const ModifierEvalContext *ctx, + struct BMEditMesh *em, Mesh *me) +{ + const ModifierTypeInfo *mti = modifierType_getInfo(md->type); + BLI_assert(CustomData_has_layer(&me->pdata, CD_NORMAL) == false); + + if (mti->dependsOnNormals && mti->dependsOnNormals(md)) { + BKE_mesh_calc_normals(me); + } + return mti->applyModifierEM(md, ctx, em, me); +} void modwrap_deformVerts_DM_deprecated( ModifierData *md, const ModifierEvalContext *ctx, @@ -864,6 +888,18 @@ void modwrap_deformVerts_DM_deprecated( } modifier_deformVerts_DM_deprecated(md, ctx, dm, vertexCos, numVerts); } +void modwrap_deformVerts( + ModifierData *md, const ModifierEvalContext *ctx, + Mesh *me, float (*vertexCos)[3], int numVerts) +{ + const ModifierTypeInfo *mti = modifierType_getInfo(md->type); + BLI_assert(!me || CustomData_has_layer(&me->pdata, CD_NORMAL) == false); + + if (me && mti->dependsOnNormals && mti->dependsOnNormals(md)) { + BKE_mesh_calc_normals(me); + } + mti->deformVerts(md, ctx, me, vertexCos, numVerts); +} void modwrap_deformVertsEM_DM_deprecated( ModifierData *md, const ModifierEvalContext *ctx, @@ -878,43 +914,33 @@ void modwrap_deformVertsEM_DM_deprecated( } modifier_deformVertsEM_DM_deprecated(md, ctx, em, dm, vertexCos, numVerts); } -/* end modifier callback wrappers */ - - -/* wrappers for modifier callbacks that accept Mesh and select the proper implementation - * depending on if the modifier has been ported to Mesh or is still using DerivedMesh - */ - -void modifier_deformVerts_ensure_normals(struct ModifierData *md, const ModifierEvalContext *ctx, - struct Mesh *mesh, - float (*vertexCos)[3], int numVerts) +void modwrap_deformVertsEM( + ModifierData *md, const ModifierEvalContext *ctx, + struct BMEditMesh *em, Mesh *me, + float (*vertexCos)[3], int numVerts) { const ModifierTypeInfo *mti = modifierType_getInfo(md->type); - BLI_assert(!mesh || CustomData_has_layer(&mesh->pdata, CD_NORMAL) == false); + BLI_assert(!me || CustomData_has_layer(&me->pdata, CD_NORMAL) == false); - if (mesh && mti->dependsOnNormals && mti->dependsOnNormals(md)) { - BKE_mesh_calc_normals(mesh); + if (me && mti->dependsOnNormals && mti->dependsOnNormals(md)) { + BKE_mesh_calc_normals(me); } - mti->deformVerts(md, ctx, mesh, vertexCos, numVerts); + mti->deformVertsEM(md, ctx, em, me, vertexCos, numVerts); } -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); +/* end modifier callback wrappers */ - if (mti->dependsOnNormals && mti->dependsOnNormals(md)) { - BKE_mesh_calc_normals(mesh); - } - return mti->applyModifier(md, ctx, mesh); -} + +/* wrappers for modifier callbacks that accept Mesh and select the proper implementation + * depending on if the modifier has been ported to Mesh or is still using DerivedMesh + */ /* deprecated variants of above that accept DerivedMesh */ -void modifier_deformVerts_DM_deprecated(struct ModifierData *md, const ModifierEvalContext *ctx, - struct DerivedMesh *dm, - float (*vertexCos)[3], int numVerts) +void modifier_deformVerts_DM_deprecated( + struct ModifierData *md, const ModifierEvalContext *ctx, + struct DerivedMesh *dm, + float (*vertexCos)[3], int numVerts) { const ModifierTypeInfo *mti = modifierType_getInfo(md->type); @@ -932,9 +958,10 @@ void modifier_deformVerts_DM_deprecated(struct ModifierData *md, const ModifierE } } -void modifier_deformMatrices_DM_deprecated(struct ModifierData *md, const ModifierEvalContext *ctx, - struct DerivedMesh *dm, - float (*vertexCos)[3], float (*defMats)[3][3], int numVerts) +void modifier_deformMatrices_DM_deprecated( + struct ModifierData *md, const ModifierEvalContext *ctx, + struct DerivedMesh *dm, + float (*vertexCos)[3], float (*defMats)[3][3], int numVerts) { const ModifierTypeInfo *mti = modifierType_getInfo(md->type); @@ -953,9 +980,10 @@ void modifier_deformMatrices_DM_deprecated(struct ModifierData *md, const Modifi } } -void modifier_deformVertsEM_DM_deprecated(struct ModifierData *md, const ModifierEvalContext *ctx, - struct BMEditMesh *editData, struct DerivedMesh *dm, - float (*vertexCos)[3], int numVerts) +void modifier_deformVertsEM_DM_deprecated( + struct ModifierData *md, const ModifierEvalContext *ctx, + struct BMEditMesh *editData, struct DerivedMesh *dm, + float (*vertexCos)[3], int numVerts) { const ModifierTypeInfo *mti = modifierType_getInfo(md->type); @@ -973,9 +1001,10 @@ void modifier_deformVertsEM_DM_deprecated(struct ModifierData *md, const Modifie } } -void modifier_deformMatricesEM_DM_deprecated(struct ModifierData *md, const ModifierEvalContext *ctx, - struct BMEditMesh *editData, struct DerivedMesh *dm, - float (*vertexCos)[3], float (*defMats)[3][3], int numVerts) +void modifier_deformMatricesEM_DM_deprecated( + struct ModifierData *md, const ModifierEvalContext *ctx, + struct BMEditMesh *editData, struct DerivedMesh *dm, + float (*vertexCos)[3], float (*defMats)[3][3], int numVerts) { const ModifierTypeInfo *mti = modifierType_getInfo(md->type); @@ -993,8 +1022,9 @@ void modifier_deformMatricesEM_DM_deprecated(struct ModifierData *md, const Modi } } -struct DerivedMesh *modifier_applyModifier_DM_deprecated(struct ModifierData *md, const ModifierEvalContext *ctx, - struct DerivedMesh *dm) +struct DerivedMesh *modifier_applyModifier_DM_deprecated( + struct ModifierData *md, const ModifierEvalContext *ctx, + struct DerivedMesh *dm) { const ModifierTypeInfo *mti = modifierType_getInfo(md->type); @@ -1021,9 +1051,10 @@ struct DerivedMesh *modifier_applyModifier_DM_deprecated(struct ModifierData *md } -struct DerivedMesh *modifier_applyModifierEM_DM_deprecated(struct ModifierData *md, const ModifierEvalContext *ctx, - struct BMEditMesh *editData, - struct DerivedMesh *dm) +struct DerivedMesh *modifier_applyModifierEM_DM_deprecated( + struct ModifierData *md, const ModifierEvalContext *ctx, + struct BMEditMesh *editData, + struct DerivedMesh *dm) { const ModifierTypeInfo *mti = modifierType_getInfo(md->type); |