diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2019-04-28 16:41:30 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2019-04-29 11:03:58 +0300 |
commit | f54192e09aade8614f1812944ba9f3faea0086bf (patch) | |
tree | 4f1903ebab730e118fbcf15a506276f778ca0750 /source | |
parent | 564ffc060b0df3f47ffa57e180c26800c27c26d9 (diff) |
Cleanup: internal apply modifier code: make it clear we use eval modifier and object.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/BKE_mesh.h | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh_convert.c | 21 | ||||
-rw-r--r-- | source/blender/editors/object/object_modifier.c | 33 |
3 files changed, 29 insertions, 29 deletions
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h index f95a824fd94..5b50ead689a 100644 --- a/source/blender/blenkernel/BKE_mesh.h +++ b/source/blender/blenkernel/BKE_mesh.h @@ -216,8 +216,8 @@ struct Mesh *BKE_mesh_new_from_object(struct Depsgraph *depsgraph, const bool calc_undeformed); struct Mesh *BKE_mesh_create_derived_for_modifier(struct Depsgraph *depsgraph, struct Scene *scene, - struct Object *ob, - struct ModifierData *md, + struct Object *ob_eval, + struct ModifierData *md_eval, int build_shapekey_layers); /* Copies a nomain-Mesh into an existing Mesh. */ diff --git a/source/blender/blenkernel/intern/mesh_convert.c b/source/blender/blenkernel/intern/mesh_convert.c index 0ef09b3fe74..0402524e03d 100644 --- a/source/blender/blenkernel/intern/mesh_convert.c +++ b/source/blender/blenkernel/intern/mesh_convert.c @@ -1238,25 +1238,26 @@ static void add_shapekey_layers(Mesh *mesh_dest, Mesh *mesh_src) Mesh *BKE_mesh_create_derived_for_modifier(struct Depsgraph *depsgraph, Scene *scene, - Object *ob, - ModifierData *md, + Object *ob_eval, + ModifierData *md_eval, int build_shapekey_layers) { - Mesh *me = ob->runtime.mesh_orig ? ob->runtime.mesh_orig : ob->data; - const ModifierTypeInfo *mti = modifierType_getInfo(md->type); + Mesh *me = ob_eval->runtime.mesh_orig ? ob_eval->runtime.mesh_orig : ob_eval->data; + const ModifierTypeInfo *mti = modifierType_getInfo(md_eval->type); Mesh *result; KeyBlock *kb; - ModifierEvalContext mectx = {depsgraph, ob, 0}; + ModifierEvalContext mectx = {depsgraph, ob_eval, 0}; - if (!(md->mode & eModifierMode_Realtime)) { + if (!(md_eval->mode & eModifierMode_Realtime)) { return NULL; } - if (mti->isDisabled && mti->isDisabled(scene, md, 0)) { + if (mti->isDisabled && mti->isDisabled(scene, md_eval, 0)) { return NULL; } - if (build_shapekey_layers && me->key && (kb = BLI_findlink(&me->key->block, ob->shapenr - 1))) { + if (build_shapekey_layers && me->key && + (kb = BLI_findlink(&me->key->block, ob_eval->shapenr - 1))) { BKE_keyblock_convert_to_mesh(kb, me); } @@ -1264,7 +1265,7 @@ Mesh *BKE_mesh_create_derived_for_modifier(struct Depsgraph *depsgraph, int numVerts; float(*deformedVerts)[3] = BKE_mesh_vertexCos_get(me, &numVerts); - mti->deformVerts(md, &mectx, NULL, deformedVerts, numVerts); + mti->deformVerts(md_eval, &mectx, NULL, deformedVerts, numVerts); BKE_id_copy_ex(NULL, &me->id, (ID **)&result, LIB_ID_COPY_LOCALIZE); BKE_mesh_apply_vert_coords(result, deformedVerts); @@ -1282,7 +1283,7 @@ Mesh *BKE_mesh_create_derived_for_modifier(struct Depsgraph *depsgraph, add_shapekey_layers(mesh_temp, me); } - result = mti->applyModifier(md, &mectx, mesh_temp); + result = mti->applyModifier(md_eval, &mectx, mesh_temp); ASSERT_IS_VALID_MESH(result); if (mesh_temp != result) { diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index bc95360eab9..231b3e144ca 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -578,12 +578,11 @@ int ED_object_modifier_convert(ReportList *UNUSED(reports), static Mesh *modifier_apply_create_mesh_for_modifier(Depsgraph *depsgraph, Scene *UNUSED(scene), Object *object, - ModifierData *md, + ModifierData *md_eval, bool build_shapekey_layers) { Scene *scene_eval = DEG_get_evaluated_scene(depsgraph); Object *object_eval = DEG_get_evaluated_object(depsgraph, object); - ModifierData *md_eval = modifiers_findByName(object_eval, md->name); Mesh *mesh_applied = BKE_mesh_create_derived_for_modifier( depsgraph, scene_eval, object_eval, md_eval, build_shapekey_layers); return mesh_applied; @@ -594,11 +593,11 @@ static int modifier_apply_shape(Main *bmain, Depsgraph *depsgraph, Scene *scene, Object *ob, - ModifierData *md) + ModifierData *md_eval) { - const ModifierTypeInfo *mti = modifierType_getInfo(md->type); + const ModifierTypeInfo *mti = modifierType_getInfo(md_eval->type); - if (mti->isDisabled && mti->isDisabled(scene, md, 0)) { + if (mti->isDisabled && mti->isDisabled(scene, md_eval, 0)) { BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply"); return 0; } @@ -620,12 +619,12 @@ static int modifier_apply_shape(Main *bmain, Key *key = me->key; KeyBlock *kb; - if (!modifier_isSameTopology(md) || mti->type == eModifierTypeType_NonGeometrical) { + if (!modifier_isSameTopology(md_eval) || mti->type == eModifierTypeType_NonGeometrical) { BKE_report(reports, RPT_ERROR, "Only deforming modifiers can be applied to shapes"); return 0; } - mesh_applied = modifier_apply_create_mesh_for_modifier(depsgraph, scene, ob, md, false); + mesh_applied = modifier_apply_create_mesh_for_modifier(depsgraph, scene, ob, md_eval, false); if (!mesh_applied) { BKE_report(reports, RPT_ERROR, "Modifier is disabled or returned error, skipping apply"); return 0; @@ -640,7 +639,7 @@ static int modifier_apply_shape(Main *bmain, BKE_keyblock_convert_from_mesh(me, key, kb); } - kb = BKE_keyblock_add(key, md->name); + kb = BKE_keyblock_add(key, md_eval->name); BKE_mesh_nomain_to_meshkey(mesh_applied, me, kb); BKE_id_free(NULL, mesh_applied); @@ -653,11 +652,11 @@ static int modifier_apply_shape(Main *bmain, } static int modifier_apply_obdata( - ReportList *reports, Depsgraph *depsgraph, Scene *scene, Object *ob, ModifierData *md) + ReportList *reports, Depsgraph *depsgraph, Scene *scene, Object *ob, ModifierData *md_eval) { - const ModifierTypeInfo *mti = modifierType_getInfo(md->type); + const ModifierTypeInfo *mti = modifierType_getInfo(md_eval->type); - if (mti->isDisabled && mti->isDisabled(scene, md, 0)) { + if (mti->isDisabled && mti->isDisabled(scene, md_eval, 0)) { BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply"); return 0; } @@ -665,7 +664,7 @@ static int modifier_apply_obdata( if (ob->type == OB_MESH) { Mesh *mesh_applied; Mesh *me = ob->data; - MultiresModifierData *mmd = find_multires_modifier_before(scene, md); + MultiresModifierData *mmd = find_multires_modifier_before(scene, md_eval); if (me->key && mti->type != eModifierTypeType_NonGeometrical) { BKE_report(reports, RPT_ERROR, "Modifier cannot be applied to a mesh with shape keys"); @@ -673,18 +672,18 @@ static int modifier_apply_obdata( } /* Multires: ensure that recent sculpting is applied */ - if (md->type == eModifierType_Multires) { + if (md_eval->type == eModifierType_Multires) { multires_force_update(ob); } if (mmd && mmd->totlvl && mti->type == eModifierTypeType_OnlyDeform) { - if (!multiresModifier_reshapeFromDeformModifier(depsgraph, mmd, ob, md)) { + if (!multiresModifier_reshapeFromDeformModifier(depsgraph, mmd, ob, md_eval)) { BKE_report(reports, RPT_ERROR, "Multires modifier returned error, skipping apply"); return 0; } } else { - mesh_applied = modifier_apply_create_mesh_for_modifier(depsgraph, scene, ob, md, true); + mesh_applied = modifier_apply_create_mesh_for_modifier(depsgraph, scene, ob, md_eval, true); if (!mesh_applied) { BKE_report(reports, RPT_ERROR, "Modifier returned error, skipping apply"); return 0; @@ -692,7 +691,7 @@ static int modifier_apply_obdata( BKE_mesh_nomain_to_mesh(mesh_applied, me, ob, &CD_MASK_MESH, true); - if (md->type == eModifierType_Multires) { + if (md_eval->type == eModifierType_Multires) { multires_customdata_delete(me); } } @@ -716,7 +715,7 @@ static int modifier_apply_obdata( "Applied modifier only changed CV points, not tessellated/bevel vertices"); vertexCos = BKE_curve_nurbs_vertexCos_get(&curve_eval->nurb, &numVerts); - mti->deformVerts(md, &mectx, NULL, vertexCos, numVerts); + mti->deformVerts(md_eval, &mectx, NULL, vertexCos, numVerts); BK_curve_nurbs_vertexCos_apply(&curve->nurb, vertexCos); MEM_freeN(vertexCos); |