segment-2-cubic.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. if ('TQ'.indexOf(segment[0]) < 0) {
  9. params.qx = null;
  10. params.qy = null;
  11. }
  12. var _a = segment.slice(1), s1 = _a[0], s2 = _a[1];
  13. switch (segment[0]) {
  14. case 'M':
  15. params.x = s1;
  16. params.y = s2;
  17. return segment;
  18. case 'A':
  19. return ['C'].concat(arc_2_cubic_1.arcToCubic.apply(0, [params.x1, params.y1].concat(segment.slice(1))));
  20. case 'Q':
  21. params.qx = s1;
  22. params.qy = s2;
  23. return ['C'].concat(quad_2_cubic_1.quadToCubic.apply(0, [params.x1, params.y1].concat(segment.slice(1))));
  24. case 'L':
  25. // @ts-ignore
  26. return ['C'].concat(line_2_cubic_1.lineToCubic(params.x1, params.y1, segment[1], segment[2]));
  27. case 'H':
  28. // @ts-ignore
  29. return ['C'].concat(line_2_cubic_1.lineToCubic(params.x1, params.y1, segment[1], params.y1));
  30. case 'V':
  31. // @ts-ignore
  32. return ['C'].concat(line_2_cubic_1.lineToCubic(params.x1, params.y1, params.x1, segment[1]));
  33. case 'Z':
  34. // @ts-ignore
  35. return ['C'].concat(line_2_cubic_1.lineToCubic(params.x1, params.y1, params.x, params.y));
  36. default:
  37. }
  38. return segment;
  39. }
  40. exports.segmentToCubic = segmentToCubic;
  41. //# sourceMappingURL=segment-2-cubic.js.map