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.

\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;
}