[Bf-blender-cvs] [c9172b65db6] temp-dynamic-overrides: Util function to find view layer by dynamic property

Dalai Felinto noreply at git.blender.org
Sun May 27 19:23:58 CEST 2018


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)



More information about the Bf-blender-cvs mailing list