using System.Diagnostics.CodeAnalysis; using SideScrollerGame.Sim.Math; namespace SideScrollerGame.Sim.Definitions; [ExcludeFromCodeCoverage] public sealed record AxisAlignedBounds { public AxisAlignedBounds(FixPointVector2 min, FixPointVector2 max) { Min = min; Max = max; } public bool Contains(FixPointVector2 position) { return position.m_X >= Min.m_X && position.m_X <= Max.m_X && position.m_Y >= Min.m_Y && position.m_Y <= Max.m_Y; } public FixPointVector2 Clamp(FixPointVector2 position) { return new(FixPoint16.Clamp(position.m_X, Min.m_X, Max.m_X), FixPoint16.Clamp(position.m_Y, Min.m_Y, Max.m_Y)); } public FixPointVector2 Min { get; init; } public FixPointVector2 Max { get; init; } }