     @addGeometry VIEW_3D, particleSystem
     @addGeometry PLANE_XY, routeView
 
-  updateRoutePosition : (p) ->
-    @routeView.position = new THREE.Vector3(@routeView.position.x - p[0], @routeView.position.y + p[1], cam2d.getGlobalPos()[2]+1)
+  updateRoute : ->
+    gPos                = cam2d.getGlobalPos()
+    scale               = cam2d.getPlaneScalingFactor PLANE_XY
+    console.log "scale (alt): " + @routeView.scale
+    console.log "scale: " + scale
+    @routeView.scale    = new THREE.Vector3(1/scale, 1/scale, 1/scale)
+    @routeView.position = new THREE.Vector3(-gPos[0]/scale, gPos[1]/scale, gPos[2]/scale+1)
+    #@routeView.position = new THREE.Vector3(@routeView.position.x - p[0], @routeView.position.y + p[1], cam2d.getGlobalPos()[2]+1)
     @routeView.geometry.verticesNeedUpdate = true

    @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
