From b3400d012a33fa774a20893993b3e7ed9b9f1f97 Mon Sep 17 00:00:00 2001 From: Monique Date: Fri, 9 Sep 2022 16:10:52 +0200 Subject: Add scene parameter --- source/blender/blenkernel/intern/scene.cc | 2 +- source/blender/editors/armature/pose_edit.c | 2 +- source/blender/editors/armature/pose_transform.c | 2 +- source/blender/editors/include/ED_keyframing.h | 1 + source/blender/editors/space_view3d/view3d_snap.c | 4 ++-- source/blender/io/collada/BlenderContext.cpp | 14 ++++++++++---- source/blender/makesrna/intern/rna_layer.c | 12 ++++++++++-- 7 files changed, 26 insertions(+), 11 deletions(-) diff --git a/source/blender/blenkernel/intern/scene.cc b/source/blender/blenkernel/intern/scene.cc index 4f972915e67..96be505d214 100644 --- a/source/blender/blenkernel/intern/scene.cc +++ b/source/blender/blenkernel/intern/scene.cc @@ -2880,7 +2880,7 @@ bool BKE_scene_uses_cycles_experimental_features(Scene *scene) return RNA_enum_get(&cycles_ptr, "feature_set") == CYCLES_FEATURES_EXPERIMENTAL; } -void BKE_scene_base_flag_to_objects(ViewLayer *view_layer) +void BKE_scene_base_flag_to_objects(const Scene *UNUSED(scene), ViewLayer *view_layer) { Base *base = static_cast(view_layer->object_bases.first); diff --git a/source/blender/editors/armature/pose_edit.c b/source/blender/editors/armature/pose_edit.c index 821a12815b8..6a64c70493a 100644 --- a/source/blender/editors/armature/pose_edit.c +++ b/source/blender/editors/armature/pose_edit.c @@ -1134,7 +1134,7 @@ static int pose_flip_quats_exec(bContext *C, wmOperator *UNUSED(op)) /* quaternions have 720 degree range */ negate_v4(pchan->quat); - ED_autokeyframe_pchan(C, ob_iter, pchan, ks); + ED_autokeyframe_pchan(C, scene, ob_iter, pchan, ks); } } FOREACH_PCHAN_SELECTED_IN_OBJECT_END; diff --git a/source/blender/editors/armature/pose_transform.c b/source/blender/editors/armature/pose_transform.c index 94f043d6dc4..4211dd78b88 100644 --- a/source/blender/editors/armature/pose_transform.c +++ b/source/blender/editors/armature/pose_transform.c @@ -884,7 +884,7 @@ static int pose_paste_exec(bContext *C, wmOperator *op) bPoseChannel *pchan = pose_bone_do_paste(ob, chan, selOnly, flip); if (pchan != NULL) { /* Keyframing tagging for successful paste, */ - ED_autokeyframe_pchan(C, ob, pchan, ks); + ED_autokeyframe_pchan(C, scene, ob, pchan, ks); } } } diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h index 4109c604d1c..a53042b70d6 100644 --- a/source/blender/editors/include/ED_keyframing.h +++ b/source/blender/editors/include/ED_keyframing.h @@ -654,6 +654,7 @@ bool ED_autokeyframe_object(struct bContext *C, struct Object *ob, struct KeyingSet *ks); bool ED_autokeyframe_pchan(struct bContext *C, + struct Scene *scene, struct Object *ob, struct bPoseChannel *pchan, struct KeyingSet *ks); diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c index 1cdbf54ed0c..a5ecef69ff8 100644 --- a/source/blender/editors/space_view3d/view3d_snap.c +++ b/source/blender/editors/space_view3d/view3d_snap.c @@ -152,7 +152,7 @@ static int snap_sel_to_grid_exec(bContext *C, wmOperator *UNUSED(op)) } /* auto-keyframing */ - ED_autokeyframe_pchan(C, ob, pchan, ks); + ED_autokeyframe_pchan(C, scene, ob, pchan, ks); } /* if the bone has a parent and is connected to the parent, * don't do anything - will break chain unless we do auto-ik. @@ -432,7 +432,7 @@ static bool snap_selected_to_location(bContext *C, } /* auto-keyframing */ - ED_autokeyframe_pchan(C, ob, pchan, ks); + ED_autokeyframe_pchan(C, scene, ob, pchan, ks); } else { copy_v3_v3(pchan->loc, cursor_pose); diff --git a/source/blender/io/collada/BlenderContext.cpp b/source/blender/io/collada/BlenderContext.cpp index ed8e4c09826..e76eea24dca 100644 --- a/source/blender/io/collada/BlenderContext.cpp +++ b/source/blender/io/collada/BlenderContext.cpp @@ -32,7 +32,10 @@ Object *bc_get_highest_exported_ancestor_or_self(LinkNode *export_set, return ancestor; } -void bc_get_children(std::vector &child_set, Object *ob, ViewLayer *view_layer) +void bc_get_children(std::vector &child_set, + Object *ob, + const Scene *scene, + ViewLayer *view_layer) { Base *base; for (base = (Base *)view_layer->object_bases.first; base; base = base->next) { @@ -52,7 +55,10 @@ void bc_get_children(std::vector &child_set, Object *ob, ViewLayer *vi } } -bool bc_is_in_Export_set(LinkNode *export_set, Object *ob, ViewLayer *view_layer) +bool bc_is_in_Export_set(LinkNode *export_set, + Object *ob, + const Scene *scene, + ViewLayer *view_layer) { bool to_export = (BLI_linklist_index(export_set, ob) != -1); @@ -61,9 +67,9 @@ bool bc_is_in_Export_set(LinkNode *export_set, Object *ob, ViewLayer *view_layer * export list, but it contains children to export. */ std::vector children; - bc_get_children(children, ob, view_layer); + bc_get_children(children, ob, scene, view_layer); for (Object *child : children) { - if (bc_is_in_Export_set(export_set, child, view_layer)) { + if (bc_is_in_Export_set(export_set, child, scene, view_layer)) { to_export = true; break; } diff --git a/source/blender/makesrna/intern/rna_layer.c b/source/blender/makesrna/intern/rna_layer.c index c39b0866293..3a76b9e05c2 100644 --- a/source/blender/makesrna/intern/rna_layer.c +++ b/source/blender/makesrna/intern/rna_layer.c @@ -348,10 +348,17 @@ static bool rna_LayerCollection_has_objects(LayerCollection *lc) } static bool rna_LayerCollection_has_selected_objects(LayerCollection *lc, - const Scene *scene, + Main *bmain, ViewLayer *view_layer) { - return BKE_layer_collection_has_selected_objects(scene, view_layer, lc); + LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) { + LISTBASE_FOREACH (ViewLayer *, scene_view_layer, &scene->view_layers) { + if (scene_view_layer == view_layer) { + return BKE_layer_collection_has_selected_objects(scene, view_layer, lc); + } + } + } + return false; } #else @@ -444,6 +451,7 @@ static void rna_def_layer_collection(BlenderRNA *brna) func = RNA_def_function( srna, "has_selected_objects", "rna_LayerCollection_has_selected_objects"); + RNA_def_function_flag(func, FUNC_USE_MAIN); RNA_def_function_ui_description(func, ""); prop = RNA_def_pointer( func, "view_layer", "ViewLayer", "", "View layer the layer collection belongs to"); -- cgit v1.2.3