improved init function

This commit is contained in:
2023-11-05 01:21:01 -07:00
parent da77aa10bb
commit ea311a1787
8 changed files with 83 additions and 59 deletions

View File

@@ -40,13 +40,6 @@ export function satCollisionPolygon(poly: Polygon, poly2: Polygon): boolean {
return true;
}
export function satCollisionCircle(p: Polygon, circle: CircleLike): boolean {
for (const edge of p.getEdges()) {
const axis = edge.copy().normal().normalize();
const proj1 = projectPolygonOntoAxis(p, axis);
const proj2 = projectCircleOntoAxis(circle, axis);
if (!overlap(proj1, proj2)) return false;
}
const center = new Vector(circle.center);
const nearest = p.getNearestPoint(center);
const axis = nearest.copy().sub(center).normalize();
@@ -54,6 +47,15 @@ export function satCollisionCircle(p: Polygon, circle: CircleLike): boolean {
const proj2 = projectCircleOntoAxis(circle, axis);
if (!overlap(proj1, proj2)) return false;
for (const edge of p.getEdges()) {
const axis = edge.copy().normal().normalize();
const proj1 = projectPolygonOntoAxis(p, axis);
const proj2 = projectCircleOntoAxis(circle, axis);
if (!overlap(proj1, proj2)) return false;
}
return true;
}
export function satCollisionAABBCircle(