UNPKG

tldraw

Version:

A tiny little drawing editor.

26 lines (24 loc) 682 B
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.getIndicators()) { 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() }