31 lines
842 B
C#
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;
|
|
}
|