1
0
Fork 0

wrench: Moved repository and NPM package

This commit is contained in:
Joost De Cock 2018-07-21 16:00:13 +02:00
parent 3af7e4319c
commit 4d949cd56e
13 changed files with 551 additions and 2782 deletions

View file

@ -1,2 +1,15 @@
# brian <p align="center">
Port of the freesewing Brian Body Block pattern to node.js <a title="Go to freesewing.org" href="https://freesewing.org/"><img src="https://freesewing.org/img/logo/black.svg" align="center" width="150px" alt="Freesewing logo"/></a>
</p>
<h4 align="center"><em>&nbsp;<a title="Go to freesewing.org" href="https://freesewing.org/">freesewing</a></em>
<br><sup>a library for made-to-measure sewing patterns</sup>
</h4>
# freesewing / patterns / brian
Brian is a [freesewing](https://github.com/freesewing/freesewing) pattern
for a basic body block for menswear. It's the basis for many of our menswear patterns.
## Example
FIXME: Include example

File diff suppressed because one or more lines are too long

View file

@ -1,9 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Webpack App</title>
</head>
<body>
<script type="text/javascript" src="bundle.js"></script></body>
</html>

View file

@ -1,45 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _freesewing = require('freesewing');
var _freesewing2 = _interopRequireDefault(_freesewing);
var _config = require('../config/config');
var patternConfig = _interopRequireWildcard(_config);
var _pattern = require('freesewing/dist/lib/pattern');
var _back = require('./lib/back');
var _back2 = _interopRequireDefault(_back);
var _models = require('@freesewing/models');
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var brian = new _freesewing2.default.pattern(patternConfig);
brian.draft = function () {
var final = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
_back2.default.draft(brian, final);
return brian;
};
exports.default = brian;
// This is not for inclusion in production
console.log(_models.manSize38);
brian.settings.measurements = _models.manSize38;
brian.draft();
console.log(brian.parts.backBlock.points);

57
packages/brian/dist/node/back.js vendored Normal file
View file

@ -0,0 +1,57 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _freesewing = require('freesewing');
var _freesewing2 = _interopRequireDefault(_freesewing);
var _base = require('./base');
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var back = {
draft: function draft(part, context) {
var _F$utils$shorthand = _freesewing2.default.utils.shorthand(part, context),
measurements = _F$utils$shorthand.measurements,
options = _F$utils$shorthand.options,
points = _F$utils$shorthand.points,
paths = _F$utils$shorthand.paths,
snippets = _F$utils$shorthand.snippets,
macro = _F$utils$shorthand.macro,
final = _F$utils$shorthand.final,
paperless = _F$utils$shorthand.paperless;
console.log('shorthand', _freesewing2.default.utils.shorthand(part, context));
_base2.default.draft(part, context);
paths.seam = new _freesewing2.default.path().move(points.cbNeck).line(points.cbHips).line(points.hips).line(points.armhole).curve(points.armholeCp1, points.armholeCp2, points.armholeHollow).curve(points.armholeHollowCp1, points.armholeHollowCp2, points.armholePitch).curve(points.armholePitchCp1, points.armholePitchCp2, points.shoulder).line(points.neck).curve(points.neckCp1, points.cbNeck, points.cbNeck).close();
// Final?
var decorate = function decorate(part, context) {
macro('cof', {
from: points.cbNeck,
to: points.cbHips
});
};
if (final) {
decorate(part, context);
}
// Paperless?
var gauge = function gauge(part, context) {};
if (paperless) {
gauge(part, context);
}
}
};
exports.default = back;

View file

@ -8,25 +8,22 @@ var _freesewing = require('freesewing');
var _freesewing2 = _interopRequireDefault(_freesewing); var _freesewing2 = _interopRequireDefault(_freesewing);
var _pattern = require('freesewing/dist/lib/pattern');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var backBlock = { var base = {
draft: function draft(pattern) { draft: function draft(part, context) {
var final = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var _F$utils$shorthand = _freesewing2.default.utils.shorthand(part, context),
measurements = _F$utils$shorthand.measurements,
options = _F$utils$shorthand.options,
// Save some typing points = _F$utils$shorthand.points,
var measurements = pattern.settings.measurements || {}; paths = _F$utils$shorthand.paths,
var options = pattern.options; snippets = _F$utils$shorthand.snippets;
var values = pattern.values;
var points = pattern.parts.backBlock.points;
var paths = pattern.parts.backBlock.paths;
// Center back (cb) vertical axis // Center back (cb) vertical axis
points.cbNeck = new _freesewing2.default.point(0, options.backNeckCutout); points.cbNeck = new _freesewing2.default.point(0, options.backNeckCutout);
points.cbShoulder = new _freesewing2.default.point(0, points.cbNeck.y + (measurements.shoulderSlope - options.shoulderSlopeReduction) / 2); points.cbShoulder = new _freesewing2.default.point(0, (measurements.shoulderSlope - options.shoulderSlopeReduction) / 2);
points.cbArmhole = new _freesewing2.default.point(0, points.cbShoulder.y + (measurements.bicepsCircumference + options.bicepsEase) * options.armholeDepthFactor); points.cbArmhole = new _freesewing2.default.point(0, points.cbShoulder.y + (measurements.bicepsCircumference + options.bicepsEase) * options.armholeDepthFactor);
points.cbWaist = new _freesewing2.default.point(0, measurements.centerBackNeckToWaist + options.backNeckCutout); points.cbWaist = new _freesewing2.default.point(0, measurements.centerBackNeckToWaist + options.backNeckCutout);
points.cbHips = new _freesewing2.default.point(0, points.cbWaist.y + measurements.naturalWaistToHip); points.cbHips = new _freesewing2.default.point(0, points.cbWaist.y + measurements.naturalWaistToHip);
@ -41,16 +38,23 @@ var backBlock = {
points.shoulder = new _freesewing2.default.point(measurements.shoulderToShoulder / 2 + options.shoulderEase / 2, points.cbShoulder.y); points.shoulder = new _freesewing2.default.point(measurements.shoulderToShoulder / 2 + options.shoulderEase / 2, points.cbShoulder.y);
// Armhhole // Armhhole
points.armholePitch = new _freesewing2.default.point(measurements.shoulderToShoulder * options.acrossBackFactor / 2, points.armhole.y / 2 - points.shoulder.y / 2); points.armholePitch = new _freesewing2.default.point(measurements.shoulderToShoulder * options.acrossBackFactor / 2, points.shoulder.y + points.shoulder.dy(points.armhole) / 2);
points._tmp1 = new _freesewing2.default.point(points.armholePitch.x, points.armhole.y); points._tmp1 = new _freesewing2.default.point(points.armholePitch.x, points.armhole.y);
points._tmp2 = points._tmp1.shift(45, 10); points._tmp2 = points._tmp1.shift(45, 10);
points._tmp3 = _freesewing2.default.utils.beamsCross(points._tmp1, points._tmp2, points.armhole, points.armholePitch); points._tmp3 = _freesewing2.default.utils.beamsCross(points._tmp1, points._tmp2, points.armhole, points.armholePitch);
points.armholeHollow = points._tmp1.shiftFractionTowards(points._tmp3, 0.5); points.armholeHollow = points._tmp1.shiftFractionTowards(points._tmp3, 0.5);
points.armholeCp1 = points.armhole.shift(180, points._tmp1.dx(points.armhole) / 4);
points.armholeCp2 = points.armholeHollow.shift(-45, points.armholeHollow.dy(points.armhole) / 2);
points.armholeHollowCp1 = points.armholeHollow.shift(135, points.armholePitch.dx(points.armholeHollow));
points.armholeHollowCp2 = points.armholePitch.shift(-90, points.armholePitch.dy(points.armholeHollow) / 2);
points.armholePitchCp1 = points.armholePitch.shift(90, points.shoulder.dy(points.armholePitch) / 2);
points.armholePitchCp2 = points.shoulder.shiftTowards(points.neck, points.shoulder.dy(points.armholePitch) / 5).rotate(90, points.shoulder);
paths.test = new _freesewing2.default.path().move(points.cbNeck).line(points.armhole).line(points.cbHips).line(points.hips).curve(points.neck, points.shoulder, points.armholePitch); // Neck opening
points._tmp4 = points.neck.shiftTowards(points.shoulder, 10).rotate(-90, points.neck);
points.gridAnchor = points.cbHips; points.neckCp1 = _freesewing2.default.utils.beamCrossesY(points.neck, points._tmp4, points.cbNeck.y);
points.neckCp2 = points.cbNeck.shift(0, points.cbNeck.dx(points.neck) / 2);
} }
}; };
exports.default = backBlock; exports.default = base;

View file

@ -1,3 +0,0 @@
'use strict';
var data = 'Hello World';

View file

@ -8,9 +8,7 @@ var _config = require('../config/config');
var patternConfig = _interopRequireWildcard(_config); var patternConfig = _interopRequireWildcard(_config);
var _pattern = require('freesewing/dist/lib/pattern'); var _back = require('./back');
var _back = require('./lib/back');
var _back2 = _interopRequireDefault(_back); var _back2 = _interopRequireDefault(_back);
@ -21,9 +19,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
var brian = new _freesewing2.default.pattern(patternConfig); var brian = new _freesewing2.default.pattern(patternConfig);
brian.draft = function () { brian.draft = function () {
var final = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; _back2.default.draft(brian.parts.back, brian.context);
_back2.default.draft(brian, final);
return brian; return brian;
}; };

View file

@ -1,57 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _freesewing = require('freesewing');
var _freesewing2 = _interopRequireDefault(_freesewing);
var _pattern = require('freesewing/dist/lib/pattern');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var backBlock = {
draft: function draft(pattern) {
var final = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
// Save some typing
var measurements = pattern.settings.measurements || {};
var options = pattern.options;
var values = pattern.values;
var points = pattern.parts.backBlock.points;
var paths = pattern.parts.backBlock.paths;
var F = _freesewing2.default;
// Center back (cb) vertical axis
points.cbNeck = new F.point(0, options.backNeckCutout);
points.cbShoulder = new F.point(0, points.cbNeck.y + (measurements.shoulderSlope - options.shoulderSlopeReduction) / 2);
points.cbArmhole = new F.point(0, points.cbShoulder.y + (measurements.bicepsCircumference + options.bicepsEase) * options.armholeDepthFactor);
points.cbWaist = new F.point(0, measurements.centerBackNeckToWaist + options.backNeckCutout);
points.cbHips = new F.point(0, points.cbWaist.y + measurements.naturalWaistToHip);
// Side back (cb) vertical axis
points.armhole = new F.point(measurements.chestCircumference / 4 + options.chestEase / 4, points.cbArmhole.y);
points.waist = new F.point(points.armhole.x, points.cbWaist.y);
points.hips = new F.point(points.armhole.x, points.cbHips.y);
// Shoulder line
points.neck = new F.point(measurements.neckCircumference / options.collarFactor, 0);
points.shoulder = new F.point(measurements.shoulderToShoulder / 2 + options.shoulderEase / 2, points.cbShoulder.y);
// Armhhole
points.armholePitch = new F.point(measurements.shoulderToShoulder * options.acrossBackFactor / 2, points.armhole.y / 2 - points.shoulder.y / 2);
points._tmp1 = new F.point(points.armholePitch.x, points.armhole.y);
points._tmp2 = points._tmp1.shift(45, 10);
points._tmp3 = F.utils.beamsCross(points._tmp1, points._tmp2, points.armhole, points.armholePitch);
points.armholeHollow = points._tmp1.shiftFractionTowards(points._tmp3, 0.5);
paths.test = new F.path().move(points.cbNeck).line(points.armhole).line(points.cbHips).line(points.hips).curve(points.neck, points.shoulder, points.armholePitch);
points.gridAnchor = points.cbHips;
}
};
exports.default = backBlock;

View file

@ -1,45 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _freesewing = require('freesewing');
var _freesewing2 = _interopRequireDefault(_freesewing);
var _config = require('../config/config');
var patternConfig = _interopRequireWildcard(_config);
var _pattern = require('freesewing/dist/lib/pattern');
var _back = require('./lib/back');
var _back2 = _interopRequireDefault(_back);
var _models = require('@freesewing/models');
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var brian = new _freesewing2.default.pattern(patternConfig);
brian.draft = function () {
var final = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
_back2.default.draft(brian, final);
return brian;
};
exports.default = brian;
// This is not for inclusion in production
console.log(_models.manSize38);
brian.settings.measurements = _models.manSize38;
brian.draft();
console.log(brian.parts.backBlock.points);

View file

@ -24,31 +24,58 @@
wristCircumference: 190 wristCircumference: 190
}; };
pattern.settings.paperless = true; pattern.settings.paperless = true;
pattern.on('preRenderSvg', function(next) { //pattern.on('preRenderSvg', function(next) {
this.attributes.add("viewBox", "-10 -10 600 800"); // this.attributes.add("viewBox", "-10 -10 600 800");
next(); // next();
}); //});
pattern.macro('cof', function(next, so) { var macroPlugin = {
let points = this.points; hooks: {
points.cofStart = so.from.shiftTowards(so.to, 30); preRenderSvg: function(next) {
points.cofEnd = so.to.shiftTowards(so.from, 30); console.log('in mixed plugin hooks part');
points.cofVia1 = so.from.shiftTowards(so.to, 50).rotate(90,points.cofStart); this.attributes.add("viewBox", "-12 -12 600 800");
points.cofVia2 = so.to.shiftTowards(so.from, 50).rotate(-90,points.cofEnd); next();
this.paths.cof = new this.path() }
.move(points.cofStart) }
.line(points.cofVia1) , macros: {
.line(points.cofVia2) cof: function(next, so) {
.line(points.cofEnd) console.log('in mixed plugin macros part');
.attr('class', 'cut-on-fold'); let points = this.points;
next(); points.cofStart = so.from.shiftTowards(so.to, 30);
}); points.cofEnd = so.to.shiftTowards(so.from, 30);
points.cofVia1 = so.from.shiftTowards(so.to, 50).rotate(90,points.cofStart);
points.cofVia2 = so.to.shiftTowards(so.from, 50).rotate(-90,points.cofEnd);
this.paths.cof = new this.path()
.move(points.cofStart)
.line(points.cofVia1)
.line(points.cofVia2)
.line(points.cofEnd)
.attr('class', 'cut-on-fold');
next();
}
}
}
//pattern.macro('cof', function(next, so) {
// let points = this.points;
// points.cofStart = so.from.shiftTowards(so.to, 30);
// points.cofEnd = so.to.shiftTowards(so.from, 30);
// points.cofVia1 = so.from.shiftTowards(so.to, 50).rotate(90,points.cofStart);
// points.cofVia2 = so.to.shiftTowards(so.from, 50).rotate(-90,points.cofEnd);
// this.paths.cof = new this.path()
// .move(points.cofStart)
// .line(points.cofVia1)
// .line(points.cofVia2)
// .line(points.cofEnd)
// .attr('class', 'cut-on-fold');
// next();
//});
//pattern.on('postRenderSvg', function(next) { //pattern.on('postRenderSvg', function(next) {
// this.svg = this.svg.replace('green', 'yellow'); // this.svg = this.svg.replace('green', 'yellow');
// next(); // next();
//}); //});
//console.log(freesewing_theme_default); //console.log(freesewing_theme_default);
pattern.loadPlugin(freesewing_theme_designer); pattern.withPlugin(freesewing_theme_designer);
pattern.loadPlugin(freesewing_theme_default); pattern.withPlugin(freesewing_theme_default);
pattern.withPlugin(macroPlugin);
pattern.draft(); pattern.draft();
document.getElementById("svg").innerHTML = pattern.render(); document.getElementById("svg").innerHTML = pattern.render();
function pointHover(evt) { function pointHover(evt) {

File diff suppressed because it is too large Load diff

View file

@ -1,42 +1,43 @@
{ {
"name": "@freesewing/brian", "name": "@freesewing-patterns/brian",
"version": "0.5.0", "version": "0.1.0",
"description": "A basic body block for menswear", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"license": "MIT",
"description": "Freesewing pattern for a basic body block for menswear",
"keywords": [
"freesewing",
"macro",
"sewing",
"patterns",
"cut on fold"
],
"homepage": "https://github.com/freesewing-patterns/brian#readme",
"repository": "github:freesewing-patterns/brian",
"bugs": {
"url": "https://github.com/freesewing-patterns/brian/issues"
},
"main": "dist/node/index.js", "main": "dist/node/index.js",
"unpkg": "dist/browser/bundle.js", "unpkg": "dist/browser/bundle.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"clean": "rimraf dist",
"nodebuild": "babel src -d dist/node", "nodebuild": "babel src -d dist/node",
"browserbuild": "npx webpack-cli --config webpack.config.js", "browserbuild": "npx webpack-cli --config webpack.config.js",
"watch": "npx webpack-cli --config webpack.config.js --watch", "watch": "npx webpack-cli --config webpack.config.js --watch",
"run": "nodemon node dist/node/index.js", "build": "npm run clean && npm run nodebuild && npm run browserbuild",
"dev": "webpack-dev-server --open", "dev": "webpack-dev-server --open"
"rdev": "webpack-dev-server --disable-host-check --public joost.freesewing.org:8080"
}, },
"repository": {
"type": "git",
"url": "git+https://github.com/joostdecock/brian.git"
},
"author": "Joost De Cock <joost@decock.org> (https://twitter.com/j__st)",
"license": "MIT",
"bugs": {
"url": "https://github.com/joostdecock/brian/issues"
},
"homepage": "https://github.com/joostdecock/brian#readme",
"dependencies": { "dependencies": {
"@freesewing/theme-default": "0.0.2",
"freesewing": "^0.3.1" "freesewing": "^0.3.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.0.0-beta.53", "@babel/core": "7.0.0-beta.53",
"@babel/preset-env": "7.0.0-beta.53", "@babel/preset-env": "7.0.0-beta.53",
"@freesewing/models": "0.1.1", "babel-preset-env": "1.7.0",
"rimraf": "^2.6.2",
"babel-cli": "6.26.0", "babel-cli": "6.26.0",
"babel-loader": "8.0.0-beta.4", "babel-loader": "8.0.0-beta.4",
"babel-preset-env": "1.7.0", "webpack": "4.16.0",
"babel-watch": "2.0.7", "webpack-cli": "3.0.8"
"webpack": "^4.16.1",
"webpack-cli": "3.0.8",
"webpack-dev-server": "3.1.4"
} }
} }