@davepagurek/flo-mat
Version:
Medial / Scale Axis Transform (MAT/SAT) Library.
35 lines (24 loc) • 924 B
text/typescript
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 }