 
   templateHelpers :
     position : ->
-      @vec3ToString(@flycam.position)
+      @vec3ToString(@flycam.getPosition())
 
     rotation : ->
-      @vec3ToString(@flycam3d.rotation)
+      @vec3ToString(@flycam3d.getRotation())
 
     vec3ToString : (vec3) ->
       return Math.floor(vec3[0]) + ", " + Math.floor(vec3[1]) + ", " + Math.floor(vec3[2])
-
-    isArbitrayMode : ->
-      return @controlMode in constants.MODES_ARBITRARY
 
   events :
     "change #trace-position-input" : "changePosition"

      </div>
    </div>
    <div class="form-group">
      <% if(isArbitrayMode()) { %>
        <div class="input-group">
          <span class="input-group-addon">Rotation</span>
          <input id="trace-rotation-input" class="form-control" type="text" value="<%= rotation() %>">


  initialize : (options) ->

    @viewMode = constants.MODE_PLANE_TRACING
    @listenTo(app.vent, "changeViewMode", @updateViewMode)

    # TODO MEASURE PERFORMANCE HIT BECAUSE OF CONSTANT RE-RENDER
    @listenTo(@model.get("flycam3d"), "changed", @render)
    @listenTo(@model.get("flycam"), "positionChanged", @render)


  serializeData : ->

    console.log @viewMode
    return _.extend(@model, {
      isArbitrayMode : @viewMode in constants.MODES_ARBITRARY
    })


  updateViewMode : (@viewMode) ->

    @render()


  changePosition : (event) ->
