[Bf-blender-cvs] [279cfde] master: Fix T42394: Copy Rigid Body Tools would not work as expected if dest ob had no rigidbody yet.

Bastien Montagne noreply at git.blender.org
Wed Oct 29 13:14:19 CET 2014


Commit: 279cfdeef5f17767d7c662a493be1f236484bebe
Author: Bastien Montagne
Date:   Wed Oct 29 13:06:08 2014 +0100
Branches: master
https://developer.blender.org/rB279cfdeef5f17767d7c662a493be1f236484bebe

Fix T42394: Copy Rigid Body Tools would not work as expected if dest ob had no rigidbody yet.

Adding new object to RigidBodyWorld obgroup is not a good way to do that, since it only
takes effect (create rigid_body for new objects) when you change current frame.

Better to use rigidbody.object_add() operator here!

===================================================================

M	release/scripts/startup/bl_operators/rigidbody.py

===================================================================

diff --git a/release/scripts/startup/bl_operators/rigidbody.py b/release/scripts/startup/bl_operators/rigidbody.py
index 9a3aae5..237c2d5 100644
--- a/release/scripts/startup/bl_operators/rigidbody.py
+++ b/release/scripts/startup/bl_operators/rigidbody.py
@@ -64,17 +64,19 @@ class CopyRigidbodySettings(Operator):
         for o in context.selected_objects:
             if o.type != 'MESH':
                 o.select = False
+            elif o.rigid_body is None:
+                # Add rigidbody to object!
+                scene.objects.active = o
+                bpy.ops.rigidbody.object_add()
+        scene.objects.active = obj_act
 
         objects = context.selected_objects
         if objects:
-            # add selected objects to active one groups and recalculate
-            bpy.ops.group.objects_add_active()
-            scene.frame_set(scene.frame_current)
             rb_from = obj_act.rigid_body
             # copy settings
             for o in objects:
                 rb_to = o.rigid_body
-                if (o == obj_act) or (rb_to is None):
+                if o == obj_act:
                     continue
                 for attr in self._attrs:
                     setattr(rb_to, attr, getattr(rb_from, attr))




More information about the Bf-blender-cvs mailing list