package sim.physics2D.collisionDetection; import sim.physics2D.physicalObject.PhysicalObject2D; import sim.util.Bag; /** The CollisionDetectionEngine coordinates and abstracts the collision * detection logic. */ public class CollisionDetectionEngine { private BroadPhaseCollision2D objBPCollision; private Collision2D objCollision; public CollisionDetectionEngine() { objCollision = new Collision2D(); objBPCollision = new BroadPhaseCollision2D(); } /** Returns a list of the pairs of objects currently colliding. */ public Bag getCollisions() { objBPCollision.testCollisions(); return objCollision.testCollisions(objBPCollision.getActiveList()); } /** Registers an object with the collision detection engine. */ public void register(PhysicalObject2D objCol) { objBPCollision.register(objCol); } }