1
0
Fork 0
freesewing/packages/rendertest/src/snippets.js
2022-01-19 16:23:13 +01:00

64 lines
2 KiB
JavaScript

export default function (part, demo = false) {
const { Point, Path, points, paths, snippets, Snippet, store, options } = part.shorthand()
if (options.only === 'snippets' || demo) {
let y = store.get('y')
let w = store.get('w')
const snips = {
logo: 35,
notch: 15,
bnotch: 15,
button: 15,
buttonhole: 25,
'buttonhole-start': 15,
'buttonhole-end': 25,
'snap-socket': 25,
'snap-stud': 15,
}
y += 20
if (!demo)
paths.noClip = new Path()
.move(new Point(0, y - 5))
.line(new Point(10, y - 5))
.attr('class', 'hidden')
else
points.snippets = new Point(0, y)
.attr('data-text', 'Snippets')
.attr('data-text-class', 'text-lg bold')
y += 10
points['sl1'] = new Point(w * 0.25, y)
points['sl2'] = new Point(w * 0.5, y)
points['sl3'] = new Point(w * 0.75, y)
points['sl1']
.attr('data-text', 'data-scale: 1\ndata-rotate: 0')
.attr('data-text-class', 'center text')
.attr('data-text-lineheight', 7)
points['sl2']
.attr('data-text', 'data-scale: 1.25\ndata-rotate: 0')
.attr('data-text-class', 'center text')
.attr('data-text-lineheight', 7)
points['sl3']
.attr('data-text', 'data-scale: 0.75\ndata-rotate: 90')
.attr('data-text-class', 'center text')
.attr('data-text-lineheight', 7)
y += 55
for (let i in snips) {
points['snt' + i] = new Point(0, y)
points['snt' + i].attr('data-text', i)
points['sn1' + i] = new Point(w * 0.3, y)
points['sn2' + i] = new Point(w * 0.55, y)
points['sn3' + i] = new Point(w * 0.8, y)
snippets['sn1' + i] = new Snippet(i, points['sn1' + i])
snippets['sn2' + i] = new Snippet(i, points['sn2' + i])
snippets['sn2' + i].attr('data-scale', 1.25)
snippets['sn3' + i] = new Snippet(i, points['sn3' + i])
snippets['sn3' + i].attr('data-scale', 0.75).attr('data-rotate', 90)
y += snips[i]
}
store.set('y', y)
if (!demo) paths.noClip.line(new Point(w, y))
}
return part
}