in public/bubblesets.js [360:377]
Intersection.intersectLineLine = function(la, lb) {
var uaT = (lb.x2() - lb.x1()) * (la.y1() - lb.y1())
- (lb.y2() - lb.y1()) * (la.x1() - lb.x1());
var ubT = (la.x2() - la.x1()) * (la.y1() - lb.y1())
- (la.y2() - la.y1()) * (la.x1() - lb.x1());
var uB = (lb.y2() - lb.y1()) * (la.x2() - la.x1())
- (lb.x2() - lb.x1()) * (la.y2() - la.y1());
if(uB) {
var ua = uaT / uB;
var ub = ubT / uB;
if(0 <= ua && ua <= 1 && 0 <= ub && ub <= 1) {
var p = new Point(la.x1() + ua * (la.x2() - la.x1()), la.y1() + ua * (la.y2() - la.y1()));
return new Intersection(p, Intersection.POINT);
}
return new Intersection(null, Intersection.NONE);
}
return new Intersection(null, (uaT === 0 || ubT === 0) ? Intersection.COINCIDENT : Intersection.PARALLEL);
};