 
       if @firstEdgeDirection
         @flycam.setSpaceDirection(@firstEdgeDirection)
+
+
+  initializeTrees : (tracingType, taskId) ->
+
+    # Initialize tree colors
+    @colorIdCounter = @treeIdCount
+
+    # Initialize tree name prefix
+    @TREE_PREFIX = @generateTreeNamePrefix(tracingType, taskId)
+
+    for tree in @trees
+      unless tree.color?
+        @shuffleTreeColor(tree)
+
+    # Ensure a tree is active
+    unless @activeTree
+      if @trees.length > 0
+        @activeTree = @trees[0]
+      else
+        @createNewTree()
 
 
   benchmark : (numberOfTrees = 1, numberOfNodesPerTree = 10000) ->

      @activeTree
    } = tracingParser.parse()

    # Initialize tree colors
    @colorIdCounter = @treeIdCount

    for tree in @trees
      unless tree.color?
        @shuffleTreeColor(tree)

    # ensure a tree is active
    unless @activeTree
      if @trees.length > 0
        @activeTree = @trees[0]
      else
        @createNewTree()

    tracingType = tracing.typ
    if (tracingType == "Task") and @getNodeListOfAllTrees().length == 0
      @addNode(tracing.content.editPosition, tracing.content.editRotation, 0, 0, 4, false)


    tree = new TraceTree(
      @treeIdCount++,
      @getNewTreeColor(),
      @TREE_PREFIX + ('00'+(@treeIdCount-1)).slice(-3),
      (new Date()).getTime())
    @trees.push(tree)
    @activeTree = tree
