| 59 | double getAngle(P(u)) const { |
| 60 | return atan2((*this * u).length(), *this % u); } |
| 61 | bool isOnPlane(PL(A, B, C)) const { |
| 62 | return |
| 63 | abs((A - *this) * (B - *this) % (C - *this)) < EPS; } }; |
| 64 | int line_line_intersect(L(A, B), L(C, D), point3d &O){ |
| 65 | if (abs((B - A) * (C - A) % (D - A)) > EPS) return 0; |
| 66 | if (((A - B) * (C - D)).length() < EPS) |
no outgoing calls
no test coverage detected