Merge branch 'master' into blender2.8
[blender.git] / source / blender / editors / object / object_modifier.c
index 1aa1407797b6e46b7571c09f054e8c37010f463b..d614be175f25ba6dfbb34ec9ab6b1cffd798ec68 100644 (file)
@@ -411,7 +411,7 @@ int ED_object_modifier_move_down(ReportList *reports, Object *ob, ModifierData *
        return 1;
 }
 
-int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene *scene, Object *ob, ModifierData *md)
+int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene *scene, SceneLayer *sl, Object *ob, ModifierData *md)
 {
        Object *obn;
        ParticleSystem *psys;
@@ -463,7 +463,7 @@ int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene *
        if (totvert == 0) return 0;
 
        /* add new mesh */
-       obn = BKE_object_add(bmain, scene, OB_MESH, NULL);
+       obn = BKE_object_add(bmain, scene, sl, OB_MESH, NULL);
        me = obn->data;
        
        me->totvert = totvert;
@@ -872,7 +872,7 @@ ModifierData *edit_modifier_property_get(wmOperator *op, Object *ob, int type)
 static int modifier_remove_exec(bContext *C, wmOperator *op)
 {
        Main *bmain = CTX_data_main(C);
-       Scene *scene = CTX_data_scene(C);
+       SceneLayer *sl = CTX_data_scene_layer(C);
        Object *ob = ED_object_active_context(C);
        ModifierData *md = edit_modifier_property_get(op, ob, 0);
        int mode_orig = ob->mode;
@@ -885,7 +885,7 @@ static int modifier_remove_exec(bContext *C, wmOperator *op)
        /* if cloth/softbody was removed, particle mode could be cleared */
        if (mode_orig & OB_MODE_PARTICLE_EDIT)
                if ((ob->mode & OB_MODE_PARTICLE_EDIT) == 0)
-                       if (scene->basact && scene->basact->object == ob)
+                       if (sl->basact && sl->basact->object == ob)
                                WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_MODE_OBJECT, NULL);
        
        return OPERATOR_FINISHED;
@@ -1048,10 +1048,11 @@ static int modifier_convert_exec(bContext *C, wmOperator *op)
 {
        Main *bmain = CTX_data_main(C);
        Scene *scene = CTX_data_scene(C);
+       SceneLayer *sl = CTX_data_scene_layer(C);
        Object *ob = ED_object_active_context(C);
        ModifierData *md = edit_modifier_property_get(op, ob, 0);
        
-       if (!md || !ED_object_modifier_convert(op->reports, bmain, scene, ob, md))
+       if (!md || !ED_object_modifier_convert(op->reports, bmain, scene, sl, ob, md))
                return OPERATOR_CANCELLED;
 
        DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
@@ -1684,7 +1685,7 @@ static void skin_armature_bone_create(Object *skin_ob,
        }
 }
 
-static Object *modifier_skin_armature_create(Main *bmain, Scene *scene, Object *skin_ob)
+static Object *modifier_skin_armature_create(Main *bmain, Scene *scene, SceneLayer *sl, Object *skin_ob)
 {
        BLI_bitmap *edges_visited;
        DerivedMesh *deform_dm;
@@ -1707,7 +1708,7 @@ static Object *modifier_skin_armature_create(Main *bmain, Scene *scene, Object *
                             NULL,
                             me->totvert);
        
-       arm_ob = BKE_object_add(bmain, scene, OB_ARMATURE, NULL);
+       arm_ob = BKE_object_add(bmain, scene, sl, OB_ARMATURE, NULL);
        BKE_object_transform_copy(arm_ob, skin_ob);
        arm = arm_ob->data;
        arm->layer = 1;
@@ -1766,6 +1767,7 @@ static int skin_armature_create_exec(bContext *C, wmOperator *op)
 {
        Main *bmain = CTX_data_main(C);
        Scene *scene = CTX_data_scene(C);
+       SceneLayer *sl = CTX_data_scene_layer(C);
        Object *ob = CTX_data_active_object(C), *arm_ob;
        Mesh *me = ob->data;
        ModifierData *skin_md;
@@ -1777,7 +1779,7 @@ static int skin_armature_create_exec(bContext *C, wmOperator *op)
        }
 
        /* create new armature */
-       arm_ob = modifier_skin_armature_create(bmain, scene, ob);
+       arm_ob = modifier_skin_armature_create(bmain, scene, sl, ob);
 
        /* add a modifier to connect the new armature to the mesh */
        arm_md = (ArmatureModifierData *)modifier_new(eModifierType_Armature);