module Classes.Physics.Collidible where import Linear -- internal imports import Classes.Physics.Mass -- | Typeclass for implementing collision results on objects. class Mass c => Collidible c where -- | returns the top left and bottom right corners relative to the objects -- positional vector of the axis alignes bounding box (AABB). boundary :: c -- Object -> ( V2 Double -- Top left corner of AABB relative to position , V2 Double -- Bottom right corner of AABB relative to position ) -- | This Function is called for every collision for both colliding objects. collide :: c -- ^ Original object -> c -- ^ Collision partner -> c -- ^ Updated original object