mitjajez/SONCE

View on GitHub
imports/ui/lib/svg.js

Summary

Maintainability
A
1 hr
Test Coverage
import Snap from 'snapsvg';

export const getCanvasPoint = (T, pan, zoom) => {
  return {
    x: Math.round((T.x - pan.x) / zoom),
    y: Math.round((T.y - pan.y) / zoom),
  };
};

export const getLastPointFromPathD = (d) => {
  const p = {x:0, y:0};
  Snap.parsePathString(d).map((s) => {
    switch (s[0]) {
    case 'M':
      p.x = s[1];
      p.y = s[2];
      break;
    case 'm':
      p.x += s[1];
      p.y += s[2];
      break;
    case 'H':
      p.x = s[1];
      break;
    case 'h':
      p.x += s[1];
      break;
    case 'V':
      p.y = s[1];
      break;
    case 'v':
      p.y += s[1];
      break;
    case 'L':
      p.x = s[1];
      p.y = s[2];
      break;
    case 'l':
      p.x += s[1];
      p.y += s[2];
      break;
    default:
      // console.log(`${s[0]} Not supported!`);
    }
    // console.log( `${i}: ${s} -> (${p.x},${p.y})`);
  });
  return p;
};