private bool signedTriangleSquareCheck(LineSegment other, IntersectionCheckOptions option)
{
int call1 = signedTriangleSquare(Start, End, other.Start);
int call2 = signedTriangleSquare(Start, End, other.End);
int call3 = signedTriangleSquare(other.Start, other.End, Start);
int call4 = signedTriangleSquare(other.Start, other.End, End);
return option == IntersectionCheckOptions.WithoutEdgePoints ? call1*call2 < 0 && call3*call4 < 0 : call1*call2 <= 0 && call3*call4 <= 0;
}