diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2015-10-08 15:59:24 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2015-10-08 16:05:37 +0300 |
commit | 4f0f0d1bcede8f307c4601a7e94b36c179d4d5a8 (patch) | |
tree | 39447a7ae8e66fee83e63078d08aa69e542baa3b /source/blender/blenkernel/intern/rigidbody.c | |
parent | 74f557982df88c0318c8809e22ffce83696be58c (diff) |
Add rigidbodyworld to id looper.
Diffstat (limited to 'source/blender/blenkernel/intern/rigidbody.c')
-rw-r--r-- | source/blender/blenkernel/intern/rigidbody.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c index 476b9a22238..43634c5045c 100644 --- a/source/blender/blenkernel/intern/rigidbody.c +++ b/source/blender/blenkernel/intern/rigidbody.c @@ -58,6 +58,7 @@ #include "BKE_effect.h" #include "BKE_global.h" #include "BKE_library.h" +#include "BKE_library_query.h" #include "BKE_mesh.h" #include "BKE_object.h" #include "BKE_pointcache.h" @@ -957,6 +958,20 @@ void BKE_rigidbody_world_groups_relink(RigidBodyWorld *rbw) rbw->effector_weights->group = (Group *)rbw->effector_weights->group->id.newid; } +void BKE_rigidbody_world_id_loop(RigidBodyWorld *rbw, RigidbodyWorldIDFunc func, void *userdata) +{ + func(rbw, (ID **)&rbw->group, userdata, IDWALK_NOP); + func(rbw, (ID **)&rbw->constraints, userdata, IDWALK_NOP); + func(rbw, (ID **)&rbw->effector_weights->group, userdata, IDWALK_NOP); + + if (rbw->objects) { + int i; + for (i = 0; i < rbw->numbodies; i++) { + func(rbw, (ID **)&rbw->objects[i], userdata, IDWALK_NOP); + } + } +} + /* Add rigid body settings to the specified object */ RigidBodyOb *BKE_rigidbody_create_object(Scene *scene, Object *ob, short type) { |