distributor.countIdealOverlaps = function()

in src/core/distributor.js [135:148]


  distributor.countIdealOverlaps = function(nodes){
    var iTree = new IntervalTree(options.layerWidth/2);
    nodes.forEach(function(node){
      iTree.add([node.idealLeft(), node.idealRight(), node]);
    });

    nodes.forEach(function(node){
      var overlaps = iTree.search(node.idealLeft(), node.idealRight());
      node.overlaps = overlaps.map(function(x) { return x.data[2]; });
      node.overlapCount = overlaps.length;
    });

    return nodes;
  };