20 lines
674 B
Haskell
20 lines
674 B
Haskell
|
module Classes.Physics.Collidible where
|
||
|
|
||
|
import Linear
|
||
|
|
||
|
-- | 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
|