Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/object/object_modifier.c
| Show First 20 Lines • Show All 1,436 Lines • ▼ Show 20 Lines | static int multires_subdivide_exec(bContext *C, wmOperator *op) | ||||
| Object *object = ED_object_active_context(C); | Object *object = ED_object_active_context(C); | ||||
| MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get( | MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get( | ||||
| op, object, eModifierType_Multires); | op, object, eModifierType_Multires); | ||||
| if (!mmd) { | if (!mmd) { | ||||
| return OPERATOR_CANCELLED; | return OPERATOR_CANCELLED; | ||||
| } | } | ||||
| ED_sculpt_undo_push_multires_mesh_begin(C, op->type->name); | |||||
| multiresModifier_subdivide(object, mmd); | multiresModifier_subdivide(object, mmd); | ||||
| ED_sculpt_undo_push_multires_mesh_end(C, op->type->name); | |||||
| ED_object_iter_other( | ED_object_iter_other( | ||||
| CTX_data_main(C), object, true, ED_object_multires_update_totlevels_cb, &mmd->totlvl); | CTX_data_main(C), object, true, ED_object_multires_update_totlevels_cb, &mmd->totlvl); | ||||
| DEG_id_tag_update(&object->id, ID_RECALC_GEOMETRY); | DEG_id_tag_update(&object->id, ID_RECALC_GEOMETRY); | ||||
| WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, object); | WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, object); | ||||
| if (object->mode & OB_MODE_SCULPT) { | if (object->mode & OB_MODE_SCULPT) { | ||||
| /* ensure that grid paint mask layer is created */ | /* ensure that grid paint mask layer is created */ | ||||
| ▲ Show 20 Lines • Show All 1,227 Lines • Show Last 20 Lines | |||||