28 lines
778 B
C#
28 lines
778 B
C#
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; }
|
|
} |