revert generification + add null validation
							parent
							
								
									7ff7018d1d
								
							
						
					
					
						commit
						5306d2cc3e
					
				|  | @ -31,8 +31,10 @@ namespace MoonTools.Core.Bonk | |||
|         /// <param name="id">A unique ID for the shape-transform pair.</param> | ||||
|         /// <param name="shape"></param> | ||||
|         /// <param name="transform2D"></param> | ||||
|         public void Insert<TShape2D>(T id, TShape2D shape, Transform2D transform2D) where TShape2D : struct, IShape2D | ||||
|         public void Insert(T id, IShape2D shape, Transform2D transform2D) | ||||
|         { | ||||
|             if (shape == null) { throw new ArgumentNullException(nameof(shape)); } | ||||
| 
 | ||||
|             var box = shape.AABB(transform2D); | ||||
|             var minHash = Hash(box.MinX, box.MinY); | ||||
|             var maxHash = Hash(box.MaxX, box.MaxY); | ||||
|  | @ -60,9 +62,11 @@ namespace MoonTools.Core.Bonk | |||
|         /// <summary> | ||||
|         /// Retrieves all the potential collisions of a shape-transform pair. Excludes any shape-transforms with the given ID. | ||||
|         /// </summary> | ||||
|         public IEnumerable<(T, IShape2D, Transform2D)> Retrieve<TShape2D>(T id, TShape2D shape, Transform2D transform2D) where TShape2D : struct, IShape2D | ||||
|         public IEnumerable<(T, IShape2D, Transform2D)> Retrieve(T id, IShape2D shape, Transform2D transform2D) | ||||
|         { | ||||
|             var box = shape.AABB(transform2D); | ||||
|             if (shape == null) { throw new ArgumentNullException(paramName: nameof(shape)); } | ||||
| 
 | ||||
|             AABB box = shape.AABB(transform2D); | ||||
|             var minHash = Hash(box.MinX, box.MinY); | ||||
|             var maxHash = Hash(box.MaxX, box.MaxY); | ||||
| 
 | ||||
|  |  | |||
|  | @ -24,8 +24,11 @@ namespace MoonTools.Core.Bonk | |||
|         /// Returns a minimum separating vector in the direction from A to B. | ||||
|         /// </summary> | ||||
|         /// <param name="simplex">A simplex returned by the GJK algorithm.</param> | ||||
|         public static Vector2 Intersect<TShapeA, TShapeB>(TShapeA shapeA, Transform2D Transform2DA, TShapeB shapeB, Transform2D Transform2DB, Simplex2D simplex) where TShapeA : struct, IShape2D where TShapeB : struct, IShape2D | ||||
|         public static Vector2 Intersect(IShape2D shapeA, Transform2D Transform2DA, IShape2D shapeB, Transform2D Transform2DB, Simplex2D simplex) | ||||
|         { | ||||
|             if (shapeA == null) { throw new ArgumentNullException(nameof(shapeA)); } | ||||
|             if (shapeB == null) { throw new ArgumentNullException(nameof(shapeB)); } | ||||
| 
 | ||||
|             var simplexVertices = simplex.Vertices.Select(vertex => vertex.ToVector2()).ToImmutableArray(); | ||||
| 
 | ||||
|             var e0 = (simplexVertices[1].X - simplexVertices[0].X) * (simplexVertices[1].Y + simplexVertices[0].Y); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue