code: function(node, scale) {
          var dim = this.node;
          var w = node.getData('width');
          var h = node.getData('height');
          var s = (this.config.multitree 
          		&& ('$orn' in node.data) 
          		&& node.data.$orn) || this.config.orientation;
  
          var $C = function(a, b) { 
            return function(){
              return node.pos.add(new Complex(a, b)).$scale(1 - scale);
            }; 
          };
          if(dim.align == "left") {
              return this.dispatch(s, $C(0, h), $C(0, 0),
                                   $C(0, 0), $C(w, 0));
          } else if(dim.align == "center") {
              return this.dispatch(s, $C(0, h / 2), $C(-w / 2, 0),
                                   $C(0, -h / 2),$C(w / 2, 0));
          } else if(dim.align == "right") {
              return this.dispatch(s, $C(0, 0), $C(-w, 0),
                                   $C(0, -h),$C(0, 0));
          } else throw "align: not implemented";
      }
docs: /*
  Adjusts the tree position due to canvas scaling or translation.