code: function( node, level ) {
              node.prelim = null;
              node.modifier = null;
  
              this.setNeighbors( node, level );
              this.calcLevelDim( node, level );
  
              var leftSibling = node.leftSibling();
  
              if ( node.childrenCount() === 0 || level == this.CONFIG.maxDepth ) {
                  // set preliminary x-coordinate
                  if ( leftSibling ) {
                      node.prelim = leftSibling.prelim + leftSibling.size() + this.CONFIG.siblingSeparation;
                  }
                  else {
                      node.prelim = 0;
                  }
              }
              else {
                  //node is not a leaf,  firstWalk for each child
                  for ( var i = 0, n = node.childrenCount(); i < n; i++ ) {
                      this.firstWalk(node.childAt(i), level + 1);
                  }
  
                  var midPoint = node.childrenCenter() - node.size() / 2;
  
                  if ( leftSibling ) {
                      node.prelim = leftSibling.prelim + leftSibling.size() + this.CONFIG.siblingSeparation;
                      node.modifier = node.prelim - midPoint;
                      this.apportion( node, level );
                  }
                  else {
                      node.prelim = midPoint;
                  }
  
                  // handle stacked children positioning
                  if ( node.stackParent ) { // handle the parent of stacked children
                      node.modifier += this.nodeDB.get( node.stackChildren[0] ).size()/2 + node.connStyle.stackIndent;
                  }
                  else if ( node.stackParentId ) { // handle stacked children
                      node.prelim = 0;
                  }
              }
              return this;
          }
docs: In a first post-order walk, every node of the tree is assigned a preliminary
  x-coordinate (held in field node->prelim).
  In addition, internal nodes are given modifiers, which will be used to move their
  children to the right (held in field node->modifier).
  @param {TreeNode} node
  @param {number} level
  @returns {Tree}