[Bf-blender-cvs] [b3400d012a3] temp-T73411-add-scene-parameters: Add scene parameter

Monique noreply at git.blender.org
Fri Sep 9 16:11:07 CEST 2022


Commit: b3400d012a33fa774a20893993b3e7ed9b9f1f97
Author: Monique
Date:   Fri Sep 9 16:10:52 2022 +0200
Branches: temp-T73411-add-scene-parameters
https://developer.blender.org/rBb3400d012a33fa774a20893993b3e7ed9b9f1f97

Add scene parameter

===================================================================

M	source/blender/blenkernel/intern/scene.cc
M	source/blender/editors/armature/pose_edit.c
M	source/blender/editors/armature/pose_transform.c
M	source/blender/editors/include/ED_keyframing.h
M	source/blender/editors/space_view3d/view3d_snap.c
M	source/blender/io/collada/BlenderContext.cpp
M	source/blender/makesrna/intern/rna_layer.c

===================================================================

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<Base *>(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<Object *> &child_set, Object *ob, ViewLayer *view_layer)
+void bc_get_children(std::vector<Object *> &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<Object *> &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<Object *> 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");



More information about the Bf-blender-cvs mailing list