148 lines
4.5 KiB
JavaScript
148 lines
4.5 KiB
JavaScript
![]() |
import freesewing from "freesewing";
|
||
|
import brian from "@freesewing/brian";
|
||
|
import pluginBundle from "@freesewing/plugin-bundle";
|
||
|
|
||
|
import config from "../config/config";
|
||
|
import { version } from "../package.json";
|
||
|
|
||
|
import back from "./back";
|
||
|
import front from "./front";
|
||
|
import sleeve from "./sleeve";
|
||
|
import pocket from "./pocket";
|
||
|
import pocketFacing from "./pocketfacing";
|
||
|
import hoodSide from "./hoodside";
|
||
|
import hoodCenter from "./hoodcenter";
|
||
|
import waistband from "./waistband";
|
||
|
import cuff from "./cuff";
|
||
|
|
||
|
var pattern = new freesewing.Pattern({ version: version, ...config }).with(
|
||
|
pluginBundle
|
||
|
);
|
||
|
|
||
|
pattern.draft = function() {
|
||
|
// base from Brian
|
||
|
this.parts.base = this.draftBase(new pattern.Part());
|
||
|
if (this.needs(["front", "sleeve", "pocket", "pocketFacing"])) {
|
||
|
this.parts.frontBase = this.draftFrontBase(
|
||
|
new pattern.Part().copy(this.parts.base)
|
||
|
);
|
||
|
this.parts.front = this.draftFront(
|
||
|
new pattern.Part().copy(this.parts.frontBase)
|
||
|
);
|
||
|
}
|
||
|
if (this.needs(["back", "sleeve"])) {
|
||
|
this.parts.backBase = this.draftBackBase(
|
||
|
new pattern.Part().copy(this.parts.base)
|
||
|
);
|
||
|
this.parts.back = this.draftBack(
|
||
|
new pattern.Part().copy(this.parts.backBase)
|
||
|
);
|
||
|
}
|
||
|
if (this.needs(["sleeve"])) {
|
||
|
let sleevecap = freesewing.patterns.brian.draftSleevecap(
|
||
|
new pattern.Part()
|
||
|
);
|
||
|
this.parts.sleeveBase = this.draftSleeveBase(
|
||
|
new pattern.Part().copy(sleevecap)
|
||
|
);
|
||
|
this.parts.sleeve = this.draftSleeve(
|
||
|
new pattern.Part().copy(this.parts.sleeveBase)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
if (this.needs(["pocket"])) {
|
||
|
this.parts.pocket = this.draftPocket(
|
||
|
new pattern.Part().copy(this.parts.front)
|
||
|
);
|
||
|
}
|
||
|
if (this.needs(["pocketFacing"])) {
|
||
|
this.parts.pocketFacing = this.draftPocketFacing(
|
||
|
new pattern.Part().copy(this.parts.pocket)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
if (this.needs(["hoodSide", "hoodCenter"])) {
|
||
|
this.parts.hoodSide = this.draftHoodSide(new pattern.Part());
|
||
|
}
|
||
|
|
||
|
if (this.needs(["hoodCenter"])) {
|
||
|
this.parts.hoodCenter = this.draftHoodCenter(new pattern.Part());
|
||
|
}
|
||
|
|
||
|
if (this.needs(["waistband"])) {
|
||
|
this.parts.waistband = this.draftWaistband(new pattern.Part());
|
||
|
}
|
||
|
|
||
|
if (this.needs(["cuff"])) {
|
||
|
this.parts.cuff = this.draftCuff(new pattern.Part());
|
||
|
}
|
||
|
|
||
|
// Don't render these unless specifically requested
|
||
|
if (!this.needs("base", true)) this.parts.base.render = false;
|
||
|
if (!this.needs("frontBase", true)) this.parts.frontBase.render = false;
|
||
|
if (!this.needs("backBase", true)) this.parts.backBase.render = false;
|
||
|
if (!this.needs("sleeveBase", true)) this.parts.sleeveBase.render = false;
|
||
|
|
||
|
return pattern;
|
||
|
};
|
||
|
|
||
|
pattern.draftBase = function(part) {
|
||
|
let complete = this.settings.complete;
|
||
|
let paperless = this.settings.paperless;
|
||
|
this.settings.complete = false;
|
||
|
this.settings.paperless = false;
|
||
|
let brianBase = freesewing.patterns.brian.draftBase(part);
|
||
|
this.settings.complete = complete;
|
||
|
this.settings.paperless = paperless;
|
||
|
|
||
|
return brianBase;
|
||
|
};
|
||
|
|
||
|
pattern.draftFrontBase = function(part) {
|
||
|
let complete = this.settings.complete;
|
||
|
let paperless = this.settings.paperless;
|
||
|
this.settings.complete = false;
|
||
|
this.settings.paperless = false;
|
||
|
let brianFront = freesewing.patterns.brian.draftFront(part);
|
||
|
this.settings.complete = complete;
|
||
|
this.settings.paperless = paperless;
|
||
|
|
||
|
return brianFront;
|
||
|
};
|
||
|
|
||
|
pattern.draftBackBase = function(part) {
|
||
|
let complete = this.settings.complete;
|
||
|
let paperless = this.settings.paperless;
|
||
|
this.settings.complete = false;
|
||
|
this.settings.paperless = false;
|
||
|
let brianBack = freesewing.patterns.brian.draftBack(part);
|
||
|
this.settings.complete = complete;
|
||
|
this.settings.paperless = paperless;
|
||
|
|
||
|
return brianBack;
|
||
|
};
|
||
|
|
||
|
pattern.draftSleeveBase = function(part) {
|
||
|
let complete = this.settings.complete;
|
||
|
let paperless = this.settings.paperless;
|
||
|
this.settings.complete = false;
|
||
|
this.settings.paperless = false;
|
||
|
let brianSleeve = freesewing.patterns.brian.draftSleeve(part);
|
||
|
this.settings.complete = complete;
|
||
|
this.settings.paperless = paperless;
|
||
|
|
||
|
return brianSleeve;
|
||
|
};
|
||
|
|
||
|
pattern.draftFront = part => front.draft(part);
|
||
|
pattern.draftBack = part => back.draft(part);
|
||
|
pattern.draftSleeve = part => sleeve.draft(part);
|
||
|
pattern.draftPocket = part => pocket.draft(part);
|
||
|
pattern.draftPocketFacing = part => pocketFacing.draft(part);
|
||
|
pattern.draftHoodSide = part => hoodSide.draft(part);
|
||
|
pattern.draftHoodCenter = part => hoodCenter.draft(part);
|
||
|
pattern.draftWaistband = part => waistband.draft(part);
|
||
|
pattern.draftCuff = part => cuff.draft(part);
|
||
|
|
||
|
export default pattern;
|