UNPKG

@davepagurek/flo-mat

Version:

Medial / Scale Axis Transform (MAT/SAT) Library.

35 lines (24 loc) 924 B
import { PointOnShape } from '../point-on-shape/point-on-shape.js'; import { Loop } from 'flo-boolean'; import { createPos } from '../point-on-shape/create-pos.js'; import { getCornerAtEnd } from '../curve/curve.js'; import { controlPointLinesLength } from 'flo-bezier3'; /** @internal */ function getDullCornersOnLoop( minBezLength: number) { return (loop: Loop) => { const dullCorners: PointOnShape[] = []; for (let i=0; i<loop.curves.length; i++) { const curve = loop.curves[i]; if (controlPointLinesLength(curve.ps) < minBezLength) { continue; } if (getCornerAtEnd(curve).isQuiteDull) { dullCorners.push(createPos(curve, 1, true)); dullCorners.push(createPos(curve.next, 0, true)); } } return dullCorners; } } export { getDullCornersOnLoop }