Relevant Code:
Code: Select all
btVector3 worldAabbMin(-1000,-1000,-1000);
btVector3 worldAabbMax(1000,1000,1000);
collisionConfiguration = new btDefaultCollisionConfiguration();
dispatcher = new btCollisionDispatcher(collisionConfiguration);
broadphase = new bt32BitAxisSweep3(worldAabbMin,worldAabbMax,num_Bodies);
collisionWorld = new btCollisionWorld(dispatcher,broadphase,collisionConfiguration);
btMatrix3x3 basisTemp;
basisTemp.setIdentity();
for(int i=0; i<num_Bodies; ++i){
btSphereShape *sphereTemp=new btSphereShape(r_data[i]);
objects[i].getWorldTransform().setBasis(basisTemp);
objects[i].setCollisionShape(sphereTemp);
objects[i].getWorldTransform().setOrigin(btVector3(x_data[i],y_data[i],z_data[i]));
collisionWorld->addCollisionObject(&objects[i]);
}
if (collisionWorld){
collisionWorld->performDiscreteCollisionDetection();}
If I debug, the debugger says that it encountered an error at btCollisionDispatcher::getNewManifold(void * b0=0x00971390, void * b1=0x00000000)
Am I doing something wrong? I know that bullet can handle more spheres than this. I would like to move up to a million spheres.
Is there a better way to set up the simulation?
Thanks in advance.