     M4x4.scale(scale, m, m)
     @currentMatrix = m
 
-    updateMacro(@)
-
-
-  resetRotation : ->
-
-    { currentMatrix } = @
-
-    x = currentMatrix[12]
-    y = currentMatrix[13]
-    z = currentMatrix[14]
-
-    @reset()
-    @setPosition([x, y, z])
+    if position? and not resetPosition
+      @setPosition(position)
+
+    # Apply 180° Rotation to keep it consistent with plane view
+    @roll Math.PI
 
     updateMacro(@)
 

    object = new THREE.Object3D()
    matrix = (new THREE.Matrix4()).fromArray( @currentMatrix ).transpose()
    object.applyMatrix( matrix )
    return _.map [
      object.rotation.x
      object.rotation.y
      object.rotation.z
      ], (e) -> 180 / Math.PI * e




    scale


  reset : (resetPosition = true) ->

    { scale } = @
    if @currentMatrix?
      position = @currentMatrix[12..14]

    m = [
      1, 0, 0, 0,
