intersectCircles static method

({double depth, Vector2 normal}) intersectCircles(
  1. CircleHitbox shapeA,
  2. CircleHitbox shapeB
)

Implementation

static ({Vector2 normal, double depth}) intersectCircles(
  CircleHitbox shapeA,
  CircleHitbox shapeB,
) {
  var normal = Vector2.zero();
  var depth = double.maxFinite;

  final distance = shapeA.absoluteCenter.distanceTo(shapeB.absoluteCenter);
  final radii = shapeA.radius + shapeB.radius;

  normal = (shapeB.absoluteCenter - shapeA.absoluteCenter).normalized();
  depth = radii - distance;

  return (normal: normal, depth: depth);
}