[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16759] trunk/blender: force collision bound type to be convex hull or concave triangle mesh for soft bodies

Erwin Coumans blender at erwincoumans.com
Sat Sep 27 02:36:18 CEST 2008


Revision: 16759
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16759
Author:   erwin
Date:     2008-09-27 02:36:18 +0200 (Sat, 27 Sep 2008)

Log Message:
-----------
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)

Modified Paths:
--------------
    trunk/blender/extern/bullet2/src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp
    trunk/blender/source/blender/src/buttons_logic.c

Modified: trunk/blender/extern/bullet2/src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp
===================================================================
--- trunk/blender/extern/bullet2/src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp	2008-09-26 23:20:31 UTC (rev 16758)
+++ trunk/blender/extern/bullet2/src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp	2008-09-27 00:36:18 UTC (rev 16759)
@@ -32,7 +32,7 @@
 #include "BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h"
 #include "BulletSoftBody/btSoftBody.h"
 
-#define BT_SOFTBODY_TRIANGLE_EXTRUSION btScalar(0.06)//make this configurable
+#define BT_SOFTBODY_TRIANGLE_EXTRUSION btScalar(0.3)//make this configurable
 
 btSoftBodyConcaveCollisionAlgorithm::btSoftBodyConcaveCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1,bool isSwapped)
 : btCollisionAlgorithm(ci),
@@ -142,9 +142,9 @@
 		normal*= BT_SOFTBODY_TRIANGLE_EXTRUSION;
 //		other=(triangle[0]+triangle[1]+triangle[2])*0.333333f;
 //		other+=normal*22.f;
-		btVector3	pts[6] = {triangle[0]+normal,
-			triangle[1]+normal,
-		triangle[2]+normal,
+		btVector3	pts[6] = {triangle[0],
+			triangle[1],
+		triangle[2],
 		triangle[0]-normal,
 		triangle[1]-normal,
 		triangle[2]-normal};

Modified: trunk/blender/source/blender/src/buttons_logic.c
===================================================================
--- trunk/blender/source/blender/src/buttons_logic.c	2008-09-26 23:20:31 UTC (rev 16758)
+++ trunk/blender/source/blender/src/buttons_logic.c	2008-09-27 00:36:18 UTC (rev 16759)
@@ -2974,6 +2974,9 @@
 	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 @@
 				&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");





More information about the Bf-blender-cvs mailing list