private static bool Intersects(RectangleCollider rectangle, PolygonCollider polygon) { for (int i = 0; rectangle.axes.Count > i; i++) { float2 axis = rectangle.axes[i]; if (LineOverlap(Project(rectangle, axis), Project(polygon, axis)) == 0) { return(false); } } for (int i = 0; polygon.points.Count > i; i++) { float2 axis = polygon.edges[i].perpendicular(); if (LineOverlap(Project(rectangle, axis), Project(polygon, axis)) == 0) { return(false); } } return(true); }
private static bool Intersects(PolygonCollider polygonA, PolygonCollider polygonB) { for (int i = 0; polygonA.points.Count > i; i++) { float2 axis = polygonA.edges[i].perpendicular(); if (LineOverlap(Project(polygonA, axis), Project(polygonB, axis)) == 0) { return(false); } } for (int i = 0; polygonB.points.Count > i; i++) { float2 axis = polygonB.edges[i].perpendicular(); if (LineOverlap(Project(polygonA, axis), Project(polygonB, axis)) == 0) { return(false); } } return(true); }
public PolygonCollider(PolygonCollider polygonCollider) : this(polygonCollider.cachedPoints) { }
private static bool Intersects(PolygonCollider polygon, RectangleCollider rectangle) => Intersects(rectangle, polygon);