 
             @matrixWorldNeedsUpdate = true
 
-        if not @_3dText?
+        if opts.rotation?
+            mesh.rotation.set opts.rotation...
+        else if @_3dText?
+            @_3dText.push mesh
+        else
             @_3dText = [mesh]
-        else
-            @_3dText.push mesh
 
         if opts.in_frame
             @updateBoundingBox mesh
         @scene.add mesh
+        return mesh
 
     add_line: (opts) ->
         opts = defaults opts,

        if @controls?
            @controls.target = @_center

        if @frameOpts.thickness isnt 0
            # set the color and linewidth of the bounding box
            @boundingBox.material.color = @frameColor
            @boundingBox.material.linewidth = @frameOpts.thickness

        mesh = new THREE.Mesh geometry, material
        mesh.position.set opts.loc...

        geometry.computeBoundingBox()

        center = geometry.boundingBox.center()

        # will be called on render, this is used to make
        # mesh.rotation be centered on the center of the text
