1
0
Fork 0

boom: Patterns are classes now and need to be instantiated

This commit is contained in:
Joost De Cock 2018-12-07 15:56:48 +01:00
parent a7bd90c3e2
commit 7f7de65ec3
5 changed files with 107 additions and 63 deletions

View file

@ -6,43 +6,76 @@
</head> </head>
<body> <body>
<div id="svg"></div> <div id="svg"></div>
<script type="text/javascript" src="node_modules/freesewing/dist/browser.js"></script> <!-- <script type="text/javascript" src="node_modules/freesewing/dist/browser.js"></script> -->
<script type="text/javascript" src="../../freesewing/dist/browser.js"></script>
<script type="text/javascript" src="node_modules/@freesewing/plugin-bundle/dist/browser.js"></script> <script type="text/javascript" src="node_modules/@freesewing/plugin-bundle/dist/browser.js"></script>
<script type="text/javascript" src="dist/browser.js"></script> <script type="text/javascript" src="dist/browser.js"></script>
<script type="text/javascript" src="node_modules/@freesewing/plugin-theme/dist/browser.js"></script> <!-- <script type="text/javascript" src="node_modules/@freesewing/plugin-theme/dist/browser.js"></script> -->
<script type="text/javascript" src="../../plugins/plugin-theme/dist/browser.js"></script>
<script type="text/javascript" src="node_modules/@freesewing/plugin-designer/dist/browser.js"></script> <script type="text/javascript" src="node_modules/@freesewing/plugin-designer/dist/browser.js"></script>
<script type="text/javascript" src="node_modules/@freesewing/plugin-debug/dist/browser.js"></script> <script type="text/javascript" src="node_modules/@freesewing/plugin-debug/dist/browser.js"></script>
<script type="text/javascript" src="node_modules/@freesewing/plugin-validate/dist/browser.js"></script> <!-- <script type="text/javascript" src="node_modules/@freesewing/plugin-validate/dist/browser.js"></script> -->
<script type="text/javascript" src="../../plugins/plugin-validate/dist/browser.js"></script>
<script type="text/javascript" src="node_modules/@freesewing/plugin-i18n/dist/browser.js"></script> <script type="text/javascript" src="node_modules/@freesewing/plugin-i18n/dist/browser.js"></script>
<script type="text/javascript" src="node_modules/@freesewing/models/dist/browser.js"></script> <script type="text/javascript" src="node_modules/@freesewing/models/dist/browser.js"></script>
<script type="text/javascript" src="node_modules/@freesewing/antman/dist/browser.js"></script> <script type="text/javascript" src="node_modules/@freesewing/antman/dist/browser.js"></script>
<script> <script>
console.log('adding hooks to pattern');
var pattern = freesewing.patterns.brian var pattern = freesewing.patterns.brian
.with(freesewing.plugins.debug) .with(freesewing.plugins.debug)
.with(freesewing.plugins.validate)
.with(freesewing.plugins.theme) .with(freesewing.plugins.theme)
.with(freesewing.plugins.designer) .with(freesewing.plugins.designer)
.with(freesewing.plugins.validate)
.with(freesewing.plugins.i18n) .with(freesewing.plugins.i18n)
; ;
pattern.settings.locale = 'nl'; //pattern.on('postSample', function(next) {
pattern.settings.paperless = true; // console.log('postSample hook');
// next();
//});
//pattern.on('preSample', function(next) {
// console.log('preSample hook');
// next();
//});
//pattern.on('preDraft', function(next) {
// console.log('preDraft hook');
// next();
//});
//pattern.on('postDraft', function(next) {
// console.log('postDraft hook');
// next();
//});
//pattern.settings.locale = 'nl';
//pattern.settings.paperless = true;
//pattern.settings.complete = false; //pattern.settings.complete = false;
pattern.settings.measurements = freesewing.models.men.manSize38; // pattern.settings.measurements = freesewing.models.men.manSize38;
pattern.settings.sa = 10; pattern.settings.measurements = {
pattern.settings.units = 'metric'; bicepsCircumference: 305,
pattern.settings.sample = { centerBackNeckToWaist: 495,
type: 'models', chestCircumference: 965,
focus: 'manSize34', hipsCircumference: 838,
models: freesewing.models.men naturalWaistToHip: 110,
} neckCircumference: 391,
pattern.settings.nly= ['base']; shoulderSlope: 49,
shoulderToShoulder: 444,
shoulderToWrist: 680,
wristCircumference: 185,
}
//pattern.settings.sa = 10;
//pattern.settings.units = 'metric';
//pattern.settings.sample = {
// type: 'models',
// focus: 'manSize34',
// models: freesewing.models.men
//}
//pattern.settings.nly= ['base'];
//pattern.options.brianFitSleeve = false; //pattern.options.brianFitSleeve = false;
//pattern.options.brianFitCollar = false; //pattern.options.brianFitCollar = false;
//pattern.sampleOption('shoulderSlopeReduction'); //pattern.sampleOption('shoulderSlopeReduction');
//pattern.sampleMeasurement('shoulderSlope'); //pattern.sampleMeasurement('shoulderSlope');
//pattern.sampleModels(freesewing.models.men, 'manSize34'); //pattern.sampleModels(freesewing.models.men, 'manSize34');
//pattern.sample(); //pattern.sample();
pattern.draft(); console.log('settings', pattern.settings);
console.log('draft return value', pattern.draft());
document.getElementById("svg").innerHTML = pattern.render(); document.getElementById("svg").innerHTML = pattern.render();
function pointHover(evt) { function pointHover(evt) {

View file

@ -1627,9 +1627,9 @@
} }
}, },
"bezier-js": { "bezier-js": {
"version": "2.2.15", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-2.2.15.tgz", "resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-2.3.1.tgz",
"integrity": "sha512-T2ayoZLq/wG5tNUj0yNGchWp+CY64bfysnPJ/ESszsI8QVo2fDQDJ/HyFj9cyJSkJFick1E0LsSCod22eU0D8w==" "integrity": "sha512-nFpFL9tuayvlHfWh6xM7OHeTZvwr74+6KnzO3eNZMt0BC0cqb9lCTc9C8OVzrHBvbrNwriTw7XaF2SBsWQJLZA=="
}, },
"big.js": { "big.js": {
"version": "3.2.0", "version": "3.2.0",
@ -2752,11 +2752,11 @@
} }
}, },
"freesewing": { "freesewing": {
"version": "0.17.0", "version": "0.18.3",
"resolved": "https://registry.npmjs.org/freesewing/-/freesewing-0.17.0.tgz", "resolved": "https://registry.npmjs.org/freesewing/-/freesewing-0.18.3.tgz",
"integrity": "sha512-LanZsKfdAan5LQH7HvTlRwF6cFxr64G666OeCY9Ij7NnZ79/+AEuffT0lrLpRa1dNU3SY7BWPlnkA8SMeiB8+Q==", "integrity": "sha512-uXBnN1IRqsH6QhYoM9juNo76GbzO75rSXgWrbMFHZcqSLw4RsCxRLppl5LqOAJ1pEYAWh7W9disxS53j5Eum4Q==",
"requires": { "requires": {
"bezier-js": "^2.2.13", "bezier-js": "^2.2.15",
"bin-pack": "1.0.2", "bin-pack": "1.0.2",
"hooks": "^0.3.2" "hooks": "^0.3.2"
} }

View file

@ -47,7 +47,7 @@
}, },
"dependencies": { "dependencies": {
"@freesewing/plugin-bundle": "^0.3", "@freesewing/plugin-bundle": "^0.3",
"freesewing": "^0.17" "freesewing": "^0.18.3"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.0.0-beta.56", "@babel/core": "7.0.0-beta.56",

View file

@ -16,12 +16,12 @@ export default {
commonjs(), commonjs(),
babel({ babel({
exclude: "node_modules/**" exclude: "node_modules/**"
}),
terser({
output: {
preamble: `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */`
}
}) })
// terser({
// output: {
// preamble: `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */`
// }
// })
], ],
external: ["freesewing", "@freesewing/plugin-bundle"], external: ["freesewing", "@freesewing/plugin-bundle"],
output: { output: {

View file

@ -1,48 +1,59 @@
import freesewing from "freesewing"; import freesewing from "freesewing";
import pluginBundle from "@freesewing/plugin-bundle"; import pluginBundle from "@freesewing/plugin-bundle";
import config from "../config/config"; import config from "../config/config";
import { version } from "../package.json"; import { version } from "../package.json";
import base from "./base"; import base from "./base";
import back from "./back"; import back from "./back";
import front from "./front"; import front from "./front";
import sleevecap from "./sleevecap"; import sleevecap from "./sleevecap";
import sleeve from "./sleeve"; import sleeve from "./sleeve";
var pattern = new freesewing.Pattern({ version: version, ...config }).with( export default class Brian extends freesewing.Pattern {
pluginBundle constructor(settings = false) {
); super({ version: version, ...config }).with(pluginBundle);
if (settings !== false) {
pattern.draft = function() { for (let key of Object.keys(settings)) {
this.parts.base = this.draftBase(new pattern.Part()); this.settings[key] = settings[key];
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; _draft() {
}; this.parts.base = this.draftBase(new this.Part());
if (!this.needs("base", true)) this.parts.base.render = false;
if (this.needs(["back", "front", "sleeve", "sleevecap"])) {
this.parts.back = this.draftBack(new this.Part().copy(this.parts.base));
}
if (this.needs(["front", "sleeve", "sleevecap"])) {
this.parts.front = this.draftFront(new this.Part().copy(this.parts.back));
}
if (this.needs(["sleeve", "sleevecap"])) {
this.parts.sleevecap = this.draftSleevecap(new this.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 this.Part().copy(this.parts.sleevecap)
);
}
pattern.draftBase = part => base.draft(part); return this;
pattern.draftBack = part => back.draft(part); }
pattern.draftFront = part => front.draft(part);
pattern.draftSleevecap = part => sleevecap.draft(part);
pattern.draftSleeve = part => sleeve.draft(part);
export default pattern; draftBase(part) {
return base.draft(part);
}
draftBack(part) {
return back.draft(part);
}
draftFront(part) {
return front.draft(part);
}
draftSleevecap(part) {
return sleevecap.draft(part);
}
draftSleeve(part) {
return sleeve.draft(part);
}
}