UNPKG

@davepagurek/flo-mat

Version:

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

52 lines (34 loc) 1.38 kB
import { drawFs } from 'flo-draw'; import { CpNode, getCpNodesOnCircle } from '../../../cp-node/cp-node.js'; /** @internal */ function vertex( g: SVGGElement, cpNode: CpNode, classes?: string, delay?: number,/* visible = true*/ scaleFactor = 1) { // const visibleClass = visible ? '' : ' invisible'; const circle = cpNode.cp.circle; const THIN = 'thin20'; const cps = getCpNodesOnCircle(cpNode); console.log(cps) let $svgs: SVGElement[] = []; const $circle = drawFs.circle(g, circle, 'red ' + THIN + ' nofill '/* + visibleClass*/, delay); const $crossHair = drawFs.crossHair(g, circle.center, 'red ' + THIN + ' nofill '/* + visibleClass*/, 3, delay); $svgs = [...$circle, ...$crossHair]; for (let i=0; i<cps.length; i++) { const cp = cps[i]; const edgeCircle = cp.next.cp.circle; const $circle = drawFs.circle(g, edgeCircle, 'pink ' + THIN + ' nofill '/* + visibleClass*/, delay); const $crossHair = drawFs.crossHair(g, edgeCircle.center, 'pink ' + THIN + ' nofill '/* + visibleClass*/, 3, delay); $svgs.push(...$circle, ...$crossHair) const p1 = circle.center; const p2 = edgeCircle.center; const thin = i === 0 ? 'thin10' : (i === 1 ? 'thin20' : 'thin35'); const $line = drawFs.line(g, [p1, p2], 'yellow ' + thin + ' nofill '/* + visibleClass*/, delay); $svgs.push(...$line); } return $svgs; } export { vertex }