in public/bubblesets.js [286:295]
this.cuts = function(p) {
if(y1 === y2) return false;
var y = p.y();
if((y < y1 && y <= y2) || (y > y1 && y >= y2)) return false;
var x = p.x();
if(x > x1 && x >= x2) return false;
if(x < x1 && x <= x2) return true;
var cross = x1 + (y - y1) * (x2 - x1) / (y2 - y1);
return x <= cross;
};