circleRectangle method
override
Returns true if a circle at circleCenter with radius overlaps a
rectangle centered at rectCenter, described by extents ex/ey.
Implementation
@override
bool circleRectangle(
Vector2 circleCenter,
double radius,
Vector2 rectCenter,
Vector2 ex,
Vector2 ey,
) {
final delta = circleCenter - rectCenter;
final u = (delta.dot(ex) / ex.length2).clamp(-1.0, 1.0);
final v = (delta.dot(ey) / ey.length2).clamp(-1.0, 1.0);
final closest = rectCenter + ex * u + ey * v;
return circleCenter.distance2(closest) <= radius * radius;
}