 
       objects.invoke "trigger", "overlay", canvas
 
+  self.include(Bounded)
+
+  # The order of theses includes is important for
+  # the way in wich they modify the camera view transform
   self.include(Camera.ZSort)
   self.include(Camera.Zoom)
   self.include(Camera.Rotate)

Camera = (I={}) ->
  Object.reverseMerge I,
    cameraBounds: Rectangle
      x: 0
      y: 0
      width: App.width
      height: App.height
    screen: Rectangle
      x: 0
      y: 0
      width: App.width
      height: App.height
    deadzone: Point(0, 0)
    zoom: 1
    transform: Matrix()
    scroll: Point(0, 0)

  currentType = "centered"
  currentObject = null


  return self


Object.extend(Camera, oldCamera)
