bool Vector2::isSegmentIntersect(const Vector2& A, const Vector2& B, const Vector2& C, const Vector2& D, Vector2 *S, Vector2 *E) { if (isLineOverlap(A, B, C, D)) { return isOneDimensionSegmentOverlap(A.x, B.x, C.x, D.x, &S->x, &E->x) && isOneDimensionSegmentOverlap(A.y, B.y, C.y, D.y, &S->y, &E->y); } return false; }
bool Point::isSegmentOverlap(const Point& A, const Point& B, const Point& C, const Point& D, Point* S, Point* E) { if (isLineOverlap(A, B, C, D)) { return isOneDimensionSegmentOverlap(A.x, B.x, C.x, D.x, &S->x, &E->x) && isOneDimensionSegmentOverlap(A.y, B.y, C.y, D.y, &S->y, &E->y); } return false; }