[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