2023-12-07 10:55:49 +03:00
|
|
|
using Microsoft.Xna.Framework;
|
|
|
|
|
|
|
|
namespace Syntriax.Engine.Physics2D.Primitives;
|
|
|
|
|
|
|
|
public record AABB(Vector2 LowerBoundary, Vector2 UpperBoundary)
|
|
|
|
{
|
|
|
|
public bool Overlaps(Vector2 point)
|
|
|
|
=> point.X >= LowerBoundary.X && point.X <= UpperBoundary.X &&
|
|
|
|
point.Y >= LowerBoundary.Y && point.Y <= UpperBoundary.Y;
|
2023-12-07 11:14:18 +03:00
|
|
|
|
|
|
|
public bool Overlaps(AABB other)
|
|
|
|
=> LowerBoundary.X <= other.UpperBoundary.X && UpperBoundary.X >= other.LowerBoundary.X &&
|
|
|
|
LowerBoundary.Y <= other.UpperBoundary.Y && UpperBoundary.Y >= other.LowerBoundary.Y;
|
|
|
|
|
|
|
|
public bool ApproximatelyEquals(AABB other)
|
|
|
|
=> LowerBoundary.ApproximatelyEquals(other.LowerBoundary) && UpperBoundary.ApproximatelyEquals(other.UpperBoundary);
|
2023-12-07 10:55:49 +03:00
|
|
|
}
|