(a, b, edge, bbox, out = [])
| 102197 | return result; |
| 102198 | } |
| 102199 | function intersect(a, b, edge, bbox, out = []) { |
| 102200 | let t; |
| 102201 | let snap; |
| 102202 | if (edge & 8) { |
| 102203 | t = (bbox[3] - a[1]) / (b[1] - a[1]); |
| 102204 | snap = 3; |
| 102205 | } else if (edge & 4) { |
| 102206 | t = (bbox[1] - a[1]) / (b[1] - a[1]); |
| 102207 | snap = 1; |
| 102208 | } else if (edge & 2) { |
| 102209 | t = (bbox[2] - a[0]) / (b[0] - a[0]); |
| 102210 | snap = 2; |
| 102211 | } else if (edge & 1) { |
| 102212 | t = (bbox[0] - a[0]) / (b[0] - a[0]); |
| 102213 | snap = 0; |
| 102214 | } else return null; |
| 102215 | for(let i = 0; i < a.length; i++)out[i] = (snap & 1) === i ? bbox[snap] : t * (b[i] - a[i]) + a[i]; |
| 102216 | return out; |
| 102217 | } |
| 102218 | function bitCode(p, bbox) { |
| 102219 | let code = 0; |
| 102220 | if (p[0] < bbox[0]) code |= 1; |
no test coverage detected