import { createVector, setUnitNormal, type Vector } from "#/engine/Vector.ts"; export type Polygon = { position: Vector; points: Array; axes: Array; }; export function createPolygon( position: Vector, points: Array, ): Polygon { const axes = points.map(() => createVector()); const polygon = { position, points, axes }; updateAxes(polygon); return polygon; } export function updateAxes({ points, axes }: Polygon): void { const cap = axes.length - 1; const p0 = points[0]; let pi = p0; for (let i = 0; i < cap; i++) { const pj = points[i + 1]; setUnitNormal(axes[i], pi, pj); pi = pj; } setUnitNormal(axes[cap], pi, p0); }