circleToRect static method
Implementation
static bool circleToRect(Circle circle, AABB rect, {Vec2? out}) {
final closest = Vec2(
circle.x.clamp(rect.left, rect.right),
circle.y.clamp(rect.top, rect.bottom),
);
final dx = circle.x - closest.x;
final dy = circle.y - closest.y;
final magSq = dx * dx + dy * dy;
double diff = circle.radSq - magSq;
if (diff <= 0) return false;
if (out != null) {
final mag = sqrt(magSq);
if (mag == 0) return true;
diff = circle.radius - mag;
out.x = (dx / mag) * diff;
out.y = (dy / mag) * diff;
}
return true;
}