MCPcopy Create free account
hub / github.com/Code-Bullet/Jump-King / processPath

Function processPath

libraries/p5.js:29925–29976  ·  view source on GitHub ↗
(path, d, pcom)

Source from the content-addressed store, hash-verified

29923 attrs2 = { x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null },
29924
29925 processPath = function(path, d, pcom) {
29926 var nx, ny, tq = { T: 1, Q: 1 };
29927 if (!path) { return ['C', d.x, d.y, d.x, d.y, d.x, d.y]; }
29928 if (!(path[0] in tq)) { d.qx = d.qy = null; }
29929 switch (path[0]) {
29930 case 'M':
29931 d.X = path[1];
29932 d.Y = path[2];
29933 break;
29934 case 'A':
29935 path = ['C'].concat(a2c.apply(0, [d.x, d.y].concat(path.slice(1))));
29936 break;
29937 case 'S':
29938 if (pcom === 'C' || pcom === 'S') {
29939 nx = d.x * 2 - d.bx;
29940 ny = d.y * 2 - d.by;
29941 } else {
29942 nx = d.x;
29943 ny = d.y;
29944 }
29945 path = ['C', nx, ny].concat(path.slice(1));
29946 break;
29947 case 'T':
29948 if (pcom === 'Q' || pcom === 'T') {
29949 d.qx = d.x * 2 - d.qx;
29950 d.qy = d.y * 2 - d.qy;
29951 } else {
29952 d.qx = d.x;
29953 d.qy = d.y;
29954 }
29955 path = ['C'].concat(q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));
29956 break;
29957 case 'Q':
29958 d.qx = path[1];
29959 d.qy = path[2];
29960 path = ['C'].concat(q2c(d.x,d.y,path[1],path[2],path[3],path[4]));
29961 break;
29962 case 'L':
29963 path = ['C'].concat(l2c(d.x, d.y, path[1], path[2]));
29964 break;
29965 case 'H':
29966 path = ['C'].concat(l2c(d.x, d.y, path[1], d.y));
29967 break;
29968 case 'V':
29969 path = ['C'].concat(l2c(d.x, d.y, d.x, path[1]));
29970 break;
29971 case 'Z':
29972 path = ['C'].concat(l2c(d.x, d.y, d.X, d.Y));
29973 break;
29974 }
29975 return path;
29976 },
29977
29978 fixArc = function(pp, i) {
29979 if (pp[i].length > 7) {

Callers 1

path2curveFunction · 0.85

Calls 2

q2cFunction · 0.85
l2cFunction · 0.85

Tested by

no test coverage detected