diff options
author | Monique Dewanchand <mdewanchand> | 2022-09-14 22:30:20 +0300 |
---|---|---|
committer | Monique <mdewanchand@atmind.nl> | 2022-09-14 22:30:56 +0300 |
commit | 23276bcc37acc54f1e1814abdf482a432523c3a6 (patch) | |
tree | 8677bacc96fb953fb27625a6ae563aa1ae5e1769 /source/blender/editors/object | |
parent | 1a4854898000661dd7cf57492a7a75cb60ea63ef (diff) |
Adding `const Scene*` parameter in many areas.
Related to {D15885} that requires scene parameter
to be added in many places. To speed up the review process
the adding of the scene parameter was added in a separate
patch.
Reviewed By: mont29
Maniphest Tasks: T73411
Differential Revision: https://developer.blender.org/D15930
Diffstat (limited to 'source/blender/editors/object')
-rw-r--r-- | source/blender/editors/object/object_add.cc | 6 | ||||
-rw-r--r-- | source/blender/editors/object/object_constraint.c | 3 | ||||
-rw-r--r-- | source/blender/editors/object/object_edit.c | 14 | ||||
-rw-r--r-- | source/blender/editors/object/object_hook.c | 7 | ||||
-rw-r--r-- | source/blender/editors/object/object_modes.c | 2 | ||||
-rw-r--r-- | source/blender/editors/object/object_modifier.cc | 9 | ||||
-rw-r--r-- | source/blender/editors/object/object_random.c | 4 | ||||
-rw-r--r-- | source/blender/editors/object/object_relations.c | 5 | ||||
-rw-r--r-- | source/blender/editors/object/object_select.c | 31 | ||||
-rw-r--r-- | source/blender/editors/object/object_transform.cc | 2 | ||||
-rw-r--r-- | source/blender/editors/object/object_utils.c | 1 |
11 files changed, 50 insertions, 34 deletions
diff --git a/source/blender/editors/object/object_add.cc b/source/blender/editors/object/object_add.cc index c651affd96a..ee2bb551c40 100644 --- a/source/blender/editors/object/object_add.cc +++ b/source/blender/editors/object/object_add.cc @@ -619,14 +619,14 @@ Object *ED_object_add_type_with_obdata(bContext *C, Object *ob; if (obdata != nullptr) { BLI_assert(type == BKE_object_obdata_to_type(obdata)); - ob = BKE_object_add_for_data(bmain, view_layer, type, name, obdata, true); + ob = BKE_object_add_for_data(bmain, scene, view_layer, type, name, obdata, true); const short *materials_len_p = BKE_id_material_len_p(obdata); if (materials_len_p && *materials_len_p > 0) { BKE_object_materials_test(bmain, ob, static_cast<ID *>(ob->data)); } } else { - ob = BKE_object_add(bmain, view_layer, type, name); + ob = BKE_object_add(bmain, scene, view_layer, type, name); } Base *ob_base_act = view_layer->basact; @@ -3811,7 +3811,7 @@ static int object_add_named_exec(bContext *C, wmOperator *op) /* object_add_duplicate_internal() doesn't deselect other objects, unlike object_add_common() or * BKE_view_layer_base_deselect_all(). */ - ED_object_base_deselect_all(view_layer, nullptr, SEL_DESELECT); + ED_object_base_deselect_all(scene, view_layer, nullptr, SEL_DESELECT); ED_object_base_select(basen, BA_SELECT); ED_object_base_activate(C, basen); diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c index 28ba2b04b6f..6aefabe780d 100644 --- a/source/blender/editors/object/object_constraint.c +++ b/source/blender/editors/object/object_constraint.c @@ -2313,12 +2313,13 @@ static bool get_new_constraint_target( /* if still not found, add a new empty to act as a target (if allowed) */ if ((found == false) && (add)) { Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); Base *base = view_layer->basact; Object *obt; /* add new target object */ - obt = BKE_object_add(bmain, view_layer, OB_EMPTY, NULL); + obt = BKE_object_add(bmain, scene, view_layer, OB_EMPTY, NULL); /* transform cent to global coords for loc */ if (pchanact) { diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index cc16b58fa72..0e369941be8 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -140,6 +140,7 @@ Object **ED_object_array_in_mode_or_selected(bContext *C, uint *r_objects_len) { ScrArea *area = CTX_wm_area(C); + const Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); Object *ob_active = BKE_view_layer_active_object_get(view_layer); ID *id_pin = NULL; @@ -200,7 +201,7 @@ Object **ED_object_array_in_mode_or_selected(bContext *C, params.filter_fn = filter_fn; params.filter_userdata = filter_user_data; objects = BKE_view_layer_array_from_objects_in_mode_params( - view_layer, v3d, r_objects_len, ¶ms); + scene, view_layer, v3d, r_objects_len, ¶ms); } else { objects = BKE_view_layer_array_selected_objects( @@ -362,10 +363,10 @@ static int object_hide_collection_exec(bContext *C, wmOperator *op) } if (toggle) { lc->local_collections_bits ^= v3d->local_collections_uuid; - BKE_layer_collection_local_sync(view_layer, v3d); + BKE_layer_collection_local_sync(scene, view_layer, v3d); } else { - BKE_layer_collection_isolate_local(view_layer, v3d, lc, extend); + BKE_layer_collection_isolate_local(scene, view_layer, v3d, lc, extend); } } else { @@ -381,6 +382,7 @@ static int object_hide_collection_exec(bContext *C, wmOperator *op) void ED_collection_hide_menu_draw(const bContext *C, uiLayout *layout) { + const Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); LayerCollection *lc_scene = view_layer->layer_collections.first; @@ -399,7 +401,7 @@ void ED_collection_hide_menu_draw(const bContext *C, uiLayout *layout) } int icon = ICON_NONE; - if (BKE_layer_collection_has_selected_objects(view_layer, lc)) { + if (BKE_layer_collection_has_selected_objects(scene, view_layer, lc)) { icon = ICON_LAYER_ACTIVE; } else if (lc->runtime_flag & LAYER_COLLECTION_HAS_OBJECTS) { @@ -867,7 +869,7 @@ static int editmode_toggle_exec(bContext *C, wmOperator *op) ED_object_editmode_exit_ex(bmain, scene, obact, EM_FREEDATA); if ((obact->mode & mode_flag) == 0) { - FOREACH_OBJECT_BEGIN (view_layer, ob) { + FOREACH_OBJECT_BEGIN (scene, view_layer, ob) { if ((ob != obact) && (ob->type == obact->type)) { ED_object_editmode_exit_ex(bmain, scene, ob, EM_FREEDATA); } @@ -963,7 +965,7 @@ static int posemode_exec(bContext *C, wmOperator *op) if (is_mode_set) { bool ok = ED_object_posemode_exit(C, obact); if (ok) { - FOREACH_OBJECT_BEGIN (view_layer, ob) { + FOREACH_OBJECT_BEGIN (scene, view_layer, ob) { if ((ob != obact) && (ob->type == OB_ARMATURE) && (ob->mode & mode_flag)) { ED_object_posemode_exit_ex(bmain, ob); } diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index b3f62f3fc0f..077891f92ed 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -484,12 +484,13 @@ static bool hook_op_edit_poll(bContext *C) return false; } -static Object *add_hook_object_new(Main *bmain, ViewLayer *view_layer, View3D *v3d, Object *obedit) +static Object *add_hook_object_new( + Main *bmain, const Scene *scene, ViewLayer *view_layer, View3D *v3d, Object *obedit) { Base *basedit; Object *ob; - ob = BKE_object_add(bmain, view_layer, OB_EMPTY, NULL); + ob = BKE_object_add(bmain, scene, view_layer, OB_EMPTY, NULL); basedit = BKE_view_layer_base_find(view_layer, obedit); BLI_assert(view_layer->basact->object == ob); @@ -532,7 +533,7 @@ static int add_hook_object(const bContext *C, if (mode == OBJECT_ADDHOOK_NEWOB && !ob) { - ob = add_hook_object_new(bmain, view_layer, v3d, obedit); + ob = add_hook_object_new(bmain, scene, view_layer, v3d, obedit); /* transform cent to global coords for loc */ mul_v3_m4v3(ob->loc, obedit->obmat, cent); diff --git a/source/blender/editors/object/object_modes.c b/source/blender/editors/object/object_modes.c index 27d8c326d41..fd28a377333 100644 --- a/source/blender/editors/object/object_modes.c +++ b/source/blender/editors/object/object_modes.c @@ -465,7 +465,7 @@ static bool object_transfer_mode_to_base(bContext *C, wmOperator *op, Base *base if (ED_object_mode_set_ex(C, OB_MODE_OBJECT, true, op->reports)) { Object *ob_dst_orig = DEG_get_original_object(ob_dst); Base *base = BKE_view_layer_base_find(view_layer, ob_dst_orig); - BKE_view_layer_base_deselect_all(view_layer); + BKE_view_layer_base_deselect_all(scene, view_layer); BKE_view_layer_base_select_and_set_active(view_layer, base); DEG_id_tag_update(&scene->id, ID_RECALC_SELECT); diff --git a/source/blender/editors/object/object_modifier.cc b/source/blender/editors/object/object_modifier.cc index b8613c0ea37..b5820ac55da 100644 --- a/source/blender/editors/object/object_modifier.cc +++ b/source/blender/editors/object/object_modifier.cc @@ -525,6 +525,7 @@ void ED_object_modifier_copy_to_object(bContext *C, bool ED_object_modifier_convert_psys_to_mesh(ReportList *UNUSED(reports), Main *bmain, Depsgraph *depsgraph, + Scene *scene, ViewLayer *view_layer, Object *ob, ModifierData *md) @@ -583,7 +584,7 @@ bool ED_object_modifier_convert_psys_to_mesh(ReportList *UNUSED(reports), } /* add new mesh */ - Object *obn = BKE_object_add(bmain, view_layer, OB_MESH, nullptr); + Object *obn = BKE_object_add(bmain, scene, view_layer, OB_MESH, nullptr); Mesh *me = static_cast<Mesh *>(obn->data); me->totvert = verts_num; @@ -1621,12 +1622,13 @@ static int modifier_convert_exec(bContext *C, wmOperator *op) { Main *bmain = CTX_data_main(C); Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C); + Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); Object *ob = ED_object_active_context(C); ModifierData *md = edit_modifier_property_get(op, ob, 0); if (!md || !ED_object_modifier_convert_psys_to_mesh( - op->reports, bmain, depsgraph, view_layer, ob, md)) { + op->reports, bmain, depsgraph, scene, view_layer, ob, md)) { return OPERATOR_CANCELLED; } @@ -2652,8 +2654,9 @@ static Object *modifier_skin_armature_create(Depsgraph *depsgraph, Main *bmain, /* add vertex weights to original mesh */ CustomData_add_layer(&me->vdata, CD_MDEFORMVERT, CD_SET_DEFAULT, nullptr, me->totvert); + Scene *scene = DEG_get_input_scene(depsgraph); ViewLayer *view_layer = DEG_get_input_view_layer(depsgraph); - Object *arm_ob = BKE_object_add(bmain, view_layer, OB_ARMATURE, nullptr); + Object *arm_ob = BKE_object_add(bmain, scene, view_layer, OB_ARMATURE, nullptr); BKE_object_transform_copy(arm_ob, skin_ob); bArmature *arm = static_cast<bArmature *>(arm_ob->data); arm->layer = 1; diff --git a/source/blender/editors/object/object_random.c b/source/blender/editors/object/object_random.c index 7d670d3f452..3117cbb0166 100644 --- a/source/blender/editors/object/object_random.c +++ b/source/blender/editors/object/object_random.c @@ -9,6 +9,7 @@ #include "DNA_layer_types.h" #include "DNA_object_types.h" +#include "DNA_scene_types.h" #include "BLI_math.h" #include "BLI_rand.h" @@ -77,6 +78,7 @@ static bool object_rand_transverts(TransVertStore *tvs, static int object_rand_verts_exec(bContext *C, wmOperator *op) { + const Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); Object *ob_active = CTX_data_edit_object(C); const int ob_mode = ob_active->mode; @@ -89,7 +91,7 @@ static int object_rand_verts_exec(bContext *C, wmOperator *op) bool changed_multi = false; uint objects_len = 0; Object **objects = BKE_view_layer_array_from_objects_in_mode_unique_data( - view_layer, CTX_wm_view3d(C), &objects_len, ob_mode); + scene, view_layer, CTX_wm_view3d(C), &objects_len, ob_mode); for (uint ob_index = 0; ob_index < objects_len; ob_index++) { Object *ob_iter = objects[ob_index]; diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 40dbd6b7bd8..81aadfa6d41 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -2153,13 +2153,14 @@ static int make_local_exec(bContext *C, wmOperator *op) /* NOTE: we (ab)use LIB_TAG_PRE_EXISTING to cherry pick which ID to make local... */ if (mode == MAKE_LOCAL_ALL) { + const Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); Collection *collection = CTX_data_collection(C); BKE_main_id_tag_all(bmain, LIB_TAG_PRE_EXISTING, false); /* De-select so the user can differentiate newly instanced from existing objects. */ - BKE_view_layer_base_deselect_all(view_layer); + BKE_view_layer_base_deselect_all(scene, view_layer); if (make_local_all__instance_indirect_unused(bmain, view_layer, collection)) { BKE_report(op->reports, @@ -2692,7 +2693,7 @@ static int make_single_user_exec(bContext *C, wmOperator *op) if (RNA_boolean_get(op->ptr, "object")) { if (flag == SELECT) { - BKE_view_layer_selected_objects_tag(view_layer, OB_DONE); + BKE_view_layer_selected_objects_tag(scene, view_layer, OB_DONE); single_object_users(bmain, scene, v3d, OB_DONE, copy_collections); } else { diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index 2ce00490273..8a7e6d9447d 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -132,14 +132,15 @@ void ED_object_base_activate_with_mode_exit_if_needed(bContext *C, Base *base) ED_object_base_activate(C, base); } -bool ED_object_base_deselect_all_ex(ViewLayer *view_layer, +bool ED_object_base_deselect_all_ex(const Scene *UNUSED(scene), + ViewLayer *view_layer, View3D *v3d, int action, bool *r_any_visible) { if (action == SEL_TOGGLE) { action = SEL_SELECT; - FOREACH_VISIBLE_BASE_BEGIN (view_layer, v3d, base) { + FOREACH_VISIBLE_BASE_BEGIN (scene, view_layer, v3d, base) { if (v3d && ((v3d->object_type_exclude_select & (1 << base->object->type)) != 0)) { continue; } @@ -153,7 +154,7 @@ bool ED_object_base_deselect_all_ex(ViewLayer *view_layer, bool any_visible = false; bool changed = false; - FOREACH_VISIBLE_BASE_BEGIN (view_layer, v3d, base) { + FOREACH_VISIBLE_BASE_BEGIN (scene, view_layer, v3d, base) { if (v3d && ((v3d->object_type_exclude_select & (1 << base->object->type)) != 0)) { continue; } @@ -190,9 +191,12 @@ bool ED_object_base_deselect_all_ex(ViewLayer *view_layer, return changed; } -bool ED_object_base_deselect_all(ViewLayer *view_layer, View3D *v3d, int action) +bool ED_object_base_deselect_all(const Scene *scene, + ViewLayer *view_layer, + View3D *v3d, + int action) { - return ED_object_base_deselect_all_ex(view_layer, v3d, action, NULL); + return ED_object_base_deselect_all_ex(scene, view_layer, v3d, action, NULL); } /** \} */ @@ -212,7 +216,7 @@ static int get_base_select_priority(Base *base) return 1; } -Base *ED_object_find_first_by_data_id(ViewLayer *view_layer, ID *id) +Base *ED_object_find_first_by_data_id(const Scene *UNUSED(scene), ViewLayer *view_layer, ID *id) { BLI_assert(OB_DATA_SUPPORT_ID(GS(id->name))); @@ -247,6 +251,7 @@ Base *ED_object_find_first_by_data_id(ViewLayer *view_layer, ID *id) bool ED_object_jump_to_object(bContext *C, Object *ob, const bool UNUSED(reveal_hidden)) { + const Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); View3D *v3d = CTX_wm_view3d(C); Base *base = BKE_view_layer_base_find(view_layer, ob); @@ -260,7 +265,7 @@ bool ED_object_jump_to_object(bContext *C, Object *ob, const bool UNUSED(reveal_ if (view_layer->basact != base || !(base->flag & BASE_SELECTED)) { /* Select if not selected. */ if (!(base->flag & BASE_SELECTED)) { - ED_object_base_deselect_all(view_layer, v3d, SEL_DESELECT); + ED_object_base_deselect_all(scene, view_layer, v3d, SEL_DESELECT); if (BASE_VISIBLE(v3d, base)) { ED_object_base_select(base, BA_SELECT); @@ -382,6 +387,7 @@ static bool objects_selectable_poll(bContext *C) static int object_select_by_type_exec(bContext *C, wmOperator *op) { + Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); View3D *v3d = CTX_wm_view3d(C); short obtype, extend; @@ -390,7 +396,7 @@ static int object_select_by_type_exec(bContext *C, wmOperator *op) extend = RNA_boolean_get(op->ptr, "extend"); if (extend == 0) { - ED_object_base_deselect_all(view_layer, v3d, SEL_DESELECT); + ED_object_base_deselect_all(scene, view_layer, v3d, SEL_DESELECT); } CTX_DATA_BEGIN (C, Base *, base, visible_bases) { @@ -400,7 +406,6 @@ static int object_select_by_type_exec(bContext *C, wmOperator *op) } CTX_DATA_END; - Scene *scene = CTX_data_scene(C); DEG_id_tag_update(&scene->id, ID_RECALC_SELECT); WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene); @@ -623,7 +628,7 @@ static int object_select_linked_exec(bContext *C, wmOperator *op) extend = RNA_boolean_get(op->ptr, "extend"); if (extend == 0) { - ED_object_base_deselect_all(view_layer, v3d, SEL_DESELECT); + ED_object_base_deselect_all(scene, view_layer, v3d, SEL_DESELECT); } ob = BKE_view_layer_active_object_get(view_layer); @@ -1020,7 +1025,7 @@ static int object_select_grouped_exec(bContext *C, wmOperator *op) extend = RNA_boolean_get(op->ptr, "extend"); if (extend == 0) { - changed = ED_object_base_deselect_all(view_layer, v3d, SEL_DESELECT); + changed = ED_object_base_deselect_all(scene, view_layer, v3d, SEL_DESELECT); } ob = BKE_view_layer_active_object_get(view_layer); @@ -1113,15 +1118,15 @@ void OBJECT_OT_select_grouped(wmOperatorType *ot) static int object_select_all_exec(bContext *C, wmOperator *op) { + Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); View3D *v3d = CTX_wm_view3d(C); int action = RNA_enum_get(op->ptr, "action"); bool any_visible = false; - bool changed = ED_object_base_deselect_all_ex(view_layer, v3d, action, &any_visible); + bool changed = ED_object_base_deselect_all_ex(scene, view_layer, v3d, action, &any_visible); if (changed) { - Scene *scene = CTX_data_scene(C); DEG_id_tag_update(&scene->id, ID_RECALC_SELECT); WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene); diff --git a/source/blender/editors/object/object_transform.cc b/source/blender/editors/object/object_transform.cc index e4f96d95173..0a86ae28b3e 100644 --- a/source/blender/editors/object/object_transform.cc +++ b/source/blender/editors/object/object_transform.cc @@ -321,7 +321,7 @@ static int object_clear_transform_generic_exec(bContext *C, BKE_scene_graph_evaluated_ensure(depsgraph, bmain); xcs = ED_object_xform_skip_child_container_create(); ED_object_xform_skip_child_container_item_ensure_from_array( - xcs, view_layer, objects.data(), objects.size()); + xcs, scene, view_layer, objects.data(), objects.size()); } if (use_transform_data_origin) { BKE_scene_graph_evaluated_ensure(depsgraph, bmain); diff --git a/source/blender/editors/object/object_utils.c b/source/blender/editors/object/object_utils.c index cb9c8a92abe..b50d44194c7 100644 --- a/source/blender/editors/object/object_utils.c +++ b/source/blender/editors/object/object_utils.c @@ -169,6 +169,7 @@ struct XFormObjectSkipChild_Container *ED_object_xform_skip_child_container_crea void ED_object_xform_skip_child_container_item_ensure_from_array( struct XFormObjectSkipChild_Container *xcs, + const Scene *UNUSED(scene), ViewLayer *view_layer, Object **objects, uint objects_len) |