Tldraw/packages/tldraw/src/test/testutils/getSnapLines.ts

26 wiersze
677 B
TypeScript

import { Editor } from '@tldraw/editor'
const simplifyNumber = (n: number) => {
if (Math.abs(Math.round(n) - n) < 0.0001) {
return Math.round(n)
}
return n
}
export const getSnapLines = (scene: Editor) => {
const result = []
for (const snap of scene.snaps.getLines()) {
if (snap.type !== 'points') {
throw new Error('Expected only points snap')
}
snap.points.sort((a, b) => {
const xdiff = simplifyNumber(a.x) - simplifyNumber(b.x)
if (xdiff === 0) {
return simplifyNumber(a.y) - simplifyNumber(b.y)
}
return xdiff
})
result.push(snap.points.map((p) => `${simplifyNumber(p.x)},${simplifyNumber(p.y)}`).join(' '))
}
return result.sort()
}