 
   initialize : (options) ->
 
-    @listenTo(app.vent, "changeViewMode", @render)
+    @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) ->

      </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() %>">


  templateHelpers :
    position : ->
      @vec3ToString(@flycam.getPosition())

    rotation : ->
      @vec3ToString(@flycam3d.getRotation())

    vec3ToString : (vec3) ->
      return Math.floor(vec3[0]) + ", " + Math.floor(vec3[1]) + ", " + Math.floor(vec3[2])

  events :
    "change #trace-position-input" : "changePosition"
