using System.Collections.Generic; namespace Chernobyl.Mathematics.Collision { /// /// An and /// that can check for collisions with many different objects. This collision /// group builds a collision graph for optimized collision detection. Each /// held within this group must be derive from /// . /// /// The type of /// being held /// within this . /// This ICollidable type must derive from . /// The type that will /// be passed in to check for collisions against the /// instances contained within /// this . public interface ICollidableEnumerable : IEnumerable, IExtendedCollidable where TContainedCollidable : IExtendedCollidable { /// /// Returns an that can be iterated /// over to collect the objects that are colliding with the passed in /// . Note this method should never /// pre-compute the collisions. It should return an /// that returns an /// that checks for collisions as it /// iterates. /// /// The to check /// against for collisions. /// The that can be iterated over /// to get the s that are being collided /// against. IEnumerable GetCollidables(TCollider collidable); } }