initialization Create a btDiscreteDynamicsWorld or btSoftRigidDynamicsWorld
- btDefaultCollisionConfiguration * and btCollisionDispatcher * 碰撞设置和碰撞调度器
btDefaultCollisionConfiguration * collisionConfiguration = new btDefaultCollisionConfiguration(); - btCollisionDispatcher * 碰撞调度器
btCollisionDispatcher * dispatcher = new btCollisionDispatcher(collisionConfiguration*)*; - btBroadphaseInterface * 宽相碰撞检测
btBroadphaseInterface * overlappingPairCache = new btDbvtBroadphase(); - btSequentialImpulseConstraintSolver * 求解器
btSequentialImpulseConstraintSolver * solver= new btSequentialImpulseConstraintSolver; - btDiscreteDynamicsWorld * 离散动态世界
- btDiscreteDynamicsWorld * dynamicsWorld = new btDiscreteDynamicsWorld
(dispatcher, overlappingPairCache, solver, collisionConfiguration); - dynamicWorld -> setGravity(btVector3(0, -10, 0));
- btDiscreteDynamicsWorld * dynamicsWorld = new btDiscreteDynamicsWorld
creation
- btCollisionShape * 造个盒子
btCollisionShape * groundShape = new btBoxShape
(btVecotr3(btScalar(50.), btScalar(50.), btScalar(50.)))
collisionShapes.push_back(groundShape) - 位置 姿态
- 质量
- 判断是否为运动体
- btDefaultMontionState*
- btRigidBody::btRigidBodyConstructionInfo
- btAlignedObjectArray<btCollisionShape*> collisionShapes;
- Create a btRigidBody and add it to the btDynamicsWorld
- Mass, positive for dynamics moving objects and 0 for static objects
- CollisionShape, like a Box, Sphere, Cone, Convex Hull or Triangle Mesh
- Material properties like friction and restitution
- btAlignedObjectArray<btCollisionShape*>
- collision shapes
- btCollisionShape*
- btTransform
- btDefaultMotionState*
- btRigidBody::btRigidBodyConstruction
- btRigidBody*
- btCollisionShape*
- btTransform
simulation
cleanup
- remove the rigidbodies from the dynamics world and delete them
- delete collision shapes
- delete dynamics world
- delete solver
- delete broadphase
- delete dispatcher
- delete collisionConfiguration
- collisionShapes.clear();