17 lines
523 B
C#
17 lines
523 B
C#
|
using Microsoft.Xna.Framework;
|
||
|
|
||
|
namespace Syntriax.Engine.Physics2D.Primitives;
|
||
|
|
||
|
public record Circle(Vector2 Position, float Radius)
|
||
|
{
|
||
|
public bool Intersects(Circle circleOther)
|
||
|
{
|
||
|
float distanceSquared = (Position - circleOther.Position).LengthSquared();
|
||
|
float radiusSumSquared = Radius * Radius + circleOther.Radius * circleOther.Radius;
|
||
|
|
||
|
return distanceSquared < radiusSumSquared;
|
||
|
}
|
||
|
|
||
|
public bool Overlaps(Vector2 point) => (Position - point).LengthSquared() <= Radius * Radius;
|
||
|
}
|