       # TODO: Easing
       I.scroll = object.center()
 
+    objectFilterChain: (fn) ->
+      objectFilters.push fn
+
+    transformFilterChain: (fn) ->
+      transformFilters.push fn
+
   self.attrAccessor "transform" 
 
   self.include(Bindable)


      self.trigger 'flash', canvas

  self.include(Camera.Rotate)
  self.include(Camera.Zoom)
  self.include(Camera.Shake)

    cameraRotation: 0
    transform: Matrix()
    scroll: Point(0, 0)

  currentType = "centered"
  currentObject = null

  objectFilters = []

  filterObjects = (objects) ->
    for filter in objectFilters
      objects = filter(objects)

    return objects

  transformFilters = []

  filterTransform = (transform) ->
    for filter in transformFilters
      transform = filter(transform)

    return transform

  transformCamera = (object) ->
    objectCenter = object.center()
