wrench: Moved repository and NPM package
This commit is contained in:
parent
3af7e4319c
commit
4d949cd56e
13 changed files with 551 additions and 2782 deletions
|
@ -1,2 +1,15 @@
|
|||
# brian
|
||||
Port of the freesewing Brian Body Block pattern to node.js
|
||||
<p align="center">
|
||||
<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> <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
|
||||
|
|
2
packages/brian/dist/browser/bundle.js
vendored
2
packages/brian/dist/browser/bundle.js
vendored
File diff suppressed because one or more lines are too long
9
packages/brian/dist/browser/index.html
vendored
9
packages/brian/dist/browser/index.html
vendored
|
@ -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>
|
45
packages/brian/dist/index.js
vendored
45
packages/brian/dist/index.js
vendored
|
@ -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
57
packages/brian/dist/node/back.js
vendored
Normal 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;
|
|
@ -8,25 +8,22 @@ 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 base = {
|
||||
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;
|
||||
|
||||
// Center back (cb) vertical axis
|
||||
|
||||
|
||||
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.cbWaist = new _freesewing2.default.point(0, measurements.centerBackNeckToWaist + options.backNeckCutout);
|
||||
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);
|
||||
|
||||
// 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._tmp2 = points._tmp1.shift(45, 10);
|
||||
points._tmp3 = _freesewing2.default.utils.beamsCross(points._tmp1, points._tmp2, points.armhole, points.armholePitch);
|
||||
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);
|
||||
|
||||
points.gridAnchor = points.cbHips;
|
||||
// Neck opening
|
||||
points._tmp4 = points.neck.shiftTowards(points.shoulder, 10).rotate(-90, points.neck);
|
||||
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;
|
3
packages/brian/dist/node/browser.js
vendored
3
packages/brian/dist/node/browser.js
vendored
|
@ -1,3 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
var data = 'Hello World';
|
8
packages/brian/dist/node/index.js
vendored
8
packages/brian/dist/node/index.js
vendored
|
@ -8,9 +8,7 @@ var _config = require('../config/config');
|
|||
|
||||
var patternConfig = _interopRequireWildcard(_config);
|
||||
|
||||
var _pattern = require('freesewing/dist/lib/pattern');
|
||||
|
||||
var _back = require('./lib/back');
|
||||
var _back = require('./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);
|
||||
|
||||
brian.draft = function () {
|
||||
var final = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
||||
|
||||
_back2.default.draft(brian, final);
|
||||
_back2.default.draft(brian.parts.back, brian.context);
|
||||
|
||||
return brian;
|
||||
};
|
||||
|
|
57
packages/brian/dist/node/lib/back.js
vendored
57
packages/brian/dist/node/lib/back.js
vendored
|
@ -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;
|
45
packages/brian/dist/node/main.js
vendored
45
packages/brian/dist/node/main.js
vendored
|
@ -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);
|
|
@ -24,11 +24,21 @@
|
|||
wristCircumference: 190
|
||||
};
|
||||
pattern.settings.paperless = true;
|
||||
pattern.on('preRenderSvg', function(next) {
|
||||
this.attributes.add("viewBox", "-10 -10 600 800");
|
||||
//pattern.on('preRenderSvg', function(next) {
|
||||
// this.attributes.add("viewBox", "-10 -10 600 800");
|
||||
// next();
|
||||
//});
|
||||
var macroPlugin = {
|
||||
hooks: {
|
||||
preRenderSvg: function(next) {
|
||||
console.log('in mixed plugin hooks part');
|
||||
this.attributes.add("viewBox", "-12 -12 600 800");
|
||||
next();
|
||||
});
|
||||
pattern.macro('cof', function(next, so) {
|
||||
}
|
||||
}
|
||||
, macros: {
|
||||
cof: function(next, so) {
|
||||
console.log('in mixed plugin macros part');
|
||||
let points = this.points;
|
||||
points.cofStart = so.from.shiftTowards(so.to, 30);
|
||||
points.cofEnd = so.to.shiftTowards(so.from, 30);
|
||||
|
@ -41,14 +51,31 @@ pattern.macro('cof', function(next, so) {
|
|||
.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) {
|
||||
// this.svg = this.svg.replace('green', 'yellow');
|
||||
// next();
|
||||
//});
|
||||
//console.log(freesewing_theme_default);
|
||||
pattern.loadPlugin(freesewing_theme_designer);
|
||||
pattern.loadPlugin(freesewing_theme_default);
|
||||
pattern.withPlugin(freesewing_theme_designer);
|
||||
pattern.withPlugin(freesewing_theme_default);
|
||||
pattern.withPlugin(macroPlugin);
|
||||
pattern.draft();
|
||||
document.getElementById("svg").innerHTML = pattern.render();
|
||||
function pointHover(evt) {
|
||||
|
|
2944
packages/brian/package-lock.json
generated
2944
packages/brian/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -1,42 +1,43 @@
|
|||
{
|
||||
"name": "@freesewing/brian",
|
||||
"version": "0.5.0",
|
||||
"description": "A basic body block for menswear",
|
||||
"name": "@freesewing-patterns/brian",
|
||||
"version": "0.1.0",
|
||||
"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",
|
||||
"unpkg": "dist/browser/bundle.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"clean": "rimraf dist",
|
||||
"nodebuild": "babel src -d dist/node",
|
||||
"browserbuild": "npx webpack-cli --config webpack.config.js",
|
||||
"watch": "npx webpack-cli --config webpack.config.js --watch",
|
||||
"run": "nodemon node dist/node/index.js",
|
||||
"dev": "webpack-dev-server --open",
|
||||
"rdev": "webpack-dev-server --disable-host-check --public joost.freesewing.org:8080"
|
||||
"build": "npm run clean && npm run nodebuild && npm run browserbuild",
|
||||
"dev": "webpack-dev-server --open"
|
||||
},
|
||||
"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": {
|
||||
"@freesewing/theme-default": "0.0.2",
|
||||
"freesewing": "^0.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "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-loader": "8.0.0-beta.4",
|
||||
"babel-preset-env": "1.7.0",
|
||||
"babel-watch": "2.0.7",
|
||||
"webpack": "^4.16.1",
|
||||
"webpack-cli": "3.0.8",
|
||||
"webpack-dev-server": "3.1.4"
|
||||
"webpack": "4.16.0",
|
||||
"webpack-cli": "3.0.8"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue