¿Intersección de línea con rectángulo AABB?

Preferiblemente sin usar ningún tipo de bucle, ya que esto se usará en un juego.

Deseo intersecar una línea con un rectángulo, de tamaño arbitrario. Pero también deseo que se devuelvan los puntos de intersección.

Es posible, he buscado un poco en Google, pero aún no lo he resuelto.

La línea se define usando (x1, y1, x2, y2). El rectángulo tiene estos dos puntos también.

Respuestas a la pregunta(1)

Su respuesta a la pregunta