public static bool Collision(ref Contact contact) { switch (contact.FixtureA.Collider.Type) { case ColliderType.CIRCLE: return(CircleCollision.Collision(ref contact)); case ColliderType.SEGMENT: return(SegmentCollision.Collision(ref contact)); case ColliderType.POLYGON: return(PolygonCollisionSAT.Collision(ref contact)); default: throw new Exception("Collider type is not supported"); } }
public static bool CircleVsSegment(ref Contact contact) { Fixture.Swap(ref contact.FixtureA, ref contact.FixtureB); return(SegmentCollision.SegmentVsCircle(ref contact)); }