function intersectBox([[x1, y1], [x2, y2]], [b1, b2, b3, b4]) {
const _i1 = intersect([[x1, y1], [x2, y2]], [[b1, b2], [b1, b4]], false, true),
_i2 = intersect([[x1, y1], [x2, y2]], [[b1, b2], [b3, b2]], false, true),
_i3 = intersect([[x1, y1], [x2, y2]], [[b3, b2], [b3, b4]], false, true),
_i4 = intersect([[x1, y1], [x2, y2]], [[b1, b4], [b3, b4]], false, true);
const dx = x2 - x1;
const dy = y2 - y1;
let i1, i2;
if (_i1) {
if (dx > 0) i1 = _i1;
if (dx < 0) i2 = _i1;
}
if (_i2) {
if (dy > 0) i1 = _i2;
if (dy < 0) i2 = _i2;
}
if (_i3) {
if (dx < 0) i1 = _i3;
if (dx > 0) i2 = _i3;
}
if (_i4) {
if (dy < 0) i1 = _i4;
if (dy > 0) i2 = _i4;
}
return [i1, i2];
}