fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 3.88 kB
Source Map (JSON)
{"version":3,"file":"basic.mjs","sources":["../../../extensions/aligning_guidelines/util/basic.ts"],"sourcesContent":["import type { FabricObject, Point } from 'fabric';\nimport type { PointMap } from '../typedefs';\n\nexport function getDistance(a: number, b: number) {\n return Math.abs(a - b);\n}\n\nexport function getDistanceList(point: Point, list: Point[], type: 'x' | 'y') {\n let dis = Infinity;\n let arr: Point[] = [];\n for (const item of list) {\n const v = getDistance(point[type], item[type]);\n if (dis > v) {\n arr = [];\n dis = v;\n }\n if (dis == v) {\n arr.push(item);\n }\n }\n return { dis, arr };\n}\n\nexport function getPointMap(target: FabricObject): PointMap {\n const coords = target.getCoords();\n return {\n tl: coords[0],\n tr: coords[1],\n br: coords[2],\n bl: coords[3],\n mt: coords[0].add(coords[1]).scalarDivide(2),\n mr: coords[1].add(coords[2]).scalarDivide(2),\n mb: coords[2].add(coords[3]).scalarDivide(2),\n ml: coords[3].add(coords[0]).scalarDivide(2),\n };\n}\n\nexport function getContraryMap(target: FabricObject): PointMap {\n const aCoords = target.aCoords ?? target.calcACoords();\n return {\n tl: aCoords.br,\n tr: aCoords.bl,\n br: aCoords.tl,\n bl: aCoords.tr,\n mt: aCoords.br.add(aCoords.bl).scalarDivide(2),\n mr: aCoords.bl.add(aCoords.tl).scalarDivide(2),\n mb: aCoords.tl.add(aCoords.tr).scalarDivide(2),\n ml: aCoords.tr.add(aCoords.br).scalarDivide(2),\n };\n}\n"],"names":["getDistance","a","b","Math","abs","getDistanceList","point","list","type","dis","Infinity","arr","item","v","push","getPointMap","target","coords","getCoords","tl","tr","br","bl","mt","add","scalarDivide","mr","mb","ml","getContraryMap","_target$aCoords","aCoords","calcACoords"],"mappings":"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"}