diff options
author | Monique <mdewanchand@atmind.nl> | 2022-09-09 15:06:13 +0300 |
---|---|---|
committer | Monique <mdewanchand@atmind.nl> | 2022-09-09 15:06:13 +0300 |
commit | 3fcfd904c950877f7286883d86b8f6d3b863ceb1 (patch) | |
tree | be8ae9c911576fcaf8b91131907f834a5e469b2f /source/blender/blenkernel | |
parent | ecaab96e0bd615eb69895f9adc6d186bb2fece0d (diff) |
Add scene parameter
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_object.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/layer.c | 38 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/layer_utils.c | 38 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object.cc | 64 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/scene.cc | 2 |
5 files changed, 87 insertions, 57 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 60dfc0af25f..c60893b6d74 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -175,7 +175,7 @@ struct Object *BKE_object_add_only_object(struct Main *bmain, * \note Creates minimum required data, but without vertices etc. */ struct Object *BKE_object_add(struct Main *bmain, - struct Scene *scene, + const struct Scene *scene, struct ViewLayer *view_layer, int type, const char *name) ATTR_NONNULL(1, 2, 3) ATTR_RETURNS_NONNULL; diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index a7698e78fcc..a388df7efc9 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -284,7 +284,9 @@ void BKE_view_layer_free_ex(ViewLayer *view_layer, const bool do_id_user) MEM_freeN(view_layer); } -void BKE_view_layer_selected_objects_tag(ViewLayer *view_layer, const int tag) +void BKE_view_layer_selected_objects_tag(const Scene *UNUSED(scene), + ViewLayer *view_layer, + const int tag) { LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) { if ((base->flag & BASE_SELECTED) != 0) { @@ -309,7 +311,7 @@ static bool find_scene_collection_in_scene_collections(ListBase *lb, const Layer return false; } -Object *BKE_view_layer_camera_find(ViewLayer *view_layer) +Object *BKE_view_layer_camera_find(const Scene *UNUSED(scene), ViewLayer *view_layer) { LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) { if (base->object->type == OB_CAMERA) { @@ -386,7 +388,7 @@ Base *BKE_view_layer_base_find(ViewLayer *view_layer, Object *ob) return BLI_ghash_lookup(view_layer->object_bases_hash, ob); } -void BKE_view_layer_base_deselect_all(ViewLayer *view_layer) +void BKE_view_layer_base_deselect_all(const Scene *UNUSED(scene), ViewLayer *view_layer) { Base *base; @@ -1408,7 +1410,10 @@ void BKE_main_collection_sync_remap(const Main *bmain) /** \name Object Selection * \{ */ -bool BKE_layer_collection_objects_select(ViewLayer *view_layer, LayerCollection *lc, bool deselect) +bool BKE_layer_collection_objects_select(const Scene *scene, + ViewLayer *view_layer, + LayerCollection *lc, + bool deselect) { if (lc->collection->flag & COLLECTION_HIDE_SELECT) { return false; @@ -1438,13 +1443,13 @@ bool BKE_layer_collection_objects_select(ViewLayer *view_layer, LayerCollection } LISTBASE_FOREACH (LayerCollection *, iter, &lc->layer_collections) { - changed |= BKE_layer_collection_objects_select(view_layer, iter, deselect); + changed |= BKE_layer_collection_objects_select(scene, view_layer, iter, deselect); } return changed; } -bool BKE_layer_collection_has_selected_objects(const Scene *UNUSED(scene), +bool BKE_layer_collection_has_selected_objects(const Scene *scene, ViewLayer *view_layer, LayerCollection *lc) { @@ -1680,7 +1685,9 @@ static void layer_collection_local_sync(ViewLayer *view_layer, } } -void BKE_layer_collection_local_sync(ViewLayer *view_layer, const View3D *v3d) +void BKE_layer_collection_local_sync(const Scene *UNUSED(scene), + ViewLayer *view_layer, + const View3D *v3d) { if (no_resync) { return; @@ -1713,7 +1720,7 @@ void BKE_layer_collection_local_sync_all(const Main *bmain) } View3D *v3d = area->spacedata.first; if (v3d->flag & V3D_LOCAL_COLLECTIONS) { - BKE_layer_collection_local_sync(view_layer, v3d); + BKE_layer_collection_local_sync(scene, view_layer, v3d); } } } @@ -1721,10 +1728,8 @@ void BKE_layer_collection_local_sync_all(const Main *bmain) } } -void BKE_layer_collection_isolate_local(ViewLayer *view_layer, - const View3D *v3d, - LayerCollection *lc, - bool extend) +void BKE_layer_collection_isolate_local( + const Scene *scene, ViewLayer *view_layer, const View3D *v3d, LayerCollection *lc, bool extend) { LayerCollection *lc_master = view_layer->layer_collections.first; bool hide_it = extend && ((v3d->local_collections_uuid & lc->local_collections_bits) != 0); @@ -1764,7 +1769,7 @@ void BKE_layer_collection_isolate_local(ViewLayer *view_layer, layer_collection_local_visibility_set_recursive(lc, v3d->local_collections_uuid); } - BKE_layer_collection_local_sync(view_layer, v3d); + BKE_layer_collection_local_sync(scene, view_layer, v3d); } static void layer_collection_bases_show_recursive(ViewLayer *view_layer, LayerCollection *lc) @@ -1793,7 +1798,8 @@ static void layer_collection_bases_hide_recursive(ViewLayer *view_layer, LayerCo } } -void BKE_layer_collection_set_visible(ViewLayer *view_layer, +void BKE_layer_collection_set_visible(const Scene *UNUSED(scene), + ViewLayer *view_layer, LayerCollection *lc, const bool visible, const bool hierarchy) @@ -2279,7 +2285,9 @@ static void write_layer_collections(BlendWriter *writer, ListBase *lb) } } -void BKE_view_layer_blend_write(BlendWriter *writer, ViewLayer *view_layer) +void BKE_view_layer_blend_write(BlendWriter *writer, + const Scene *UNUSED(scene), + ViewLayer *view_layer) { BLO_write_struct(writer, ViewLayer, view_layer); BLO_write_struct_list(writer, Base, &view_layer->object_bases); diff --git a/source/blender/blenkernel/intern/layer_utils.c b/source/blender/blenkernel/intern/layer_utils.c index b5e0112a827..f6233f215ce 100644 --- a/source/blender/blenkernel/intern/layer_utils.c +++ b/source/blender/blenkernel/intern/layer_utils.c @@ -84,13 +84,14 @@ Object **BKE_view_layer_array_selected_objects_params( /** \name Objects in Mode Array * \{ */ -Base **BKE_view_layer_array_from_bases_in_mode_params(ViewLayer *view_layer, +Base **BKE_view_layer_array_from_bases_in_mode_params(const Scene *scene, + ViewLayer *view_layer, const View3D *v3d, uint *r_len, const struct ObjectsInModeParams *params) { if (params->no_dup_data) { - FOREACH_BASE_IN_MODE_BEGIN (view_layer, v3d, -1, params->object_mode, base_iter) { + FOREACH_BASE_IN_MODE_BEGIN (scene, view_layer, v3d, -1, params->object_mode, base_iter) { ID *id = base_iter->object->data; if (id) { id->tag |= LIB_TAG_DOIT; @@ -102,7 +103,7 @@ Base **BKE_view_layer_array_from_bases_in_mode_params(ViewLayer *view_layer, Base **base_array = NULL; BLI_array_declare(base_array); - FOREACH_BASE_IN_MODE_BEGIN (view_layer, v3d, -1, params->object_mode, base_iter) { + FOREACH_BASE_IN_MODE_BEGIN (scene, view_layer, v3d, -1, params->object_mode, base_iter) { if (params->filter_fn) { if (!params->filter_fn(base_iter->object, params->filter_userdata)) { continue; @@ -134,13 +135,14 @@ Base **BKE_view_layer_array_from_bases_in_mode_params(ViewLayer *view_layer, return base_array; } -Object **BKE_view_layer_array_from_objects_in_mode_params(ViewLayer *view_layer, +Object **BKE_view_layer_array_from_objects_in_mode_params(const Scene *scene, + ViewLayer *view_layer, const View3D *v3d, uint *r_len, const struct ObjectsInModeParams *params) { Base **base_array = BKE_view_layer_array_from_bases_in_mode_params( - view_layer, v3d, r_len, params); + scene, view_layer, v3d, r_len, params); if (base_array != NULL) { for (uint i = 0; i < *r_len; i++) { ((Object **)base_array)[i] = base_array[i]->object; @@ -149,22 +151,24 @@ Object **BKE_view_layer_array_from_objects_in_mode_params(ViewLayer *view_layer, return (Object **)base_array; } -struct Object **BKE_view_layer_array_from_objects_in_edit_mode(ViewLayer *view_layer, +struct Object **BKE_view_layer_array_from_objects_in_edit_mode(const Scene *scene, + ViewLayer *view_layer, const View3D *v3d, uint *r_len) { struct ObjectsInModeParams params = {0}; params.object_mode = OB_MODE_EDIT; - return BKE_view_layer_array_from_objects_in_mode_params(view_layer, v3d, r_len, ¶ms); + return BKE_view_layer_array_from_objects_in_mode_params(scene, view_layer, v3d, r_len, ¶ms); } -struct Base **BKE_view_layer_array_from_bases_in_edit_mode(ViewLayer *view_layer, +struct Base **BKE_view_layer_array_from_bases_in_edit_mode(const Scene *scene, + ViewLayer *view_layer, const View3D *v3d, uint *r_len) { struct ObjectsInModeParams params = {0}; params.object_mode = OB_MODE_EDIT; - return BKE_view_layer_array_from_bases_in_mode_params(view_layer, v3d, r_len, ¶ms); + return BKE_view_layer_array_from_bases_in_mode_params(scene, view_layer, v3d, r_len, ¶ms); } struct Object **BKE_view_layer_array_from_objects_in_edit_mode_unique_data(const Scene *scene, @@ -178,27 +182,28 @@ struct Object **BKE_view_layer_array_from_objects_in_edit_mode_unique_data(const return BKE_view_layer_array_from_objects_in_mode_params(scene, view_layer, v3d, r_len, ¶ms); } -struct Base **BKE_view_layer_array_from_bases_in_edit_mode_unique_data(ViewLayer *view_layer, +struct Base **BKE_view_layer_array_from_bases_in_edit_mode_unique_data(const Scene *scene, + ViewLayer *view_layer, const View3D *v3d, uint *r_len) { struct ObjectsInModeParams params = {0}; params.object_mode = OB_MODE_EDIT; params.no_dup_data = true; - return BKE_view_layer_array_from_bases_in_mode_params(view_layer, v3d, r_len, ¶ms); + return BKE_view_layer_array_from_bases_in_mode_params(scene, view_layer, v3d, r_len, ¶ms); } struct Object **BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs( - const Scene *UNUSED(scene), ViewLayer *view_layer, const View3D *v3d, uint *r_len) + const Scene *scene, ViewLayer *view_layer, const View3D *v3d, uint *r_len) { struct ObjectsInModeParams params = {0}; params.object_mode = OB_MODE_EDIT; params.no_dup_data = true; params.filter_fn = BKE_view_layer_filter_edit_mesh_has_uvs; - return BKE_view_layer_array_from_objects_in_mode_params(view_layer, v3d, r_len, ¶ms); + return BKE_view_layer_array_from_objects_in_mode_params(scene, view_layer, v3d, r_len, ¶ms); } -struct Object **BKE_view_layer_array_from_objects_in_mode_unique_data(const Scene *UNUSED(scene), +struct Object **BKE_view_layer_array_from_objects_in_mode_unique_data(const Scene *scene, ViewLayer *view_layer, const View3D *v3d, uint *r_len, @@ -207,7 +212,7 @@ struct Object **BKE_view_layer_array_from_objects_in_mode_unique_data(const Scen struct ObjectsInModeParams params = {0}; params.object_mode = mode; params.no_dup_data = true; - return BKE_view_layer_array_from_objects_in_mode_params(view_layer, v3d, r_len, ¶ms); + return BKE_view_layer_array_from_objects_in_mode_params(scene, view_layer, v3d, r_len, ¶ms); } /** \} */ @@ -244,7 +249,8 @@ bool BKE_view_layer_filter_edit_mesh_has_edges(const Object *ob, void *UNUSED(us return false; } -Object *BKE_view_layer_non_active_selected_object(struct ViewLayer *view_layer, +Object *BKE_view_layer_non_active_selected_object(const Scene *UNUSED(scene), + struct ViewLayer *view_layer, const struct View3D *v3d) { Object *ob_active = BKE_view_layer_active_object_get(view_layer); diff --git a/source/blender/blenkernel/intern/object.cc b/source/blender/blenkernel/intern/object.cc index 48c1d969805..d4cf9d421d3 100644 --- a/source/blender/blenkernel/intern/object.cc +++ b/source/blender/blenkernel/intern/object.cc @@ -2258,7 +2258,8 @@ Object *BKE_object_add_only_object(Main *bmain, int type, const char *name) return ob; } -static Object *object_add_common(Main *bmain, ViewLayer *view_layer, int type, const char *name) +static Object *object_add_common( + Main *bmain, const Scene *scene, ViewLayer *view_layer, int type, const char *name) { Object *ob = BKE_object_add_only_object(bmain, type, name); ob->data = BKE_object_obdata_add_from_type(bmain, type, name); @@ -2269,9 +2270,10 @@ static Object *object_add_common(Main *bmain, ViewLayer *view_layer, int type, c return ob; } -Object *BKE_object_add(Main *bmain, ViewLayer *view_layer, int type, const char *name) +Object *BKE_object_add( + Main *bmain, const Scene *scene, ViewLayer *view_layer, int type, const char *name) { - Object *ob = object_add_common(bmain, view_layer, type, name); + Object *ob = object_add_common(bmain, scene, view_layer, type, name); LayerCollection *layer_collection = BKE_layer_collection_get_active(view_layer); BKE_collection_viewlayer_object_add(bmain, view_layer, layer_collection->collection, ob); @@ -2289,7 +2291,7 @@ Object *BKE_object_add(Main *bmain, ViewLayer *view_layer, int type, const char Object *BKE_object_add_from( Main *bmain, Scene *scene, ViewLayer *view_layer, int type, const char *name, Object *ob_src) { - Object *ob = object_add_common(bmain, view_layer, type, name); + Object *ob = object_add_common(bmain, scene, view_layer, type, name); BKE_collection_object_add_from(bmain, scene, ob_src, ob); Base *base = BKE_view_layer_base_find(view_layer, ob); @@ -2298,8 +2300,13 @@ Object *BKE_object_add_from( return ob; } -Object *BKE_object_add_for_data( - Main *bmain, ViewLayer *view_layer, int type, const char *name, ID *data, bool do_id_user) +Object *BKE_object_add_for_data(Main *bmain, + const Scene *scene, + ViewLayer *view_layer, + int type, + const char *name, + ID *data, + bool do_id_user) { /* same as object_add_common, except we don't create new ob->data */ Object *ob = BKE_object_add_only_object(bmain, type, name); @@ -2530,7 +2537,10 @@ Object *BKE_object_pose_armature_get(Object *ob) return nullptr; } -Object *BKE_object_pose_armature_get_visible(Object *ob, ViewLayer *view_layer, View3D *v3d) +Object *BKE_object_pose_armature_get_visible(Object *ob, + const Scene *UNUSED(scene), + ViewLayer *view_layer, + View3D *v3d) { Object *ob_armature = BKE_object_pose_armature_get(ob); if (ob_armature) { @@ -2544,10 +2554,8 @@ Object *BKE_object_pose_armature_get_visible(Object *ob, ViewLayer *view_layer, return nullptr; } -Object **BKE_object_pose_array_get_ex(ViewLayer *view_layer, - View3D *v3d, - uint *r_objects_len, - bool unique) +Object **BKE_object_pose_array_get_ex( + const Scene *scene, ViewLayer *view_layer, View3D *v3d, uint *r_objects_len, bool unique) { Object *ob_active = BKE_view_layer_active_object_get(view_layer); Object *ob_pose = BKE_object_pose_armature_get(ob_active); @@ -2558,7 +2566,7 @@ Object **BKE_object_pose_array_get_ex(ViewLayer *view_layer, ob_params.no_dup_data = unique; objects = BKE_view_layer_array_from_objects_in_mode_params( - view_layer, v3d, r_objects_len, &ob_params); + scene, view_layer, v3d, r_objects_len, &ob_params); } else if (ob_pose != nullptr) { *r_objects_len = 1; @@ -2571,19 +2579,23 @@ Object **BKE_object_pose_array_get_ex(ViewLayer *view_layer, } return objects; } -Object **BKE_object_pose_array_get_unique(ViewLayer *view_layer, View3D *v3d, uint *r_objects_len) +Object **BKE_object_pose_array_get_unique(const Scene *scene, + ViewLayer *view_layer, + View3D *v3d, + uint *r_objects_len) { - return BKE_object_pose_array_get_ex(view_layer, v3d, r_objects_len, true); + return BKE_object_pose_array_get_ex(scene, view_layer, v3d, r_objects_len, true); } -Object **BKE_object_pose_array_get(ViewLayer *view_layer, View3D *v3d, uint *r_objects_len) +Object **BKE_object_pose_array_get(const Scene *scene, + ViewLayer *view_layer, + View3D *v3d, + uint *r_objects_len) { - return BKE_object_pose_array_get_ex(view_layer, v3d, r_objects_len, false); + return BKE_object_pose_array_get_ex(scene, view_layer, v3d, r_objects_len, false); } -Base **BKE_object_pose_base_array_get_ex(ViewLayer *view_layer, - View3D *v3d, - uint *r_bases_len, - bool unique) +Base **BKE_object_pose_base_array_get_ex( + const Scene *scene, ViewLayer *view_layer, View3D *v3d, uint *r_bases_len, bool unique) { Base *base_active = view_layer->basact; Object *ob_pose = base_active ? BKE_object_pose_armature_get(base_active->object) : nullptr; @@ -2605,7 +2617,7 @@ Base **BKE_object_pose_base_array_get_ex(ViewLayer *view_layer, ob_params.no_dup_data = unique; bases = BKE_view_layer_array_from_bases_in_mode_params( - view_layer, v3d, r_bases_len, &ob_params); + scene, view_layer, v3d, r_bases_len, &ob_params); } else if (base_pose != nullptr) { *r_bases_len = 1; @@ -2618,9 +2630,12 @@ Base **BKE_object_pose_base_array_get_ex(ViewLayer *view_layer, } return bases; } -Base **BKE_object_pose_base_array_get_unique(ViewLayer *view_layer, View3D *v3d, uint *r_bases_len) +Base **BKE_object_pose_base_array_get_unique(const Scene *scene, + ViewLayer *view_layer, + View3D *v3d, + uint *r_bases_len) { - return BKE_object_pose_base_array_get_ex(view_layer, v3d, r_bases_len, true); + return BKE_object_pose_base_array_get_ex(scene, view_layer, v3d, r_bases_len, true); } Base **BKE_object_pose_base_array_get(const Scene *scene, ViewLayer *view_layer, @@ -5139,7 +5154,8 @@ static void obrel_list_add(LinkNode **links, Object *ob) ob->id.tag |= LIB_TAG_DOIT; } -LinkNode *BKE_object_relational_superset(struct ViewLayer *view_layer, +LinkNode *BKE_object_relational_superset(const Scene *UNUSED(scene), + struct ViewLayer *view_layer, eObjectSet objectSet, eObRelationTypes includeFilter) { diff --git a/source/blender/blenkernel/intern/scene.cc b/source/blender/blenkernel/intern/scene.cc index 9bb9ad9073f..4f972915e67 100644 --- a/source/blender/blenkernel/intern/scene.cc +++ b/source/blender/blenkernel/intern/scene.cc @@ -1056,7 +1056,7 @@ static void scene_blend_write(BlendWriter *writer, ID *id, const void *id_addres BKE_curvemapping_curves_blend_write(writer, &sce->r.mblur_shutter_curve); LISTBASE_FOREACH (ViewLayer *, view_layer, &sce->view_layers) { - BKE_view_layer_blend_write(writer, view_layer); + BKE_view_layer_blend_write(writer, sce, view_layer); } if (sce->master_collection) { |