aabbIntersectsSegment method
Implementation
bool aabbIntersectsSegment(double x1, double y1, double x2, double y2) {
final double minX = this.minX;
final double minY = this.minY;
final double maxX = this.maxX;
final double maxY = this.maxY;
if ((x1 <= minX && x2 <= minX) ||
(y1 <= minY && y2 <= minY) ||
(x1 >= maxX && x2 >= maxX) ||
(y1 >= maxY && y2 >= maxY)) return false;
final double m = (y2 - y1) / (x2 - x1);
double y = m * (minX - x1) + y1;
if (y > minY && y < maxY) return true;
y = m * (maxX - x1) + y1;
if (y > minY && y < maxY) return true;
double x = (minY - y1) / m + x1;
if (x > minX && x < maxX) return true;
x = (maxY - y1) / m + x1;
if (x > minX && x < maxX) return true;
return false;
}