Interseção de linha com o retângulo AABB?

De preferência sem usar nenhum tipo de loop, pois isso será usado em um jogo.

Desejo cruzar uma linha com um retângulo, de tamanho arbitrário. Mas também desejo que os pontos de interseção sejam retornados.

É possível, eu pesquisei um pouco, mas ainda não o resolvi.

A linha é definida usando (x1, y1, x2, y2). O retângulo também possui esses dois pontos.

questionAnswers(1)

yourAnswerToTheQuestion