Commit: c9172b65db6b7af5d4c71e30cbb10ed85648db4a
Author: Dalai Felinto
Date:   Sun May 27 19:23:20 2018 +0200
Branches: temp-dynamic-overrides
https://developer.blender.org/rBc9172b65db6b7af5d4c71e30cbb10ed85648db4a

Util function to find view layer by dynamic property

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

M       source/blender/blenkernel/BKE_layer.h
M       source/blender/blenkernel/intern/layer.c

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

diff --git a/source/blender/blenkernel/BKE_layer.h 
b/source/blender/blenkernel/BKE_layer.h
index e73f8a5d810..c09dbe7dc08 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -75,6 +75,7 @@ void BKE_view_layer_selected_objects_tag(struct ViewLayer 
*view_layer, const int
 
 struct Object *BKE_view_layer_camera_find(struct ViewLayer *view_layer);
 struct ViewLayer *BKE_view_layer_find_from_override_set(const struct Scene 
*scene, struct OverrideSet *override_set);
+struct ViewLayer *BKE_view_layer_find_from_dynamic_override_property(const 
struct Scene *scene, struct DynamicOverrideProperty *dyn_prop);
 struct ViewLayer *BKE_view_layer_find_from_collection(const struct Scene 
*scene, struct LayerCollection *lc);
 struct Base *BKE_view_layer_base_find(struct ViewLayer *view_layer, struct 
Object *ob);
 void BKE_view_layer_base_deselect_all(struct ViewLayer *view_layer);
diff --git a/source/blender/blenkernel/intern/layer.c 
b/source/blender/blenkernel/intern/layer.c
index c1978b5ec43..a6f1a3bbb6a 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -317,6 +317,27 @@ ViewLayer *BKE_view_layer_find_from_override_set(const 
Scene *scene, OverrideSet
        return NULL;
 }
 
+/**
+ * Return the view layer that owns the dynamic override property
+ */
+ViewLayer *BKE_view_layer_find_from_dynamic_override_property(const Scene 
*scene, DynamicOverrideProperty *dyn_prop)
+{
+       for (ViewLayer *view_layer = scene->view_layers.first; view_layer; 
view_layer = view_layer->next) {
+               for (OverrideSet *override_set = 
view_layer->override_sets.first;
+                    override_set != NULL;
+                    override_set = override_set->next)
+               {
+                       if (BLI_findindex(&override_set->scene_properties, 
dyn_prop) != -1) {
+                               return view_layer;
+                       }
+                       else if 
(BLI_findindex(&override_set->collection_properties, dyn_prop) != -1) {
+                               return view_layer;
+                       }
+               }
+       }
+       return NULL;
+}
+
 /* Base */
 
 static void view_layer_bases_hash_create(ViewLayer *view_layer)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to