| 2 | bool collinear(L(a, b), L(p, q)) { |
| 3 | return abs(ccw(a, b, p)) < EPS && abs(ccw(a, b, q)) < EPS; } |
| 4 | bool parallel(L(a, b), L(p, q)) { |
| 5 | return abs(cross(b - a, q - p)) < EPS; } |
| 6 | point closest_point(L(a, b), P(c), bool segment = false) { |
| 7 | if (segment) { |
| 8 | if (dot(b - a, c - b) > 0) return b; |
no test coverage detected