1
0
Fork 0
freesewing/packages/plugin-grainline/src/index.js

31 lines
935 B
JavaScript
Raw Normal View History

2018-08-10 18:48:21 +02:00
import markers from "./markers";
2018-08-10 18:42:20 +02:00
import { version, name } from "../package.json";
export default {
name: name,
version: version,
hooks: {
preRender: function(svg) {
if(svg.attributes.get('freesewing:plugin-grainline') === false) {
svg.attributes.set('freesewing:plugin-grainline', version);
svg.defs += markers;
}
2018-08-10 18:42:20 +02:00
}
},
macros: {
grainline: function(so) {
let points = this.points;
points.grainlineFrom = so.from.shiftFractionTowards(so.to, 0.05);
points.grainlineTo = so.to.shiftFractionTowards(so.from, 0.05);
this.paths.grainline = new this.Path()
.move(points.grainlineFrom)
.line(points.grainlineTo)
.attr("class", "note")
.attr("marker-start", "url(#grainlineFrom)")
.attr("marker-end", "url(#grainlineTo)")
.attr("data-text", "grainline")
.attr("data-text-class", "center fill-note");
}
}
};