Files
Syntriax.Engine/Engine.Physics2D/Collider2DShape.cs

32 lines
850 B
C#

using Engine.Core;
namespace Engine.Physics2D;
public class Collider2DShape : Collider2DBase, IShapeCollider2D
{
public Shape2D ShapeWorld { get; protected set; } = Shape2D.Square;
public Shape2D ShapeLocal
{
get;
set
{
field = value;
NeedsRecalculation = true;
}
} = Shape2D.Square;
private float area = 0f; public override float Area => area;
private float geometricInertia = 0f; public override float GeometricInertia => geometricInertia;
public override void CalculateCollider()
{
ShapeLocal.Transform(Transform, ShapeWorld);
area = ShapeWorld.Area;
geometricInertia = ShapeWorld.GetGeometricInertia(Transform.Position);
}
public Collider2DShape() { }
public Collider2DShape(Shape2D shape) { ShapeLocal = shape; }
}