From b6405b970cd892b137b52dbd4b3d75c94c766b03 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Sat, 27 Sep 2008 00:36:18 +0000 Subject: 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) --- source/blender/src/buttons_logic.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'source/blender/src/buttons_logic.c') 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->boundtypeboundtype=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"); -- cgit v1.2.3