Renderer.prototype.getWaypoints = function()

in src/core/renderer.js [47:90]


Renderer.prototype.getWaypoints = function(node){
  var options = this.options;
  var direction = options.direction;

  var hops = node.getPathFromRoot();
  var gap = options.nodeHeight + options.layerGap;

  if(direction==='left'){
    return [[[0, hops[0].idealPos]]].concat(hops.map(function(hop, level){
      var xPos = gap * (level+1) * -1;
      return [
        [xPos + options.nodeHeight, hop.currentPos],
        [xPos, hop.currentPos]
      ];
    }));
  }
  else if(direction==='right'){
    return [[[0, hops[0].idealPos]]].concat(hops.map(function(hop, level){
      var xPos = gap * (level+1);
      return [
        [xPos - options.nodeHeight, hop.currentPos],
        [xPos, hop.currentPos]
      ];
    }));
  }
  else if(direction==='up'){
    return [[[hops[0].idealPos, 0]]].concat(hops.map(function(hop, level){
      var yPos = gap * (level+1) * -1;
      return [
        [hop.currentPos, yPos + options.nodeHeight],
        [hop.currentPos, yPos]
      ];
    }));
  }
  else{
    return [[[hops[0].idealPos, 0]]].concat(hops.map(function(hop, level){
      var yPos = gap * (level+1);
      return [
        [hop.currentPos, yPos - options.nodeHeight],
        [hop.currentPos, yPos]
      ];
    }));
  }
};