Make 'randomizeConstraints' optional, switched on by default (to keep existing behaviour)

Thanks Benoit for the report: http://code.google.com/p/bullet/issues/detail?id=315
This commit is contained in:
erwin.coumans
2009-12-13 20:37:09 +00:00
parent 6536d8cc31
commit d7a07e9745
2 changed files with 16 additions and 6 deletions

View File

@@ -813,7 +813,7 @@ btSoftBody* btSoftBodyHelpers::CreateEllipsoid(btSoftBodyWorldInfo& worldInfo,c
// //
btSoftBody* btSoftBodyHelpers::CreateFromTriMesh(btSoftBodyWorldInfo& worldInfo,const btScalar* vertices, btSoftBody* btSoftBodyHelpers::CreateFromTriMesh(btSoftBodyWorldInfo& worldInfo,const btScalar* vertices,
const int* triangles, const int* triangles,
int ntriangles) int ntriangles, bool randomizeConstraints)
{ {
int maxidx=0; int maxidx=0;
int i,j,ni; int i,j,ni;
@@ -848,13 +848,18 @@ btSoftBody* btSoftBodyHelpers::CreateFromTriMesh(btSoftBodyWorldInfo& worldInfo
#undef IDX #undef IDX
psb->appendFace(idx[0],idx[1],idx[2]); psb->appendFace(idx[0],idx[1],idx[2]);
} }
if (randomizeConstraints)
{
psb->randomizeConstraints(); psb->randomizeConstraints();
}
return(psb); return(psb);
} }
// //
btSoftBody* btSoftBodyHelpers::CreateFromConvexHull(btSoftBodyWorldInfo& worldInfo, const btVector3* vertices, btSoftBody* btSoftBodyHelpers::CreateFromConvexHull(btSoftBodyWorldInfo& worldInfo, const btVector3* vertices,
int nvertices) int nvertices, bool randomizeConstraints)
{ {
HullDesc hdsc(QF_TRIANGLES,nvertices,vertices); HullDesc hdsc(QF_TRIANGLES,nvertices,vertices);
HullResult hres; HullResult hres;
@@ -874,7 +879,10 @@ btSoftBody* btSoftBodyHelpers::CreateFromConvexHull(btSoftBodyWorldInfo& worldI
psb->appendFace(idx[0],idx[1],idx[2]); psb->appendFace(idx[0],idx[1],idx[2]);
} }
hlib.ReleaseResult(hres); hlib.ReleaseResult(hres);
if (randomizeConstraints)
{
psb->randomizeConstraints(); psb->randomizeConstraints();
}
return(psb); return(psb);
} }

View File

@@ -109,11 +109,13 @@ struct btSoftBodyHelpers
static btSoftBody* CreateFromTriMesh( btSoftBodyWorldInfo& worldInfo, static btSoftBody* CreateFromTriMesh( btSoftBodyWorldInfo& worldInfo,
const btScalar* vertices, const btScalar* vertices,
const int* triangles, const int* triangles,
int ntriangles); int ntriangles,
bool randomizeConstraints = true);
/* Create from convex-hull */ /* Create from convex-hull */
static btSoftBody* CreateFromConvexHull( btSoftBodyWorldInfo& worldInfo, static btSoftBody* CreateFromConvexHull( btSoftBodyWorldInfo& worldInfo,
const btVector3* vertices, const btVector3* vertices,
int nvertices); int nvertices,
bool randomizeConstraints = true);
/* Export TetGen compatible .smesh file */ /* Export TetGen compatible .smesh file */