diff options
-rw-r--r-- | source/blender/blenkernel/BKE_object.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 618ca1a0dad..527d88917c9 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -301,6 +301,8 @@ bool BKE_object_is_animated(struct Scene *scene, struct Object *ob); int BKE_object_is_modified(struct Scene *scene, struct Object *ob); int BKE_object_is_deform_modified(struct Scene *scene, struct Object *ob); +int BKE_object_scenes_users_get(struct Main *bmain, struct Object *ob); + struct MovieClip *BKE_object_movieclip_get(struct Scene *scene, struct Object *ob, bool use_default); void BKE_object_runtime_reset(struct Object *object); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 64345a72740..c1af6037e05 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -3514,6 +3514,18 @@ bool BKE_object_is_animated(Scene *scene, Object *ob) return false; } +/** Return the number of scenes using (instantiating) that object in their collections. */ +int BKE_object_scenes_users_get(Main *bmain, Object *ob) +{ + int num_scenes = 0; + for (Scene *scene = bmain->scene.first; scene != NULL; scene = scene->id.next) { + if (BKE_collection_has_object_recursive(BKE_collection_master(scene), ob)) { + num_scenes++; + } + } + return num_scenes; +} + MovieClip *BKE_object_movieclip_get(Scene *scene, Object *ob, bool use_default) { MovieClip *clip = use_default ? scene->clip : NULL; |