/// <summary> /// Init the physics world. /// </summary> public PhysicsWorld() { // init components _config = new BulletSharp.DefaultCollisionConfiguration(); _dispatcher = new BulletSharp.CollisionDispatcher(_config); _broadphase = new BulletSharp.DbvtBroadphase(); _solver = new BulletSharp.SequentialImpulseConstraintSolver(); // create world instance _world = new BulletSharp.DiscreteDynamicsWorld( dispatcher: _dispatcher, pairCache: _broadphase, constraintSolver: _solver, collisionConfiguration: _config); // for better performance _world.ForceUpdateAllAabbs = false; // create debug renderer _debugDraw = new PhysicsDebugDraw(Graphics.GraphicsManager.GraphicsDevice); // set default gravity SetGravity(Vector3.Down * 9.8f); }
/// <summary> /// Destroy the physical world. /// </summary> public void Destroy() { _world = null; }