diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2008-09-27 04:36:18 +0400 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2008-09-27 04:36:18 +0400 |
commit | b6405b970cd892b137b52dbd4b3d75c94c766b03 (patch) | |
tree | 7f8e28da96b7aef2da1ee778dbe39104dd4cf6fc /source/blender | |
parent | 1e0cfcfd3af917a12402f955e6c80ea1b4999321 (diff) |
force collision bound type to be convex hull or concave triangle mesh for soft bodies
set collision margin between soft and mesh back to .3, smaller is not useable (yet)
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/src/buttons_logic.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index e36e51d9686..388989fdbfb 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -2974,6 +2974,9 @@ static void check_body_type(void *arg1_but, void *arg2_object) case OB_BODY_TYPE_SOFT: ob->gameflag |= OB_COLLISION|OB_DYNAMIC|OB_SOFT_BODY|OB_ACTOR; ob->gameflag &= ~(OB_RIGID_BODY); + ob->gameflag |= OB_BOUNDS; + if (ob->boundtype<OB_BOUND_POLYH) + ob->boundtype=OB_BOUND_POLYH; break; } } @@ -3112,9 +3115,16 @@ void buttons_bullet(uiBlock *block, Object *ob) &ob->gameflag, 0, 0, 0, 0, "Specify a collision bounds type"); if (ob->gameflag & OB_BOUNDS) { - uiDefButS(block, MENU, REDRAWVIEW3D, "Collision Bounds%t|Box%x0|Sphere%x1|Cylinder%x2|Cone%x3|Convex Hull%x5|Triangle Mesh%x4", - //almost ready to enable this one: uiDefButS(block, MENU, REDRAWVIEW3D, "Boundary Display%t|Box%x0|Sphere%x1|Cylinder%x2|Cone%x3|Convex Hull Polytope%x5|Static TriangleMesh %x4|Dynamic Mesh %x5|", - 90, 105, 150, 19, &ob->boundtype, 0, 0, 0, 0, "Selects the collision type"); + //only allow convex hull/triangle mesh for soft bodies + if (ob->body_type==OB_BODY_TYPE_SOFT) + { + uiDefButS(block, MENU, REDRAWVIEW3D, "Collision Bounds%t|Convex Hull%x5|Triangle Mesh%x4", + 90, 105, 150, 19, &ob->boundtype, 0, 0, 0, 0, "Selects the collision type"); + } else + { + uiDefButS(block, MENU, REDRAWVIEW3D, "Collision Bounds%t|Box%x0|Sphere%x1|Cylinder%x2|Cone%x3|Convex Hull%x5|Triangle Mesh%x4", + 90, 105, 150, 19, &ob->boundtype, 0, 0, 0, 0, "Selects the collision type"); + } uiDefButBitI(block, TOG, OB_CHILD, B_REDR, "Compound", 240,105,110,19, &ob->gameflag, 0, 0, 0, 0, "Add Children"); |