Files
Syntriax.Engine/Engine.Physics2D/Collider2DCircle.cs

31 lines
842 B
C#

using Engine.Core;
namespace Engine.Physics2D;
public class Collider2DCircle : Collider2DBase, ICircleCollider2D
{
public Circle CircleWorld { get; protected set; } = Circle.UnitCircle;
public Circle CircleLocal
{
get;
set
{
field = value;
NeedsRecalculation = true;
}
} = Circle.UnitCircle;
private float area = 0f; public override float Area => area;
private float geometricInertia = 0f; public override float GeometricInertia => geometricInertia;
public override void CalculateCollider()
{
CircleWorld = Transform.Transform(CircleLocal);
area = CircleWorld.Area;
geometricInertia = CircleWorld.GeometricInertia;
}
public Collider2DCircle() { }
public Collider2DCircle(Circle circle) => CircleLocal = circle;
}