 
   moveActivePlane : (p) ->
     cam2d.moveActivePlane p
-    @updateRoutePosition p
+    @updateRoute()
 
   #FIXME: why can't I call move() from within this function?
   moveX : (x) -> 
     cam2d.moveActivePlane [x, 0, 0]
-    View.updateRoutePosition [x, 0, 0]
+    View.updateRoute()
 
   moveY : (y) ->
     cam2d.moveActivePlane [0, y, 0]
-    View.updateRoutePosition [0, y, 0]
+    View.updateRoute()
   
   moveZ : (z) ->
     cam2d.moveActivePlane [0, 0, z]
-    View.updateRoutePosition [0, 0, z]
+    View.updateRoute()
 
   prevViewportSize : =>
     (View.camera[VIEW_3D].right - View.camera[VIEW_3D].left)         # always quadratic

    @route = route
    @routeView = routeView
    @particleSystem = particleSystem
    @routeView.position = new THREE.Vector3(-400, 340, 501)

    particle = new THREE.Mesh(new THREE.CubeGeometry(300, 300, 300, 10, 10, 10), new THREE.MeshBasicMaterial({color: 0xff0000}))
    particle.position.x = 0


  zoomIn : ->
    cam2d.zoomIn(cam2d.getActivePlane())
    View.updateRoute()

  #todo: validation in Model
  zoomOut : ->
    cam2d.zoomOut(cam2d.getActivePlane())
    View.updateRoute()

  setActivePlaneXY : ->
    View.setActivePlane PLANE_XY
