Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/modifier.c
| Show First 20 Lines • Show All 995 Lines • ▼ Show 20 Lines | void BKE_modifier_deform_vertsEM(ModifierData *md, | ||||
| if (me && mti->dependsOnNormals && mti->dependsOnNormals(md)) { | if (me && mti->dependsOnNormals && mti->dependsOnNormals(md)) { | ||||
| modwrap_dependsOnNormals(me); | modwrap_dependsOnNormals(me); | ||||
| } | } | ||||
| mti->deformVertsEM(md, ctx, em, me, vertexCos, numVerts); | mti->deformVertsEM(md, ctx, em, me, vertexCos, numVerts); | ||||
| } | } | ||||
| /* end modifier callback wrappers */ | /* end modifier callback wrappers */ | ||||
| Mesh *BKE_modifier_get_evaluated_mesh_from_evaluated_object(Object *ob_eval, | Mesh *BKE_modifier_get_evaluated_mesh_from_evaluated_object(Object *ob_eval) | ||||
| const bool get_cage_mesh) | |||||
| { | { | ||||
| Mesh *me = NULL; | Mesh *me = NULL; | ||||
| if ((ob_eval->type == OB_MESH) && (ob_eval->mode & OB_MODE_EDIT)) { | if ((ob_eval->type == OB_MESH) && (ob_eval->mode & OB_MODE_EDIT)) { | ||||
| /* In EditMode, evaluated mesh is stored in BMEditMesh, not the object... */ | /* In EditMode, evaluated mesh is stored in BMEditMesh, not the object... */ | ||||
| BMEditMesh *em = BKE_editmesh_from_object(ob_eval); | BMEditMesh *em = BKE_editmesh_from_object(ob_eval); | ||||
| /* 'em' might not exist yet in some cases, just after loading a .blend file, see T57878. */ | /* 'em' might not exist yet in some cases, just after loading a .blend file, see T57878. */ | ||||
| if (em != NULL) { | if (em != NULL) { | ||||
| Mesh *editmesh_eval_final = BKE_object_get_editmesh_eval_final(ob_eval); | me = BKE_object_get_editmesh_eval_final(ob_eval); | ||||
| Mesh *editmesh_eval_cage = BKE_object_get_editmesh_eval_cage(ob_eval); | |||||
| me = (get_cage_mesh && editmesh_eval_cage != NULL) ? editmesh_eval_cage : | |||||
| editmesh_eval_final; | |||||
| } | } | ||||
| } | } | ||||
| if (me == NULL) { | if (me == NULL) { | ||||
| me = (get_cage_mesh && ob_eval->runtime.mesh_deform_eval != NULL) ? | me = BKE_object_get_evaluated_mesh(ob_eval); | ||||
| ob_eval->runtime.mesh_deform_eval : | |||||
| BKE_object_get_evaluated_mesh(ob_eval); | |||||
| } | } | ||||
| return me; | return me; | ||||
| } | } | ||||
| ModifierData *BKE_modifier_get_original(const Object *object, ModifierData *md) | ModifierData *BKE_modifier_get_original(const Object *object, ModifierData *md) | ||||
| { | { | ||||
| const Object *object_orig = DEG_get_original_object((Object *)object); | const Object *object_orig = DEG_get_original_object((Object *)object); | ||||
| ▲ Show 20 Lines • Show All 457 Lines • Show Last 20 Lines | |||||