export default function(part) { let { points, Path, paths, macro } = part.shorthand() let rotateThese = [ 'edgeTopLeftCp', 'edgeTop', 'tipRight', 'tipRightTop', 'tipRightTopStart', 'tipRightTopCp1', 'tipRightTopCp2', 'tipRightTopEnd', 'tipRightBottomStart', 'tipRightBottomCp1', 'tipRightBottomCp2', 'tipRightBottomEnd', 'tipRightBottom', 'top', 'topCp2' ] while (points.tipRightBottomStart.x > -1) { for (let p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft) } points.snapLeft = points.top.shiftFractionTowards(points.edgeTop, 0.5) macro('round', { from: points.edgeTop, to: points.tipRight, via: points.tipRightTop, prefix: 'tipRightTop', render: true }) macro('round', { from: points.tipRight, to: points.top, via: points.tipRightBottom, prefix: 'tipRightBottom', render: true }) paths.rect = new Path() .move(points.edgeTop) .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft) .line(points.bottomLeft) .line(points.bottomRight) .line(points.edgeRight) .curve(points.edgeRightCp, points.edgeTopRightCp, points.edgeTop) .close() return part }