1
0
Fork 0
freesewing/packages/brian/src/index.js

49 lines
1.5 KiB
JavaScript
Raw Normal View History

import freesewing from "freesewing";
2018-08-11 14:13:40 +02:00
import pluginBundle from "@freesewing/plugin-bundle";
import config from "../config/config";
import { version } from "../package.json";
import base from "./base";
2018-07-24 10:16:31 +00:00
import back from "./back";
2018-08-03 17:44:55 +02:00
import front from "./front";
import sleevecap from "./sleevecap";
2018-08-06 16:19:12 +02:00
import sleeve from "./sleeve";
2018-07-26 13:43:45 +00:00
2018-08-11 14:13:40 +02:00
var pattern = new freesewing.Pattern({ version: version, ...config }).with(
pluginBundle
);
pattern.draft = function() {
2018-08-11 14:13:40 +02:00
this.parts.base = this.draftBase(new pattern.Part());
if (!this.needs("base", true)) this.parts.base.render = false;
if (this.needs(["back", "front", "sleeve", "sleevecap"])) {
this.parts.back = this.draftBack(new pattern.Part().copy(this.parts.base));
}
if (this.needs(["front", "sleeve", "sleevecap"])) {
this.parts.front = this.draftFront(
new pattern.Part().copy(this.parts.back)
);
}
if (this.needs(["sleeve", "sleevecap"])) {
this.parts.sleevecap = this.draftSleevecap(new pattern.Part());
// Don't render sleevecap unless specifically requested
if (!this.needs("sleevecap", true)) this.parts.sleevecap.render = false;
}
if (this.needs("sleeve")) {
this.parts.sleeve = this.draftSleeve(
new pattern.Part().copy(this.parts.sleevecap)
);
}
return pattern;
2018-07-24 10:16:31 +00:00
};
2018-08-11 14:13:40 +02:00
pattern.draftBase = part => base.draft(part);
pattern.draftBack = part => back.draft(part);
pattern.draftFront = part => front.draft(part);
pattern.draftSleevecap = part => sleevecap.draft(part);
2018-08-11 14:13:40 +02:00
pattern.draftSleeve = part => sleeve.draft(part);
export default pattern;