[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