bool Collider::CollideCircleCircle(CircleCollider* a, CircleCollider* b, CollisionData *collisionData) { Vector2 diff = a->GetCenter() - b->GetCenter(); if (diff.IsInRange(a->GetRadius() + b->GetRadius())) { if (collisionData) { collisionData->normal = diff.GetNormalized(); collisionData->penetration = (a->GetRadius() + b->GetRadius()) - diff.GetMagnitude(); collisionData->hitPoint = diff * 0.5f + b->GetCenter(); } return true; } return false; }