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

View file

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

View file

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

View file

@ -16,12 +16,12 @@ export default {
commonjs(),
babel({
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"],
output: {

View file

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