diff options
| author | bobzel <zzzman@gmail.com> | 2025-02-10 19:07:20 -0500 |
|---|---|---|
| committer | bobzel <zzzman@gmail.com> | 2025-02-10 19:07:20 -0500 |
| commit | c9686eaebffb3547b7e0f20aec64754627af76ce (patch) | |
| tree | 7ebf1c38323a8d7af554ba564acf95cfe79b7709 /src/client/util/bezierFit.ts | |
| parent | b72d018698ad1d2e713f0fcbef392d23bf1cf545 (diff) | |
| parent | e93ca53af693fa1ec2186ca9417af122bb5e8e09 (diff) | |
updated from master
Diffstat (limited to 'src/client/util/bezierFit.ts')
| -rw-r--r-- | src/client/util/bezierFit.ts | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/client/util/bezierFit.ts b/src/client/util/bezierFit.ts index 4aef28e6b..7ef370d48 100644 --- a/src/client/util/bezierFit.ts +++ b/src/client/util/bezierFit.ts @@ -691,8 +691,9 @@ export function SVGToBezier(name: SVGType, attributes: any): Point[] { } 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 [startX, startY] = attributes.d.match(/M(-?\d+\.?\d*),(-?\d+\.?\d*)/).slice(1); + const startPt = { X: parseInt(startX), Y: parseInt(startY) }; + coordList.push(startPt); 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) ); @@ -719,10 +720,10 @@ export function SVGToBezier(name: SVGType, attributes: any): Point[] { } }); const hasZ = attributes.d.match(/Z/); - if (hasZ) { + if (hasZ || attributes.fill) { coordList.push(lastPt); - coordList.push({ X: parseInt(startPt[1]), Y: parseInt(startPt[2]) }); - coordList.push({ X: parseInt(startPt[1]), Y: parseInt(startPt[2]) }); + coordList.push(startPt); + coordList.push(startPt); } else { coordList.pop(); } |
