Commit Graph

22 Commits

Author SHA1 Message Date
4c89a658be Fix T38157: Rigid body, crazy f-curves after bake to keyframes
A logic error meant that the wrong "previous rotation" values were being used
when decomposing the rigidbody results back to transform channels. Instead of
using the previous values for the object in question, it was actually using
the rotation value of the previous object that was evaluated.
2014-01-18 01:38:40 +13:00
53917c4e3a rna attribute consistency edits, use common prefix for booleans. 2013-04-23 07:06:29 +00:00
a76ad2cdad code cleanup: simplify python rigidbody operators. 2013-04-20 13:22:08 +00:00
8e3d590b76 code cleanup: python/pep8 and double-promotion warnings. 2013-03-28 19:33:14 +00:00
b2dcaf1b40 Some UI messages fixes... 2013-02-24 18:04:10 +00:00
93c3593d82 rigidbody: Don't abort connect operator if last selected object is active
Was silly logic error.
2013-02-23 23:40:51 +00:00
09b124fbd3 rigidbody: Add option to create chanis for the connect operator
Connects objects based on distance.

Based on a patch by Brandon Hechinger (jaggz), thanks!
2013-02-21 19:04:39 +00:00
9c08d1c649 rigidbody: code cleanup
Use bpy.data.objects.new() instead of the object.add() operator.
2013-02-21 19:04:36 +00:00
6869ea8e7e code cleanup: no need to use list(range()), just use range() 2013-02-21 17:12:08 +00:00
85b6bbe6cd ribidbody: Fix setting "Bake to Keyframes" start frame above 2
Simulation needs to run from the beginning to work properly.
2013-02-17 18:13:22 +00:00
5d4df1a999 pep8 cleanup 2013-02-10 08:54:10 +00:00
b64858cade rigidbody: Use ARROWS empty draw type when creating constraints
Since we don't have constraint visualization yet, it's useful to see
where the individual axes point.
2013-02-05 21:51:20 +00:00
1c2d5eeeef fix for rigid body assuming active object would be selected, also don't check length of selected objects in poll function (getting and throwing away object selection array on every redraw is no good). 2013-01-28 12:24:25 +00:00
8445a56b48 use more conventional names in rigid body script. 2013-01-28 12:15:50 +00:00
753890d0e8 rigidbody: Don't show dialog for "Connect" operator
Use redo last panel to change settings now.
This is more in line with how the rest of blender operates.

Also fix tootip
2013-01-28 11:56:01 +00:00
67c2cd916d Made the tooltip for rigid body constraint "Connect" operator clearer
Previously it wasn't clear what it was supposed to be doing, or what was
required for it to work.
TODO: figure out why the operator redo settings panel won't work. The workflow
here is still a bit clunky.
2013-01-28 02:48:19 +00:00
a2e55171fe Bunch of fixes for UI messages.
Also generate rigid body constraint types in py bullet code from RNA enum values (simpler than having to sync the code when something is changed here!).

Side note: RNA API about icons still needs to expose icons for enum values, and conversion funcs between icon_name and icon_value!
2013-01-27 18:14:24 +00:00
204ec89bff rigidbody: Improve add/remove operators
Now all add/remove operators for rigid body objects and constraints
automatically add objects to the appropriate groups and create groups if they
don't exist yet.

This makes handling rigid bodies easier but doesn't take away functionality.
If users want to handle groups manually they just need to create them before
adding any objects.

The previous behaviour was confusing and was even considered to be a bug since
clicking on rigid body in the physics tab seemed to do nothing.
2013-01-25 06:26:38 +00:00
fd35d42bf4 code cleanup: dont use 'bpy.context' when 'context' is available 2013-01-23 07:52:31 +00:00
c48238fac6 rigidbody: Add generic spring constraint
Behaves like the generic constraint but has optional spring on each axis.

TODO: Add option to set rest length.

Patch by Markus Kasten (markus111), thanks!
2013-01-23 05:57:01 +00:00
47c96081d0 rigidbody: Add rigid body constraints
Constraints connect two rigid bodies.
Depending on which constraint is used different degrees of freedom
are limited, e.g. a hinge constraint only allows the objects to rotate
around a common axis.

Constraints are implemented as individual objects and bahave similar to
rigid bodies in terms of adding/removing/validating.

The position and orientation of the constraint object is the pivot point
of the constraint.

Constraints have their own group in the rigid body world.

To make connecting rigid bodies easier, there is a "Connect" operator that
creates an empty objects with a rigid body constraint connecting the selected
objects to active.

Currently the following constraints are implemented:
* Fixed
* Point
* Hinge
* Slider
* Piston
* Generic

Note: constraint limits aren't animatable yet).
2013-01-23 05:56:56 +00:00
cdc8ed24bf rigidbody: Add "Copy Rigid Body Settings" and "Bake To Keyframes" operators
Based on a script by liero, thanks!
2013-01-23 05:56:49 +00:00