diff options
Diffstat (limited to 'source/blender/editors/object/object_modifier.c')
-rw-r--r-- | source/blender/editors/object/object_modifier.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 8792803bf0c..8bbfce4dd99 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -43,7 +43,6 @@ #include "BLI_string.h" #include "BLI_path_util.h" -#include "BKE_action.h" #include "BKE_curve.h" #include "BKE_context.h" #include "BKE_depsgraph.h" @@ -53,6 +52,7 @@ #include "BKE_global.h" #include "BKE_key.h" #include "BKE_lattice.h" +#include "BKE_main.h" #include "BKE_mesh.h" #include "BKE_modifier.h" #include "BKE_multires.h" @@ -60,7 +60,6 @@ #include "BKE_object.h" #include "BKE_particle.h" #include "BKE_softbody.h" -#include "BKE_utildefines.h" #include "RNA_access.h" #include "RNA_define.h" @@ -77,7 +76,7 @@ /******************************** API ****************************/ -ModifierData *ED_object_modifier_add(ReportList *reports, Scene *scene, Object *ob, char *name, int type) +ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *scene, Object *ob, char *name, int type) { ModifierData *md=NULL, *new_md=NULL; ModifierTypeInfo *mti = modifierType_getInfo(type); @@ -129,10 +128,10 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Scene *scene, Object * ob->pd= object_add_collision_fields(0); ob->pd->deflect= 1; - DAG_scene_sort(scene); + DAG_scene_sort(bmain, scene); } else if(type == eModifierType_Surface) - DAG_scene_sort(scene); + DAG_scene_sort(bmain, scene); } DAG_id_flush_update(&ob->id, OB_RECALC_DATA); @@ -140,7 +139,7 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Scene *scene, Object * return new_md; } -int ED_object_modifier_remove(ReportList *reports, Scene *scene, Object *ob, ModifierData *md) +int ED_object_modifier_remove(ReportList *reports, Main *bmain, Scene *scene, Object *ob, ModifierData *md) { ModifierData *obmd; @@ -175,13 +174,13 @@ int ED_object_modifier_remove(ReportList *reports, Scene *scene, Object *ob, Mod if(ob->pd) ob->pd->deflect= 0; - DAG_scene_sort(scene); + DAG_scene_sort(bmain, scene); } else if(md->type == eModifierType_Surface) { if(ob->pd && ob->pd->shape == PFIELD_SHAPE_SURFACE) ob->pd->shape = PFIELD_SHAPE_PLANE; - DAG_scene_sort(scene); + DAG_scene_sort(bmain, scene); } else if(md->type == eModifierType_Smoke) { ob->dt = OB_TEXTURE; @@ -243,7 +242,7 @@ int ED_object_modifier_move_down(ReportList *reports, Object *ob, ModifierData * return 1; } -int ED_object_modifier_convert(ReportList *reports, Scene *scene, Object *ob, ModifierData *md) +int ED_object_modifier_convert(ReportList *reports, Main *bmain, Scene *scene, Object *ob, ModifierData *md) { Object *obn; ParticleSystem *psys; @@ -341,7 +340,7 @@ int ED_object_modifier_convert(ReportList *reports, Scene *scene, Object *ob, Mo } } - DAG_scene_sort(scene); + DAG_scene_sort(bmain, scene); return 1; } @@ -511,11 +510,12 @@ int ED_object_modifier_copy(ReportList *reports, Object *ob, ModifierData *md) static int modifier_add_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); Object *ob = ED_object_active_context(C); int type= RNA_enum_get(op->ptr, "type"); - if(!ED_object_modifier_add(op->reports, scene, ob, NULL, type)) + if(!ED_object_modifier_add(op->reports, bmain, scene, ob, NULL, type)) return OPERATOR_CANCELLED; WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); @@ -637,11 +637,12 @@ static ModifierData *edit_modifier_property_get(bContext *C, wmOperator *op, Obj static int modifier_remove_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); Object *ob = ED_object_active_context(C); ModifierData *md = edit_modifier_property_get(C, op, ob, 0); - if(!ob || !md || !ED_object_modifier_remove(op->reports, scene, ob, md)) + if(!ob || !md || !ED_object_modifier_remove(op->reports, bmain, scene, ob, md)) return OPERATOR_CANCELLED; WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); @@ -803,11 +804,12 @@ void OBJECT_OT_modifier_apply(wmOperatorType *ot) static int modifier_convert_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); Object *ob = ED_object_active_context(C); ModifierData *md = edit_modifier_property_get(C, op, ob, 0); - if(!ob || !md || !ED_object_modifier_convert(op->reports, scene, ob, md)) + if(!ob || !md || !ED_object_modifier_convert(op->reports, bmain, scene, ob, md)) return OPERATOR_CANCELLED; DAG_id_flush_update(&ob->id, OB_RECALC_DATA); |