sdlIntersectRectAndLine function
Calculate the intersection of a rectangle and line segment.
This function is used to clip a line segment to a rectangle. A line segment
contained entirely within the rectangle or that does not intersect will
remain unchanged. A line segment that crosses the rectangle at either or
both ends will be clipped to the boundary of the rectangle and the new
coordinates saved in X1
, Y1
, X2
, and/or Y2
as necessary.
\param rect an SDL_Rect structure representing the rectangle to intersect \param X1 a pointer to the starting X-coordinate of the line \param Y1 a pointer to the starting Y-coordinate of the line \param X2 a pointer to the ending X-coordinate of the line \param Y2 a pointer to the ending Y-coordinate of the line \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
\since This function is available since SDL 2.0.0.
extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect * rect, int *X1, int *Y1, int *X2, int *Y2)
Implementation
bool sdlIntersectRectAndLine(Pointer<SdlRect> rect, Pointer<Int32> x1,
Pointer<Int32> y1, Pointer<Int32> x2, Pointer<Int32> y2) {
final sdlIntersectRectAndLineLookupFunction = libSdl2.lookupFunction<
Int32 Function(Pointer<SdlRect> rect, Pointer<Int32> x1,
Pointer<Int32> y1, Pointer<Int32> x2, Pointer<Int32> y2),
int Function(Pointer<SdlRect> rect, Pointer<Int32> x1, Pointer<Int32> y1,
Pointer<Int32> x2, Pointer<Int32> y2)>('SDL_IntersectRectAndLine');
return sdlIntersectRectAndLineLookupFunction(rect, x1, y1, x2, y2) == 1;
}