1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.segmentToCubic = void 0;
|
4 | var arc_2_cubic_1 = require("./arc-2-cubic");
|
5 | var quad_2_cubic_1 = require("./quad-2-cubic");
|
6 | var line_2_cubic_1 = require("./line-2-cubic");
|
7 | function segmentToCubic(segment, params) {
|
8 | var pathCommand = segment[0];
|
9 | var values = segment.slice(1).map(Number);
|
10 | var x = values[0], y = values[1];
|
11 | var args;
|
12 | var px1 = params.x1, py1 = params.y1, px = params.x, py = params.y;
|
13 | if (!'TQ'.includes(pathCommand)) {
|
14 | params.qx = null;
|
15 | params.qy = null;
|
16 | }
|
17 | switch (pathCommand) {
|
18 | case 'M':
|
19 | params.x = x;
|
20 | params.y = y;
|
21 | return segment;
|
22 | case 'A':
|
23 | args = [px1, py1].concat(values);
|
24 |
|
25 | return ['C'].concat((0, arc_2_cubic_1.arcToCubic)(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]));
|
26 | case 'Q':
|
27 | params.qx = x;
|
28 | params.qy = y;
|
29 | args = [px1, py1].concat(values);
|
30 |
|
31 | return ['C'].concat((0, quad_2_cubic_1.quadToCubic)(args[0], args[1], args[2], args[3], args[4], args[5]));
|
32 | case 'L':
|
33 |
|
34 | return ['C'].concat((0, line_2_cubic_1.lineToCubic)(px1, py1, x, y));
|
35 | case 'Z':
|
36 |
|
37 | if (px1 === px && py1 === py) {
|
38 | return ['C', px1, py1, px, py, px, py];
|
39 | }
|
40 |
|
41 | return ['C'].concat((0, line_2_cubic_1.lineToCubic)(px1, py1, px, py));
|
42 | default:
|
43 | }
|
44 | return segment;
|
45 | }
|
46 | exports.segmentToCubic = segmentToCubic;
|
47 |
|
\ | No newline at end of file |