using System; using System.Numerics; using MoonTools.Structs; namespace MoonTools.Bonk { /// /// A Point is "that which has not part". All points by themselves are identical. /// public struct Point : IShape2D, IEquatable { public AABB2D AABB { get; } public AABB2D TransformedAABB(Transform2D transform) { return AABB2D.Transformed(AABB, transform); } public Vector2 Support(Vector2 direction, Transform2D transform) { return Vector2.Transform(Vector2.Zero, transform.TransformMatrix); } public override bool Equals(object obj) { return obj is IShape2D other && Equals(other); } public bool Equals(IShape2D other) { return other is Point otherPoint && Equals(otherPoint); } public bool Equals(Point other) { return true; } public override int GetHashCode() { return 0; } public static bool operator ==(Point a, Point b) { return true; } public static bool operator !=(Point a, Point b) { return false; } } }