segment-2-cubic.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { arcToCubic } from './arc-2-cubic';
  2. import { quadToCubic } from './quad-2-cubic';
  3. import { lineToCubic } from './line-2-cubic';
  4. export function segmentToCubic(segment, params) {
  5. if ('TQ'.indexOf(segment[0]) < 0) {
  6. params.qx = null;
  7. params.qy = null;
  8. }
  9. var _a = segment.slice(1), s1 = _a[0], s2 = _a[1];
  10. switch (segment[0]) {
  11. case 'M':
  12. params.x = s1;
  13. params.y = s2;
  14. return segment;
  15. case 'A':
  16. return ['C'].concat(arcToCubic.apply(0, [params.x1, params.y1].concat(segment.slice(1))));
  17. case 'Q':
  18. params.qx = s1;
  19. params.qy = s2;
  20. return ['C'].concat(quadToCubic.apply(0, [params.x1, params.y1].concat(segment.slice(1))));
  21. case 'L':
  22. // @ts-ignore
  23. return ['C'].concat(lineToCubic(params.x1, params.y1, segment[1], segment[2]));
  24. case 'H':
  25. // @ts-ignore
  26. return ['C'].concat(lineToCubic(params.x1, params.y1, segment[1], params.y1));
  27. case 'V':
  28. // @ts-ignore
  29. return ['C'].concat(lineToCubic(params.x1, params.y1, params.x1, segment[1]));
  30. case 'Z':
  31. // @ts-ignore
  32. return ['C'].concat(lineToCubic(params.x1, params.y1, params.x, params.y));
  33. default:
  34. }
  35. return segment;
  36. }
  37. //# sourceMappingURL=segment-2-cubic.js.map