UNPKG

@thi.ng/geom-tessellate

Version:

2D/3D convex polygon tessellators

19 lines (18 loc) 558 B
import { centroid } from "@thi.ng/geom-poly-utils/centroid"; import { addmN } from "@thi.ng/vectors"; const quadFan = (tess, faces, pids) => { const points = tess.pointsForIDs(pids); const c = tess.addPoint(centroid(points)); const n = pids.length - 1; let m0 = tess.addPoint(addmN([], points[n], points[0], 0.5)); let mprev = m0; for (let i = 0; i <= n; i++) { const m = i < n ? tess.addPoint(addmN([], points[i], points[i + 1], 0.5)) : m0; faces.push([c, mprev, pids[i], m]); mprev = m; } return faces; }; export { quadFan };