     #console.log "! lm0"
     
   handleMove1: (event) ->
+    #TODO replace me with baseRectIx when that is ready
     @.mh.updateMouse(event)
     @.mh.ve.raycaster.setFromCamera(@.mh.pos, @.mh.ve.camera)
     bix = @.mh.ve.raycaster.intersectObject(@.mh.ve.surface.baseRect.obj3d)

    @clearPropsGUI()
    @ve.render()

class NameManager
  constructor: () ->
    @names = new Array()

      @obj3d.lines = []
    
    select: ->

  SelectionCube: class SelectionCube
    constructor: () ->
      @geom = new THREE.Geometry()
      @geom.dynamic = true

      @aa = new THREE.Vector3(0, 0, 75)
      @ab = new THREE.Vector3(0, 0, 75)
      @ba = new THREE.Vector3(0, 0, 75)
      @bb = new THREE.Vector3(0, 0, 75)

      @geom.vertices.push(
        @aa, @ab, @ba,
        @bb, @ba, @ab
      )

      @geom.faces.push(
        new THREE.Face3(0, 1, 2),
        new THREE.Face3(2, 1, 0),
        new THREE.Face3(3, 4, 5),
        new THREE.Face3(5, 4, 3)
      )

      @geom.computeBoundingSphere()
      @material = new THREE.MeshBasicMaterial({color: 0x123456})
      @obj3d = new THREE.Mesh(@geom, @material)

    updateGFX: () ->
      @geom.verticesNeedUpdate = true
      @geom.lineDistancesNeedUpdate = true
      @geom.elementsNeedUpdate = true
      @geom.normalsNeedUpdate = true
      @geom.computeFaceNormals()
      @geom.computeVertexNormals()
      @geom.computeBoundingSphere()
      @geom.computeBoundingBox()

    init: (p) ->
      @aa.x = @ab.x = @ba.x = p.x
      @aa.y = @ba.y = @ab.y = p.y
      @bb.x = @aa.x
      @bb.y = @aa.y
      @updateGFX()


    update: (p) ->
      @bb.x = @ba.x = p.x
      @bb.y = @ab.y = p.y
      @updateGFX()

    reset: () ->
      @aa.x = @bb.x = @ba.x = @ab.x = 0
      @aa.y = @bb.y = @ba.y = @ab.y = 0
      @updateGFX()

}

