From e0b8dccd623a39fe0bcc351484483932fde9d310 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 17 Jun 2019 16:07:19 +0200 Subject: Fix T65674: Rigid bodies in duplicated collections are not automatically added to Rigid Body World. As title says, we need to add back new copies of objects that are RB items to the RBW collections... --- source/blender/blenkernel/intern/collection.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/blender/blenkernel/intern/collection.c') diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c index 88ec4f8793f..5b718909601 100644 --- a/source/blender/blenkernel/intern/collection.c +++ b/source/blender/blenkernel/intern/collection.c @@ -43,6 +43,7 @@ #include "DNA_collection_types.h" #include "DNA_layer_types.h" #include "DNA_object_types.h" +#include "DNA_rigidbody_types.h" #include "DNA_scene_types.h" #include "DEG_depsgraph.h" @@ -286,6 +287,16 @@ static Collection *collection_duplicate_recursive(Main *bmain, collection_object_add(bmain, collection_new, ob_new, 0, true); collection_object_remove(bmain, collection_new, ob_old, false); + + if (ob_new->rigidbody_object != NULL) { + BLI_assert(ob_old->rigidbody_object != NULL); + for (Scene *scene = bmain->scenes.first; scene != NULL; scene = scene->id.next) { + if (scene->rigidbody_world != NULL && + BKE_collection_has_object(scene->rigidbody_world->group, ob_old)) { + collection_object_add(bmain, scene->rigidbody_world->group, ob_new, 0, true); + } + } + } } } -- cgit v1.2.3