sdlGetRectAndLineIntersectionFloat function rect

bool sdlGetRectAndLineIntersectionFloat(
  1. Pointer<SdlFRect> rect,
  2. Pointer<Float> x1,
  3. Pointer<Float> y1,
  4. Pointer<Float> x2,
  5. Pointer<Float> y2,
)

Calculate the intersection of a rectangle and line segment with float precision.

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_FRect 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 true if there is an intersection, false otherwise.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL 3.2.0.

extern SDL_DECLSPEC bool SDLCALL SDL_GetRectAndLineIntersectionFloat(const SDL_FRect *rect, float *X1, float *Y1, float *X2, float *Y2)

Implementation

bool sdlGetRectAndLineIntersectionFloat(
  Pointer<SdlFRect> rect,
  Pointer<Float> x1,
  Pointer<Float> y1,
  Pointer<Float> x2,
  Pointer<Float> y2,
) {
  final sdlGetRectAndLineIntersectionFloatLookupFunction = _libSdl
      .lookupFunction<
        Uint8 Function(
          Pointer<SdlFRect> rect,
          Pointer<Float> x1,
          Pointer<Float> y1,
          Pointer<Float> x2,
          Pointer<Float> y2,
        ),
        int Function(
          Pointer<SdlFRect> rect,
          Pointer<Float> x1,
          Pointer<Float> y1,
          Pointer<Float> x2,
          Pointer<Float> y2,
        )
      >('SDL_GetRectAndLineIntersectionFloat');
  return sdlGetRectAndLineIntersectionFloatLookupFunction(
        rect,
        x1,
        y1,
        x2,
        y2,
      ) ==
      1;
}