aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/bezierFit.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2024-08-29 13:07:53 -0400
committerbobzel <zzzman@gmail.com>2024-08-29 13:07:53 -0400
commit0ac79ba6a7ab19b4aafbc11dac9bab4781d4bd40 (patch)
tree4d5774dc4247782ccb6c99b018ca8e0c91187378 /src/client/util/bezierFit.ts
parentf7cdcb654e83d7fdbfd0b1cfc80c485bb9554f08 (diff)
merge cleanup cleanup
Diffstat (limited to 'src/client/util/bezierFit.ts')
-rw-r--r--src/client/util/bezierFit.ts18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/client/util/bezierFit.ts b/src/client/util/bezierFit.ts
index 693676bc3..4c7f4a0ba 100644
--- a/src/client/util/bezierFit.ts
+++ b/src/client/util/bezierFit.ts
@@ -2,7 +2,6 @@
/* eslint-disable prefer-destructuring */
/* eslint-disable no-param-reassign */
/* eslint-disable camelcase */
-import e from 'cors';
import { Point } from '../../pen-gestures/ndollar';
export enum SVGType {
@@ -628,7 +627,7 @@ export function GenerateControlPoints(coordinates: Point[], alpha = 0.1) {
export function SVGToBezier(name: SVGType, attributes: any): Point[] {
switch (name) {
- case 'line':
+ case 'line': {
const x1 = parseInt(attributes.x1);
const x2 = parseInt(attributes.x2);
const y1 = parseInt(attributes.y1);
@@ -639,8 +638,9 @@ export function SVGToBezier(name: SVGType, attributes: any): Point[] {
{ X: x2, Y: y2 },
{ X: x2, Y: y2 },
];
+ }
case 'circle':
- case 'ellipse':
+ case 'ellipse': {
const c = 0.551915024494;
const centerX = parseInt(attributes.cx);
const centerY = parseInt(attributes.cy);
@@ -664,7 +664,8 @@ export function SVGToBezier(name: SVGType, attributes: any): Point[] {
{ X: centerX - c * radiusX, Y: centerY + radiusY },
{ X: centerX, Y: centerY + radiusY },
];
- case 'rect':
+ }
+ case 'rect': {
const x = parseInt(attributes.x);
const y = parseInt(attributes.y);
const width = parseInt(attributes.width);
@@ -687,14 +688,15 @@ export function SVGToBezier(name: SVGType, attributes: any): Point[] {
{ X: x, Y: y },
{ X: x, Y: y },
];
- case 'path':
+ }
+ case 'path': {
const coordList: Point[] = [];
const startPt = attributes.d.match(/M(-?\d+\.?\d*),(-?\d+\.?\d*)/);
coordList.push({ X: parseInt(startPt[1]), Y: parseInt(startPt[2]) });
const matches: RegExpMatchArray[] = Array.from(
attributes.d.matchAll(/Q(-?\d+\.?\d*),(-?\d+\.?\d*) (-?\d+\.?\d*),(-?\d+\.?\d*)|C(-?\d+\.?\d*),(-?\d+\.?\d*) (-?\d+\.?\d*),(-?\d+\.?\d*) (-?\d+\.?\d*),(-?\d+\.?\d*)|L(-?\d+\.?\d*),(-?\d+\.?\d*)/g)
);
- let lastPt: Point;
+ let lastPt: Point = { X: 0, Y: 0 };
matches.forEach(match => {
if (match[0].startsWith('Q')) {
coordList.push({ X: parseInt(match[1]), Y: parseInt(match[2]) });
@@ -725,7 +727,8 @@ export function SVGToBezier(name: SVGType, attributes: any): Point[] {
coordList.pop();
}
return coordList;
- case 'polygon':
+ }
+ case 'polygon': {
const coords: RegExpMatchArray[] = Array.from(attributes.points.matchAll(/(-?\d+\.?\d*),(-?\d+\.?\d*)/g));
let list: Point[] = [];
coords.forEach(coord => {
@@ -737,6 +740,7 @@ export function SVGToBezier(name: SVGType, attributes: any): Point[] {
const firstPts = list.splice(0, 2);
list = list.concat(firstPts);
return list;
+ }
default:
return [];
}