construction: Moved to JS with babel transpiler
This commit is contained in:
parent
b8eb8d5ab8
commit
945d3fd34c
13 changed files with 153 additions and 205 deletions
|
@ -1,12 +1,11 @@
|
|||
/** Pattern parts */
|
||||
export const parts = [
|
||||
module.exports = {
|
||||
parts: [
|
||||
"backBlock",
|
||||
"frontBlock",
|
||||
"_sleeveBlock"
|
||||
];
|
||||
|
||||
/** Requires measurements */
|
||||
export const measurements = [
|
||||
],
|
||||
measurements: [
|
||||
"bicepsCircumference",
|
||||
"centerBackNeckToWaist",
|
||||
"chestCircumference",
|
||||
|
@ -17,10 +16,8 @@ export const measurements = [
|
|||
"hipsCircumference",
|
||||
"shoulderToWrist",
|
||||
"wristCircumference"
|
||||
];
|
||||
|
||||
export const options = [
|
||||
|
||||
],
|
||||
options: [
|
||||
// Constants
|
||||
{ "id": "backNeckCutout", "val": 20, "type": "constant"},
|
||||
{ "id": "bicepsEase", "val": 50, "type": "constant"},
|
||||
|
@ -42,4 +39,6 @@ export const options = [
|
|||
{ "id": "acrossBackFactor", "val": 96, "type": "percentage", "min": 93, "max": 99 },
|
||||
{ "id": "armholeDepthFactor", "val": 50, "type": "percentage", "min": 50, "max": 65 },
|
||||
{ "id": "sleevecapHeightFactor", "val": 55, "type": "percentage", "min": 35, "max": 75 }
|
||||
];
|
||||
]
|
||||
};
|
||||
|
||||
|
|
23
packages/brian/dist/config/config.d.ts
vendored
23
packages/brian/dist/config/config.d.ts
vendored
|
@ -1,23 +0,0 @@
|
|||
/** Pattern parts */
|
||||
export declare const parts: string[];
|
||||
/** Requires measurements */
|
||||
export declare const measurements: string[];
|
||||
export declare const options: ({
|
||||
"id": string;
|
||||
"val": number;
|
||||
"type": string;
|
||||
"min"?: undefined;
|
||||
"max"?: undefined;
|
||||
} | {
|
||||
"id": string;
|
||||
"val": number;
|
||||
"min": number;
|
||||
"max": number;
|
||||
"type"?: undefined;
|
||||
} | {
|
||||
"id": string;
|
||||
"val": number;
|
||||
"type": string;
|
||||
"min": number;
|
||||
"max": number;
|
||||
})[];
|
42
packages/brian/dist/config/config.js
vendored
42
packages/brian/dist/config/config.js
vendored
|
@ -1,42 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
/** Pattern parts */
|
||||
exports.parts = [
|
||||
"backBlock",
|
||||
"frontBlock",
|
||||
"_sleeveBlock"
|
||||
];
|
||||
/** Requires measurements */
|
||||
exports.measurements = [
|
||||
"bicepsCircumference",
|
||||
"centerBackNeckToWaist",
|
||||
"chestCircumference",
|
||||
"naturalWaistToHip",
|
||||
"neckCircumference",
|
||||
"shoulderSlope",
|
||||
"shoulderToShoulder",
|
||||
"hipsCircumference",
|
||||
"shoulderToWrist",
|
||||
"wristCircumference"
|
||||
];
|
||||
exports.options = [
|
||||
// Constants
|
||||
{ "id": "backNeckCutout", "val": 20, "type": "constant" },
|
||||
{ "id": "bicepsEase", "val": 50, "type": "constant" },
|
||||
{ "id": "collarEase", "val": 15, "type": "constant" },
|
||||
{ "id": "frontArmholeExtra", "val": 5, "type": "constant" },
|
||||
{ "id": "shoulderSlopeReduction", "val": 0, "type": "constant" },
|
||||
{ "id": "sleevecapEase", "val": 5, "type": "constant" },
|
||||
{ "id": "collarFactor", "val": 4.8, "type": "constant" },
|
||||
// Measures
|
||||
{ "id": "bicepsEase", "val": 50, "min": 30, "max": 80 },
|
||||
{ "id": "chestEase", "val": 30, "min": -40, "max": 160 },
|
||||
{ "id": "shoulderEase", "val": 0, "min": -20, "max": 60 },
|
||||
{ "id": "cuffEase", "val": 45, "min": 0, "max": 100 },
|
||||
{ "id": "lengthBonus", "val": 0, "min": -40, "max": 120 },
|
||||
{ "id": "sleeveLengthBonus", "val": 0, "min": -40, "max": 80 },
|
||||
// Percentages
|
||||
{ "id": "acrossBackFactor", "val": 96, "type": "percentage", "min": 93, "max": 99 },
|
||||
{ "id": "armholeDepthFactor", "val": 50, "type": "percentage", "min": 50, "max": 65 },
|
||||
{ "id": "sleevecapHeightFactor", "val": 55, "type": "percentage", "min": 35, "max": 75 }
|
||||
];
|
3
packages/brian/dist/index.d.ts
vendored
3
packages/brian/dist/index.d.ts
vendored
|
@ -1,3 +0,0 @@
|
|||
import { Pattern } from 'freesewing/dist/lib/pattern';
|
||||
declare var brian: Pattern;
|
||||
export default brian;
|
61
packages/brian/dist/index.js
vendored
61
packages/brian/dist/index.js
vendored
|
@ -1,28 +1,45 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
||||
result["default"] = mod;
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var freesewing_1 = __importDefault(require("freesewing"));
|
||||
var patternConfig = __importStar(require("./config/config"));
|
||||
var back_1 = __importDefault(require("./lib/back"));
|
||||
var models_1 = require("@freesewing/models");
|
||||
var brian = new freesewing_1.default.pattern(patternConfig);
|
||||
brian.draft = function (final) {
|
||||
if (final === void 0) { final = true; }
|
||||
back_1.default.draft(brian, final);
|
||||
'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_1.manSize38);
|
||||
brian.settings.measurements = models_1.manSize38;
|
||||
|
||||
console.log(_models.manSize38);
|
||||
brian.settings.measurements = _models.manSize38;
|
||||
|
||||
brian.draft();
|
||||
console.log(brian.parts.backBlock.points);
|
5
packages/brian/dist/lib/back.d.ts
vendored
5
packages/brian/dist/lib/back.d.ts
vendored
|
@ -1,5 +0,0 @@
|
|||
import { Pattern } from 'freesewing/dist/lib/pattern';
|
||||
declare var backBlock: {
|
||||
draft: (pattern: Pattern, final?: boolean) => void;
|
||||
};
|
||||
export default backBlock;
|
66
packages/brian/dist/lib/back.js
vendored
66
packages/brian/dist/lib/back.js
vendored
|
@ -1,44 +1,56 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var freesewing_1 = __importDefault(require("freesewing"));
|
||||
'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 (pattern, final) {
|
||||
if (final === void 0) { final = true; }
|
||||
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;
|
||||
|
||||
// Center back (cb) vertical axis
|
||||
points.cbNeck = new freesewing_1.default.point(0, options.backNeckCutout);
|
||||
points.cbShoulder = new freesewing_1.default.point(0, points.cbNeck.y + (measurements.shoulderSlope - options.shoulderSlopeReduction) / 2);
|
||||
points.cbArmhole = new freesewing_1.default.point(0, points.cbShoulder.y + (measurements.bicepsCircumference + options.bicepsEase) * options.armholeDepthFactor);
|
||||
points.cbWaist = new freesewing_1.default.point(0, measurements.centerBackNeckToWaist + options.backNeckCutout);
|
||||
points.cbHips = new freesewing_1.default.point(0, points.cbWaist.y + measurements.naturalWaistToHip);
|
||||
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.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);
|
||||
|
||||
// Side back (cb) vertical axis
|
||||
points.armhole = new freesewing_1.default.point(measurements.chestCircumference / 4 + options.chestEase / 4, points.cbArmhole.y);
|
||||
points.waist = new freesewing_1.default.point(points.armhole.x, points.cbWaist.y);
|
||||
points.hips = new freesewing_1.default.point(points.armhole.x, points.cbHips.y);
|
||||
points.armhole = new _freesewing2.default.point(measurements.chestCircumference / 4 + options.chestEase / 4, points.cbArmhole.y);
|
||||
points.waist = new _freesewing2.default.point(points.armhole.x, points.cbWaist.y);
|
||||
points.hips = new _freesewing2.default.point(points.armhole.x, points.cbHips.y);
|
||||
|
||||
// Shoulder line
|
||||
points.neck = new freesewing_1.default.point(measurements.neckCircumference / options.collarFactor, 0);
|
||||
points.shoulder = new freesewing_1.default.point(measurements.shoulderToShoulder / 2 + options.shoulderEase / 2, points.cbShoulder.y);
|
||||
points.neck = new _freesewing2.default.point(measurements.neckCircumference / options.collarFactor, 0);
|
||||
points.shoulder = new _freesewing2.default.point(measurements.shoulderToShoulder / 2 + options.shoulderEase / 2, points.cbShoulder.y);
|
||||
|
||||
// Armhhole
|
||||
points.armholePitch = new freesewing_1.default.point(measurements.shoulderToShoulder * options.acrossBackFactor / 2, points.armhole.y / 2 - points.shoulder.y / 2);
|
||||
points._tmp1 = new freesewing_1.default.point(points.armholePitch.x, points.armhole.y);
|
||||
points.armholePitch = new _freesewing2.default.point(measurements.shoulderToShoulder * options.acrossBackFactor / 2, points.armhole.y / 2 - points.shoulder.y / 2);
|
||||
points._tmp1 = new _freesewing2.default.point(points.armholePitch.x, points.armhole.y);
|
||||
points._tmp2 = points._tmp1.shift(45, 10);
|
||||
points._tmp3 = freesewing_1.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);
|
||||
paths.test = new freesewing_1.default.path()
|
||||
.move(points.cbNeck)
|
||||
.line(points.armhole)
|
||||
.line(points.cbHips)
|
||||
.line(points.hips)
|
||||
.curve(points.neck, points.shoulder, points.armholePitch);
|
||||
|
||||
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;
|
||||
}
|
||||
};
|
||||
|
||||
exports.default = backBlock;
|
16
packages/brian/dist/lib/types.d.ts
vendored
16
packages/brian/dist/lib/types.d.ts
vendored
|
@ -1,16 +0,0 @@
|
|||
export declare type DraftMode = "sample" | "compare" | "draft";
|
||||
export declare type CompareGroup = "men" | "women";
|
||||
export declare type Units = "metric" | "imperial";
|
||||
export interface DraftConfig {
|
||||
mode: DraftMode;
|
||||
units?: Units;
|
||||
options: {
|
||||
[index: string]: number;
|
||||
};
|
||||
measurements?: {
|
||||
[index: string]: number;
|
||||
};
|
||||
sa?: number;
|
||||
scope?: string[];
|
||||
theme?: string;
|
||||
}
|
2
packages/brian/dist/lib/types.js
vendored
2
packages/brian/dist/lib/types.js
vendored
|
@ -1,2 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
11
packages/brian/package-lock.json
generated
11
packages/brian/package-lock.json
generated
|
@ -759,6 +759,17 @@
|
|||
"to-fast-properties": "1.0.3"
|
||||
}
|
||||
},
|
||||
"babel-watch": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-watch/-/babel-watch-2.0.7.tgz",
|
||||
"integrity": "sha512-pBVjnK1A3xJZHOrgVCbfd727tIPQrvzxFqGL1hgUClNd7LdQpTlO73SM1RJ9I4ibgiljbUE/3IcIHXHBJSL5+w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chokidar": "1.7.0",
|
||||
"commander": "2.16.0",
|
||||
"source-map-support": "0.4.18"
|
||||
}
|
||||
},
|
||||
"babylon": {
|
||||
"version": "6.18.0",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
|
||||
|
|
|
@ -2,13 +2,12 @@
|
|||
"name": "@freesewing/brian",
|
||||
"version": "0.2.4",
|
||||
"description": "A basic body block for menswear",
|
||||
"main": "dist/index.js",
|
||||
"main": "dist/main.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"build": "babel-node -- ./index.js",
|
||||
"build-watch": "nodemon --exec npm run build",
|
||||
"run": "nodemon node dist/index.js",
|
||||
"run-watch": "nodemon node dist/index.js"
|
||||
"build": "babel src -d dist",
|
||||
"watch": "babel-watch src/main.js",
|
||||
"run": "nodemon node dist/main.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
@ -26,6 +25,7 @@
|
|||
"devDependencies": {
|
||||
"@freesewing/models": "0.1.1",
|
||||
"babel-cli": "6.26.0",
|
||||
"babel-preset-env": "1.7.0"
|
||||
"babel-preset-env": "1.7.0",
|
||||
"babel-watch": "2.0.7"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import F from 'freesewing'
|
||||
import * as patternConfig from './config/config'
|
||||
import * as patternConfig from '../config/config'
|
||||
import { Pattern } from 'freesewing/dist/lib/pattern'
|
||||
import backBlock from './lib/back'
|
||||
import { manSize38 } from '@freesewing/models'
|
Loading…
Add table
Add a link
Reference in a new issue