1
0
Fork 0

chore: Linter changes

This commit is contained in:
Joost De Cock 2021-04-24 10:16:31 +02:00
parent dfdfc46ded
commit f191151ee4
354 changed files with 2467 additions and 2472 deletions

View file

@ -1,13 +1,19 @@
2.15.1: 2.15.1:
date: 2021-04-20 date: 2021-04-24
Added: Added:
charlie:
- Added a curved waistband option
simon: simon:
- Added some dimensions to clarify the X value of shoulder/armhole points - Added some dimensions to clarify the X value of shoulder/armhole points
Fixed: Fixed:
charlie: charlie:
- Keep `frontPocketSlantRound` and `frontPocketSlantBend` options - Keep `frontPocketSlantRound` and `frontPocketSlantBend` options
from being zero from being zero
core:
- Fixed bug in the dependency resolved when dependecies are passed as a string
See [#971](https://github.com/freesewing/freesewing/issues/971)
2.15.0: 2.15.0:
date: 2021-04-15 date: 2021-04-15

View file

@ -14,12 +14,9 @@
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"lint": "eslint --fix 'src/*.js'",
"kickstart": "npx lerna bootstrap && npx lerna run build --no-bail && npx lerna run build", "kickstart": "npx lerna bootstrap && npx lerna run build --no-bail && npx lerna run build",
"clean": "rimraf dist", "clean": "rimraf dist",
"test": "lerna run test", "test": "lerna run test",
"jsonlint": "yarn --silent jsonlint:files | xargs -n1 jsonlint -q -c && echo \"jsonlint: no lint errors\"",
"jsonlint:files": "find . -name \"*.json\" | grep -v -f .eslintignore",
"prettier": "npx prettier --write 'packages/**/src/*.js' 'packages/**/config/*.js' 'packages/**/example/src/*' 'packages/i18n/src/locales/**/*.*'", "prettier": "npx prettier --write 'packages/**/src/*.js' 'packages/**/config/*.js' 'packages/**/example/src/*' 'packages/i18n/src/locales/**/*.*'",
"reconfigure": "npx babel-node scripts/reconfigure.js", "reconfigure": "npx babel-node scripts/reconfigure.js",
"dxf": "npx babel-node scripts/export-dxf.js", "dxf": "npx babel-node scripts/export-dxf.js",
@ -71,22 +68,11 @@
"codecov": "^3.7.2", "codecov": "^3.7.2",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"deep-freeze": "^0.0.1", "deep-freeze": "^0.0.1",
"eslint": "^7.6.0",
"eslint-config-prettier": "^7.2.0",
"eslint-config-standard": "^15.0.1",
"eslint-config-standard-react": "^10.0.0",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.1.4",
"eslint-plugin-promise": "^4.0.0",
"eslint-plugin-react": "^7.20.5",
"eslint-plugin-standard": "^5.0.0",
"esm": "^3.2.25", "esm": "^3.2.25",
"file-saver": "^2.0.2", "file-saver": "^2.0.2",
"fs-extra": "^9.1.0", "fs-extra": "^9.1.0",
"husky": "^4.2.5", "husky": "^4.2.5",
"js-yaml": "^4.0.0", "js-yaml": "^4.0.0",
"jsonlint": "^1.6.3",
"lerna": "^3.22.1", "lerna": "^3.22.1",
"mocha": "^8.1.0", "mocha": "^8.1.0",
"mustache": "^4.0.1", "mustache": "^4.0.1",

View file

@ -18,8 +18,8 @@ export default {
'necklineDrop', 'necklineDrop',
'shoulderStrapWidth', 'shoulderStrapWidth',
'shoulderStrapPlacement', 'shoulderStrapPlacement',
'lengthBonus' 'lengthBonus',
] ],
}, },
measurements: [ measurements: [
'biceps', 'biceps',
@ -29,15 +29,15 @@ export default {
'neck', 'neck',
'shoulderSlope', 'shoulderSlope',
'shoulderToShoulder', 'shoulderToShoulder',
'hips' 'hips',
], ],
dependencies: { dependencies: {
front: 'base', front: 'base',
back: 'front' back: 'front',
}, },
inject: { inject: {
front: 'base', front: 'base',
back: 'front' back: 'front',
}, },
hide: ['base'], hide: ['base'],
options: { options: {
@ -63,6 +63,6 @@ export default {
necklineDrop: { pct: 20, min: 10, max: 35 }, necklineDrop: { pct: 20, min: 10, max: 35 },
stretchFactor: { pct: 5, min: 0, max: 15 }, stretchFactor: { pct: 5, min: 0, max: 15 },
shoulderStrapWidth: { pct: 15, min: 10, max: 40 }, shoulderStrapWidth: { pct: 15, min: 10, max: 40 },
shoulderStrapPlacement: { pct: 40, min: 20, max: 80 } shoulderStrapPlacement: { pct: 40, min: 20, max: 80 },
} },
} }

View file

@ -14,7 +14,7 @@ export default function (part) {
macro, macro,
utils, utils,
units, units,
measurements measurements,
} = part.shorthand() } = part.shorthand()
// Lower back neck a bit // Lower back neck a bit
@ -88,7 +88,7 @@ export default function (part) {
macro('cutonfold', { macro('cutonfold', {
from: points.cfNeck, from: points.cfNeck,
to: points.cfHem, to: points.cfHem,
grainline: true grainline: true,
}) })
macro('title', { at: points.title, nr: 2, title: 'back' }) macro('title', { at: points.title, nr: 2, title: 'back' })
@ -102,7 +102,7 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.cbHem, from: points.cbHem,
to: points.cbNeck, to: points.cbNeck,
x: points.cbHem.x - sa - 15 x: points.cbHem.x - sa - 15,
}) })
} }

View file

@ -15,7 +15,7 @@ export default function (part) {
measurements, measurements,
complete, complete,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
// Hide Brian paths // Hide Brian paths
@ -120,7 +120,7 @@ export default function (part) {
macro('cutonfold', { macro('cutonfold', {
from: points.cfNeck, from: points.cfNeck,
to: points.cfHem, to: points.cfHem,
grainline: true grainline: true,
}) })
points.title = new Point(points.waist.x / 2, points.waist.y) points.title = new Point(points.waist.x / 2, points.waist.y)
macro('title', { at: points.title, nr: 1, title: 'front' }) macro('title', { at: points.title, nr: 1, title: 'front' })
@ -161,7 +161,7 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.cfHem, from: points.cfHem,
to: points.cfNeck, to: points.cfNeck,
x: points.cfHem.x - sa - 15 x: points.cfHem.x - sa - 15,
}) })
} }

View file

@ -2,36 +2,36 @@ export function dimensions(macro, points, sa) {
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.hem, to: points.hem,
y: points.hem.y + sa * 2.5 + 15 y: points.hem.y + sa * 2.5 + 15,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.strapLeft, to: points.strapLeft,
y: points.neck.y - sa - 15 y: points.neck.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.strapRight, to: points.strapRight,
y: points.neck.y - sa - 30 y: points.neck.y - sa - 30,
}) })
macro('vd', { macro('vd', {
from: points.hem, from: points.hem,
to: points.armhole, to: points.armhole,
x: points.armhole.x + sa + 15 x: points.armhole.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.hem, from: points.hem,
to: points.strapRight, to: points.strapRight,
x: points.armhole.x + sa + 30 x: points.armhole.x + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.hem, from: points.hem,
to: points.strapLeft, to: points.strapLeft,
x: points.armhole.x + sa + 45 x: points.armhole.x + sa + 45,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.armhole, to: points.armhole,
y: points.neck.y - sa - 45 y: points.neck.y - sa - 45,
}) })
} }

View file

@ -11,7 +11,7 @@ export default {
tags: ['accessories'], tags: ['accessories'],
optionGroups: { optionGroups: {
fit: ['backOpening', 'chestDepth'], fit: ['backOpening', 'chestDepth'],
style: ['lengthBonus', 'bibLength', 'bibWidth', 'strapWidth'] style: ['lengthBonus', 'bibLength', 'bibWidth', 'strapWidth'],
}, },
measurements: ['chest', 'waist', 'hips', 'hpsToWaistBack', 'waistToKnee'], measurements: ['chest', 'waist', 'hips', 'hpsToWaistBack', 'waistToKnee'],
dependencies: {}, dependencies: {},
@ -24,6 +24,6 @@ export default {
chestDepth: { pct: 22, min: 15, max: 90 }, chestDepth: { pct: 22, min: 15, max: 90 },
bibLength: { pct: 75, min: 0, max: 90 }, bibLength: { pct: 75, min: 0, max: 90 },
bibWidth: { pct: 100, min: 50, max: 125 }, bibWidth: { pct: 100, min: 50, max: 125 },
strapWidth: { pct: 60, min: 20, max: 100 } strapWidth: { pct: 60, min: 20, max: 100 },
} },
} }

View file

@ -11,7 +11,7 @@ export default function (part) {
complete, complete,
sa, sa,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
let chestWidth = measurements.chest / 4 let chestWidth = measurements.chest / 4
@ -111,7 +111,7 @@ export default function (part) {
macro('title', { macro('title', {
nr: 1, nr: 1,
at: points.title, at: points.title,
title: 'Front' title: 'Front',
}) })
points.scaleboxAnchor = points.pocketLeftBottom.shiftFractionTowards(points.bottomRight, 0.5) points.scaleboxAnchor = points.pocketLeftBottom.shiftFractionTowards(points.bottomRight, 0.5)
@ -119,12 +119,12 @@ export default function (part) {
macro('crossBox', { macro('crossBox', {
from: points.topRightHem, from: points.topRightHem,
to: points.crossBoxTo1 to: points.crossBoxTo1,
}) })
macro('crossBox', { macro('crossBox', {
from: points.topRightBack, from: points.topRightBack,
to: points.crossBoxTo2, to: points.crossBoxTo2,
text: 'attachment' text: 'attachment',
}) })
if (sa) { if (sa) {
@ -133,7 +133,7 @@ export default function (part) {
macro('cutonfold', { macro('cutonfold', {
from: points.topCOF, from: points.topCOF,
to: points.bottomCOF to: points.bottomCOF,
}) })
} }
@ -142,42 +142,42 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + sa + 15 y: points.bottomLeft.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.topLeft, from: points.topLeft,
to: points.topRight, to: points.topRight,
y: points.topLeft.y - sa - 15 y: points.topLeft.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.topLeft, to: points.topLeft,
x: points.topLeft.x - sa - 15 x: points.topLeft.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRightBack, to: points.topRightBack,
x: points.topRightBack.x + sa + 15 x: points.topRightBack.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.topRightBack, from: points.topRightBack,
to: points.topRight, to: points.topRight,
x: points.topRightBack.x + sa + 15 x: points.topRightBack.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.topLeft, from: points.topLeft,
to: points.topLeftHem, to: points.topLeftHem,
x: points.topLeftHem.x + sa + 15 x: points.topLeftHem.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.topLeftHem, from: points.topLeftHem,
to: points.bottomLeftHem, to: points.bottomLeftHem,
x: points.topLeftHem.x + sa + 15 x: points.topLeftHem.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomLeftHem, from: points.bottomLeftHem,
to: points.bottomLeft, to: points.bottomLeft,
x: points.bottomLeftHem.x + sa + 15 x: points.bottomLeftHem.x + sa + 15,
}) })
} }

View file

@ -58,8 +58,8 @@ const crossBox = {
.attr('data-text', so.text) .attr('data-text', so.text)
.attr('data-text-class', 'center') .attr('data-text-class', 'center')
} }
} },
} },
} }
// Create new design // Create new design

View file

@ -11,7 +11,7 @@ export default function (part) {
complete, complete,
sa, sa,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
let apronLength = let apronLength =
@ -49,7 +49,7 @@ export default function (part) {
macro('cutonfold', { macro('cutonfold', {
from: points.topCOF, from: points.topCOF,
to: points.bottomCOF to: points.bottomCOF,
}) })
// Complete? // Complete?
@ -60,7 +60,7 @@ export default function (part) {
macro('title', { macro('title', {
nr: 3, nr: 3,
at: points.title, at: points.title,
title: 'Pocket' title: 'Pocket',
}) })
if (sa) { if (sa) {
paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
@ -72,12 +72,12 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + sa + 15 y: points.bottomLeft.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.topLeft, to: points.topLeft,
x: points.topLeft.x - sa - 15 x: points.topLeft.x - sa - 15,
}) })
} }

View file

@ -11,7 +11,7 @@ export default function (part) {
complete, complete,
sa, sa,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
let chestWidth = measurements.chest / 4 let chestWidth = measurements.chest / 4
@ -89,7 +89,7 @@ export default function (part) {
macro('title', { macro('title', {
nr: 2, nr: 2,
at: points.title, at: points.title,
title: 'Strap' title: 'Strap',
}) })
macro('crossBox', { from: points.topLeft, to: points.topMiddleHem }) macro('crossBox', { from: points.topLeft, to: points.topMiddleHem })
macro('crossBox', { from: points.bottomLeftHem, to: points.bottomMiddle }) macro('crossBox', { from: points.bottomLeftHem, to: points.bottomMiddle })
@ -103,27 +103,27 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + sa + 15 y: points.bottomLeft.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.topLeft, to: points.topLeft,
x: points.topLeft.x - sa - 15 x: points.topLeft.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.topMiddle, from: points.topMiddle,
to: points.topMiddleHem, to: points.topMiddleHem,
x: points.topMiddleHem.x + sa + 15 x: points.topMiddleHem.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.topMiddleHem, from: points.topMiddleHem,
to: points.bottomMiddleHem, to: points.bottomMiddleHem,
x: points.topMiddleHem.x + sa + 15 x: points.topMiddleHem.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomMiddleHem, from: points.bottomMiddleHem,
to: points.bottomMiddle, to: points.bottomMiddle,
x: points.bottomMiddleHem.x + sa + 15 x: points.bottomMiddleHem.x + sa + 15,
}) })
} }

View file

@ -17,9 +17,9 @@ export default {
'backArmholeSlant', 'backArmholeSlant',
'backArmholeCurvature', 'backArmholeCurvature',
'frontArmholePitchDepth', 'frontArmholePitchDepth',
'backArmholePitchDepth' 'backArmholePitchDepth',
], ],
advanced: ['backNeckCutout', 'backHemSlope', 'frontShoulderWidth', 'highBustWidth'] advanced: ['backNeckCutout', 'backHemSlope', 'frontShoulderWidth', 'highBustWidth'],
}, },
measurements: [ measurements: [
'highBust', 'highBust',
@ -33,17 +33,17 @@ export default {
'hpsToWaistFront', 'hpsToWaistFront',
'hpsToWaistBack', 'hpsToWaistBack',
'shoulderToShoulder', 'shoulderToShoulder',
'shoulderSlope' 'shoulderSlope',
// FIXME: Measurement from waist up to armhole (for sleeveless) // FIXME: Measurement from waist up to armhole (for sleeveless)
], ],
dependencies: { dependencies: {
back: 'frontSideDart' back: 'frontSideDart',
}, },
inject: {}, inject: {},
hide: [], hide: [],
parts: [ parts: [
'back', 'back',
'frontSideDart' 'frontSideDart',
// 'frontShoulderDart' // 'frontShoulderDart'
], ],
options: { options: {
@ -75,6 +75,6 @@ export default {
highBustWidth: { pct: 86, max: 92, min: 80 }, highBustWidth: { pct: 86, max: 92, min: 80 },
bustDartLength: { pct: 90, min: 75, max: 100 }, bustDartLength: { pct: 90, min: 75, max: 100 },
waistDartLength: { pct: 90, min: 75, max: 95 }, waistDartLength: { pct: 90, min: 75, max: 95 },
bustDartCurve: { pct: 100, min: 0, max: 100 } bustDartCurve: { pct: 100, min: 0, max: 100 },
} },
} }

View file

@ -12,7 +12,7 @@ export default function (part) {
macro, macro,
utils, utils,
measurements, measurements,
raise raise,
} = part.shorthand() } = part.shorthand()
// Get to work // Get to work
@ -186,15 +186,15 @@ export default function (part) {
macro('title', { macro('title', {
nr: 2, nr: 2,
title: 'back', title: 'back',
at: points.titleAnchor at: points.titleAnchor,
}) })
macro('grainline', { macro('grainline', {
from: new Point(points.hps.x / 2, points.shoulder.y), from: new Point(points.hps.x / 2, points.shoulder.y),
to: new Point(points.hps.x / 2, points.waistSide.y) to: new Point(points.hps.x / 2, points.waistSide.y),
}) })
macro('sprinkle', { macro('sprinkle', {
snippet: 'bnotch', snippet: 'bnotch',
on: ['armholePitch', 'bustCenter'] on: ['armholePitch', 'bustCenter'],
}) })
if (sa) paths.sa = paths.saBase.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.saBase.offset(sa).attr('class', 'fabric sa')
@ -203,92 +203,92 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.waistCenter, from: points.waistCenter,
to: points.dartTip, to: points.dartTip,
x: points.cbNeck.x - sa - 15 x: points.cbNeck.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.waistCenter, from: points.waistCenter,
to: points.cbNeck, to: points.cbNeck,
x: points.cbNeck.x - sa - 30 x: points.cbNeck.x - sa - 30,
}) })
macro('vd', { macro('vd', {
from: points.waistCenter, from: points.waistCenter,
to: points.hps, to: points.hps,
x: points.cbNeck.x - sa - 45 x: points.cbNeck.x - sa - 45,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.waistCenter, to: points.waistCenter,
y: points.waistCenter.y + sa + 15 y: points.waistCenter.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.dartBottomLeft, to: points.dartBottomLeft,
y: points.waistCenter.y + sa + 30 y: points.waistCenter.y + sa + 30,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.dartBottomRight, to: points.dartBottomRight,
y: points.waistCenter.y + sa + 45 y: points.waistCenter.y + sa + 45,
}) })
macro('hd', { macro('hd', {
from: points.dartBottomLeft, from: points.dartBottomLeft,
to: points.dartBottomRight, to: points.dartBottomRight,
y: points.waistCenter.y + sa + 15 y: points.waistCenter.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.waistSide, to: points.waistSide,
y: points.waistCenter.y + sa + 60 y: points.waistCenter.y + sa + 60,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.armhole, to: points.armhole,
y: points.waistCenter.y + sa + 75 y: points.waistCenter.y + sa + 75,
}) })
macro('vd', { macro('vd', {
from: points.waistSide, from: points.waistSide,
to: points.armhole, to: points.armhole,
x: points.armhole.x + sa + 15 x: points.armhole.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.waistSide, from: points.waistSide,
to: points.armholePitch, to: points.armholePitch,
x: points.armhole.x + sa + 30 x: points.armhole.x + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.waistSide, from: points.waistSide,
to: points.shoulder, to: points.shoulder,
x: points.armhole.x + sa + 45 x: points.armhole.x + sa + 45,
}) })
macro('vd', { macro('vd', {
from: points.waistSide, from: points.waistSide,
to: points.hps, to: points.hps,
x: points.armhole.x + sa + 60 x: points.armhole.x + sa + 60,
}) })
macro('vd', { macro('vd', {
from: points.waistCenter, from: points.waistCenter,
to: points.waistSide, to: points.waistSide,
x: points.waistSide.x + sa + 15 x: points.waistSide.x + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.hps, to: points.hps,
y: points.hps.y - sa - 15 y: points.hps.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.armholePitch, to: points.armholePitch,
y: points.hps.y - sa - 30 y: points.hps.y - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.shoulder, to: points.shoulder,
y: points.hps.y - sa - 45 y: points.hps.y - sa - 45,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.armhole, to: points.armhole,
y: points.hps.y - sa - 60 y: points.hps.y - sa - 60,
}) })
} }
} }

View file

@ -11,7 +11,7 @@ export default function (part) {
paperless, paperless,
macro, macro,
utils, utils,
measurements measurements,
} = part.shorthand() } = part.shorthand()
// Get to work // Get to work
@ -200,7 +200,7 @@ export default function (part) {
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,
nr: 1, nr: 1,
title: 'front' title: 'front',
}) })
points.scaleboxAnchor = points.titleAnchor.shift(-90, 70) points.scaleboxAnchor = points.titleAnchor.shift(-90, 70)
macro('scalebox', { at: points.scaleboxAnchor }) macro('scalebox', { at: points.scaleboxAnchor })
@ -212,11 +212,11 @@ export default function (part) {
macro('cutonfold', { macro('cutonfold', {
from: points.cfNeck, from: points.cfNeck,
to: points.cfHem, to: points.cfHem,
grainline: true grainline: true,
}) })
macro('sprinkle', { macro('sprinkle', {
snippet: 'notch', snippet: 'notch',
on: ['bust', 'armholePitch', 'cfBust'] on: ['bust', 'armholePitch', 'cfBust'],
}) })
if (sa) { if (sa) {
@ -227,102 +227,102 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.cfHem, from: points.cfHem,
to: points.waistDartTip, to: points.waistDartTip,
x: 0 - 15 x: 0 - 15,
}) })
macro('vd', { macro('vd', {
from: points.cfHem, from: points.cfHem,
to: points.bust, to: points.bust,
x: 0 - 30 x: 0 - 30,
}) })
macro('vd', { macro('vd', {
from: points.cfHem, from: points.cfHem,
to: points.cfNeck, to: points.cfNeck,
x: 0 - 45 x: 0 - 45,
}) })
macro('vd', { macro('vd', {
from: points.cfHem, from: points.cfHem,
to: points.hps, to: points.hps,
x: 0 - 60 x: 0 - 60,
}) })
macro('hd', { macro('hd', {
from: points.cfBust, from: points.cfBust,
to: points.bust, to: points.bust,
y: points.bust.y - 15 y: points.bust.y - 15,
}) })
macro('hd', { macro('hd', {
from: points.cfBust, from: points.cfBust,
to: points.bustDartTip, to: points.bustDartTip,
y: points.bust.y - 30 y: points.bust.y - 30,
}) })
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.waistDartLeft, to: points.waistDartLeft,
y: points.cfHem.y + sa + 15 y: points.cfHem.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.waistDartRight, to: points.waistDartRight,
y: points.cfHem.y + sa + 30 y: points.cfHem.y + sa + 30,
}) })
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.sideHem, to: points.sideHem,
y: points.cfHem.y + sa + 45 y: points.cfHem.y + sa + 45,
}) })
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.bustDartBottom, to: points.bustDartBottom,
y: points.cfHem.y + sa + 60 y: points.cfHem.y + sa + 60,
}) })
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.bustDartTop, to: points.bustDartTop,
y: points.cfHem.y + sa + 75 y: points.cfHem.y + sa + 75,
}) })
macro('vd', { macro('vd', {
from: points.sideHem, from: points.sideHem,
to: points.bustDartBottom, to: points.bustDartBottom,
x: points.bustDartTop.x + sa + 15 x: points.bustDartTop.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.sideHem, from: points.sideHem,
to: points.bustDartTop, to: points.bustDartTop,
x: points.bustDartTop.x + sa + 30 x: points.bustDartTop.x + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.sideHem, from: points.sideHem,
to: points.armhole, to: points.armhole,
x: points.bustDartTop.x + sa + 45 x: points.bustDartTop.x + sa + 45,
}) })
macro('vd', { macro('vd', {
from: points.sideHem, from: points.sideHem,
to: points.armholePitch, to: points.armholePitch,
x: points.bustDartTop.x + sa + 60 x: points.bustDartTop.x + sa + 60,
}) })
macro('vd', { macro('vd', {
from: points.sideHem, from: points.sideHem,
to: points.shoulder, to: points.shoulder,
x: points.bustDartTop.x + sa + 75 x: points.bustDartTop.x + sa + 75,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.hps, to: points.hps,
y: points.hps.y - sa - 15 y: points.hps.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.armholePitch, to: points.armholePitch,
y: points.hps.y - sa - 30 y: points.hps.y - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.shoulder, to: points.shoulder,
y: points.hps.y - sa - 45 y: points.hps.y - sa - 45,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.armhole, to: points.armhole,
y: points.hps.y - sa - 60 y: points.hps.y - sa - 60,
}) })
} }
} }

View file

@ -11,14 +11,14 @@ export default {
tags: ['top', 'basics'], tags: ['top', 'basics'],
optionGroups: { optionGroups: {
fit: ['collarEase', 'adjustmentRibbon'], fit: ['collarEase', 'adjustmentRibbon'],
style: ['tipWidth', 'knotWidth', 'bowLength', 'bowStyle', 'endStyle'] style: ['tipWidth', 'knotWidth', 'bowLength', 'bowStyle', 'endStyle'],
}, },
measurements: ['neck'], measurements: ['neck'],
dependencies: {}, dependencies: {},
inject: { inject: {
bow1: 'base', bow1: 'base',
bow2: 'base', bow2: 'base',
bow3: 'base' bow3: 'base',
}, },
hide: ['base'], hide: ['base'],
parts: ['ribbon'], parts: ['ribbon'],
@ -28,39 +28,39 @@ export default {
ribbonWidth: { ribbonWidth: {
pct: 6, pct: 6,
min: 5, min: 5,
max: 8 max: 8,
}, },
tipWidth: { tipWidth: {
pct: 15, pct: 15,
min: 0, min: 0,
max: 20 max: 20,
}, },
knotWidth: { knotWidth: {
pct: 7, pct: 7,
min: 5, min: 5,
max: 10 max: 10,
}, },
bowLength: { bowLength: {
pct: 28, pct: 28,
min: 23, min: 23,
max: 33 max: 33,
}, },
collarEase: { collarEase: {
pct: 3, pct: 3,
min: 0, min: 0,
max: 6 max: 6,
}, },
bowStyle: { bowStyle: {
dflt: 'butterfly', dflt: 'butterfly',
list: ['diamond', 'butterfly', 'square', 'widesquare'] list: ['diamond', 'butterfly', 'square', 'widesquare'],
}, },
endStyle: { endStyle: {
dflt: 'straight', dflt: 'straight',
list: ['straight', 'pointed', 'rounded'] list: ['straight', 'pointed', 'rounded'],
}, },
adjustmentRibbon: { adjustmentRibbon: {
bool: false bool: false,
}, },
adjustmentRibbonWidth: 20 adjustmentRibbonWidth: 20,
} },
} }

View file

@ -12,7 +12,7 @@ export default function (part) {
measurements, measurements,
complete, complete,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
if (options.bowStyle === 'square') options.tipWidth = options.knotWidth if (options.bowStyle === 'square') options.tipWidth = options.knotWidth
@ -23,7 +23,7 @@ export default function (part) {
'tipWidth', 'tipWidth',
'knotWidth', 'knotWidth',
'bowLength', 'bowLength',
'collarEase' 'collarEase',
]) ])
store.set(option, measurements.neck * options[option]) store.set(option, measurements.neck * options[option])
@ -76,13 +76,13 @@ export default function (part) {
from: points.tip2Bottom, from: points.tip2Bottom,
to: points.tip, to: points.tip,
via: points.roundBottom, via: points.roundBottom,
prefix: 'bottom' prefix: 'bottom',
}) })
macro('round', { macro('round', {
from: points.tip, from: points.tip,
to: points.tip2Top, to: points.tip2Top,
via: points.roundTop, via: points.roundTop,
prefix: 'top' prefix: 'top',
}) })
paths.cap = paths.bottomRounded.join(paths.topRounded) paths.cap = paths.bottomRounded.join(paths.topRounded)
} }
@ -146,53 +146,53 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.knotBottom, from: points.knotBottom,
to: points.tip2Bottom, to: points.tip2Bottom,
y: baseY y: baseY,
}) })
baseY += 15 baseY += 15
if (options.bowStyle === 'butterfly' || options.bowStyle === 'diamond') { if (options.bowStyle === 'butterfly' || options.bowStyle === 'diamond') {
macro('hd', { macro('hd', {
from: points.tip1Bottom, from: points.tip1Bottom,
to: points.tip2Bottom, to: points.tip2Bottom,
y: baseY y: baseY,
}) })
baseY += 15 baseY += 15
macro('vd', { macro('vd', {
from: points.tip1Bottom, from: points.tip1Bottom,
to: points.tip1Top to: points.tip1Top,
}) })
} }
macro('hd', { macro('hd', {
from: points.transitionBottomRight, from: points.transitionBottomRight,
to: points.tip2Bottom, to: points.tip2Bottom,
y: baseY y: baseY,
}) })
baseY += 15 baseY += 15
macro('hd', { macro('hd', {
from: points.bandBottomRight, from: points.bandBottomRight,
to: points.tip2Bottom, to: points.tip2Bottom,
y: baseY y: baseY,
}) })
baseY += 15 baseY += 15
store.set('baseY', baseY) store.set('baseY', baseY)
macro('vd', { macro('vd', {
from: points.bandBottomRight, from: points.bandBottomRight,
to: points.bandTopRight to: points.bandTopRight,
}) })
macro('vd', { macro('vd', {
from: points.transitionBottomRight, from: points.transitionBottomRight,
to: points.transitionTopRight to: points.transitionTopRight,
}) })
macro('vd', { macro('vd', {
from: points.tip2Bottom, from: points.tip2Bottom,
to: points.tip2Top, to: points.tip2Top,
x: points.tip.x + 15 + sa x: points.tip.x + 15 + sa,
}) })
if (options.endStyle !== 'straight') { if (options.endStyle !== 'straight') {
macro('hd', { macro('hd', {
from: points.tip2Bottom, from: points.tip2Bottom,
to: points.tip, to: points.tip,
y: points.tip2Bottom.y + 15 + sa y: points.tip2Bottom.y + 15 + sa,
}) })
} }
} }

View file

@ -8,7 +8,7 @@ export default function (part) {
macro('grainline', { macro('grainline', {
from: points.grainlineStart, from: points.grainlineStart,
to: points.tip.shift(180, 20) to: points.tip.shift(180, 20),
}) })
paths.seam = new Path() paths.seam = new Path()
@ -26,7 +26,7 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.bandBottomLeft, from: points.bandBottomLeft,
to: points.tip2Bottom, to: points.tip2Bottom,
y: store.get('baseY') y: store.get('baseY'),
}) })
} }
if (sa) { if (sa) {
@ -36,7 +36,7 @@ export default function (part) {
at: points.titleAnchor, at: points.titleAnchor,
nr: 1, nr: 1,
title: 'bowTie', title: 'bowTie',
scale: store.get('tipWidth') / 75 scale: store.get('tipWidth') / 75,
}) })
points.scaleboxAnchor = points.bandTopLeft.shift(30, 80) points.scaleboxAnchor = points.bandTopLeft.shift(30, 80)
macro('scalebox', { at: points.scaleboxAnchor }) macro('scalebox', { at: points.scaleboxAnchor })

View file

@ -9,7 +9,7 @@ export default function (part) {
macro, macro,
sa, sa,
store, store,
paperless paperless,
} = part.shorthand() } = part.shorthand()
if (!options.adjustmentRibbon) { if (!options.adjustmentRibbon) {
@ -24,7 +24,7 @@ export default function (part) {
macro('grainline', { macro('grainline', {
from: points.grainlineStart, from: points.grainlineStart,
to: points.tip.shift(180, 20) to: points.tip.shift(180, 20),
}) })
paths.seam = new Path() paths.seam = new Path()
@ -42,7 +42,7 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.bandBottomLeft, from: points.bandBottomLeft,
to: points.tip2Bottom, to: points.tip2Bottom,
y: store.get('baseY') y: store.get('baseY'),
}) })
} }
if (sa) { if (sa) {
@ -52,7 +52,7 @@ export default function (part) {
at: points.titleAnchor, at: points.titleAnchor,
nr: 2, nr: 2,
title: 'bowTie', title: 'bowTie',
scale: store.get('tipWidth') / 75 scale: store.get('tipWidth') / 75,
}) })
} }

View file

@ -9,7 +9,7 @@ export default function (part) {
macro, macro,
sa, sa,
store, store,
paperless paperless,
} = part.shorthand() } = part.shorthand()
if (!options.adjustmentRibbon) { if (!options.adjustmentRibbon) {
@ -24,7 +24,7 @@ export default function (part) {
macro('grainline', { macro('grainline', {
from: points.grainlineStart, from: points.grainlineStart,
to: points.tip.shift(180, 20) to: points.tip.shift(180, 20),
}) })
paths.seam = new Path() paths.seam = new Path()
@ -42,7 +42,7 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.bandBottomLeft, from: points.bandBottomLeft,
to: points.tip2Bottom, to: points.tip2Bottom,
y: store.get('baseY') y: store.get('baseY'),
}) })
} }
if (sa) { if (sa) {
@ -52,7 +52,7 @@ export default function (part) {
at: points.titleAnchor, at: points.titleAnchor,
nr: 3, nr: 3,
title: 'bowTie', title: 'bowTie',
scale: store.get('tipWidth') / 75 scale: store.get('tipWidth') / 75,
}) })
} }

View file

@ -10,7 +10,7 @@ export default function (part) {
points, points,
paths, paths,
sa, sa,
paperless paperless,
} = part.shorthand() } = part.shorthand()
if (options.adjustmentRibbon) { if (options.adjustmentRibbon) {
@ -44,19 +44,19 @@ export default function (part) {
at: points.titleAnchor, at: points.titleAnchor,
nr: 2, nr: 2,
title: 'ribbon', title: 'ribbon',
scale: 0.3 scale: 0.3,
}) })
if (paperless) { if (paperless) {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + 15 + sa y: points.bottomLeft.y + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + 15 + sa x: points.topRight.x + 15 + sa,
}) })
} }
} }

View file

@ -18,7 +18,7 @@ export default {
'shoulderEase', 'shoulderEase',
'lengthBonus', 'lengthBonus',
'sleeveLengthBonus', 'sleeveLengthBonus',
'sleeveBend' 'sleeveBend',
], ],
advanced: [ advanced: [
'acrossBackFactor', 'acrossBackFactor',
@ -27,8 +27,8 @@ export default {
'frontArmholeDeeper', 'frontArmholeDeeper',
'shoulderSlopeReduction', 'shoulderSlopeReduction',
'sleevecapHeight', 'sleevecapHeight',
'sleevecapEase' 'sleevecapEase',
] ],
}, },
measurements: [ measurements: [
'biceps', 'biceps',
@ -40,19 +40,19 @@ export default {
'shoulderToElbow', 'shoulderToElbow',
'shoulderToShoulder', 'shoulderToShoulder',
'shoulderToWrist', 'shoulderToWrist',
'wrist' 'wrist',
], ],
dependencies: { dependencies: {
back: 'base', back: 'base',
front: 'back', front: 'back',
topSleeve: 'sleeve', topSleeve: 'sleeve',
underSleeve: 'sleeve' underSleeve: 'sleeve',
}, },
inject: { inject: {
back: 'base', back: 'base',
front: 'back', front: 'back',
topSleeve: 'sleeve', topSleeve: 'sleeve',
underSleeve: 'sleeve' underSleeve: 'sleeve',
}, },
hide: ['base', 'sleeve'], hide: ['base', 'sleeve'],
options: { options: {
@ -77,6 +77,6 @@ export default {
sleeveBend: { deg: 10, min: 0, max: 20 }, sleeveBend: { deg: 10, min: 0, max: 20 },
sleevecapHeight: { pct: 45, min: 40, max: 60 }, sleevecapHeight: { pct: 45, min: 40, max: 60 },
sleevecapEase: { pct: 1, min: 0, max: 10 }, sleevecapEase: { pct: 1, min: 0, max: 10 },
sleeveLengthBonus: { pct: 0, min: -20, max: 15 } sleeveLengthBonus: { pct: 0, min: -20, max: 15 },
} },
} }

View file

@ -4,49 +4,49 @@ export default function (part, s) {
macro('ld', { macro('ld', {
from: points[s + 'WristLeft'], from: points[s + 'WristLeft'],
to: points[s + 'WristRight'], to: points[s + 'WristRight'],
d: 15 d: 15,
}) })
macro('ld', { macro('ld', {
from: points[s + 'ElbowLeft'], from: points[s + 'ElbowLeft'],
to: points.elbowRight to: points.elbowRight,
}) })
macro('ld', { macro('ld', {
from: points[s + 'LeftEdge'], from: points[s + 'LeftEdge'],
to: points[s + 'RightEdge'] to: points[s + 'RightEdge'],
}) })
macro('hd', { macro('hd', {
from: points[s + 'LeftEdge'], from: points[s + 'LeftEdge'],
to: points[s + 'ElbowLeft'], to: points[s + 'ElbowLeft'],
y: points[s + 'WristRight'].y + 3 * sa + 15 y: points[s + 'WristRight'].y + 3 * sa + 15,
}) })
macro('hd', { macro('hd', {
from: points[s + 'LeftEdge'], from: points[s + 'LeftEdge'],
to: points[s + 'WristLeft'], to: points[s + 'WristLeft'],
y: points[s + 'WristRight'].y + 3 * sa + 30 y: points[s + 'WristRight'].y + 3 * sa + 30,
}) })
macro('hd', { macro('hd', {
from: points[s + 'LeftEdge'], from: points[s + 'LeftEdge'],
to: points[s + 'WristRight'], to: points[s + 'WristRight'],
y: points[s + 'WristRight'].y + 3 * sa + 45 y: points[s + 'WristRight'].y + 3 * sa + 45,
}) })
macro('hd', { macro('hd', {
from: points[s + 'LeftEdge'], from: points[s + 'LeftEdge'],
to: points.elbowRight, to: points.elbowRight,
y: points[s + 'WristRight'].y + 3 * sa + 60 y: points[s + 'WristRight'].y + 3 * sa + 60,
}) })
macro('vd', { macro('vd', {
from: points[s + 'ElbowLeft'], from: points[s + 'ElbowLeft'],
to: points[s + 'LeftEdge'], to: points[s + 'LeftEdge'],
x: points[s + 'LeftEdge'].x - sa - 15 x: points[s + 'LeftEdge'].x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points[s + 'WristLeft'], from: points[s + 'WristLeft'],
to: points[s + 'LeftEdge'], to: points[s + 'LeftEdge'],
x: points[s + 'LeftEdge'].x - sa - 30 x: points[s + 'LeftEdge'].x - sa - 30,
}) })
macro('vd', { macro('vd', {
from: points[s + 'WristRight'], from: points[s + 'WristRight'],
to: points[s + 'LeftEdge'], to: points[s + 'LeftEdge'],
x: points[s + 'LeftEdge'].x - sa - 45 x: points[s + 'LeftEdge'].x - sa - 45,
}) })
} }

View file

@ -15,7 +15,7 @@ export default function (part) {
macro('title', { macro('title', {
at: points.armCenter, at: points.armCenter,
nr: 3, nr: 3,
title: 'topsleeve' title: 'topsleeve',
}) })
if (sa) { if (sa) {
@ -41,27 +41,27 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.tsLeftEdge, from: points.tsLeftEdge,
to: points.top, to: points.top,
x: points.tsLeftEdge.x - sa - 15 x: points.tsLeftEdge.x - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.tsLeftEdge, from: points.tsLeftEdge,
to: points.top, to: points.top,
y: points.top.x - sa - 15 y: points.top.x - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.tsLeftEdge, from: points.tsLeftEdge,
to: points.backPitchPoint, to: points.backPitchPoint,
y: points.top.x - sa - 30 y: points.top.x - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.tsLeftEdge, from: points.tsLeftEdge,
to: points.tsRightEdge, to: points.tsRightEdge,
y: points.top.x - sa - 45 y: points.top.x - sa - 45,
}) })
macro('vd', { macro('vd', {
from: points.tsRightEdge, from: points.tsRightEdge,
to: points.backPitchPoint, to: points.backPitchPoint,
x: points.tsRightEdge.x + sa + 15 x: points.tsRightEdge.x + sa + 15,
}) })
} }

View file

@ -16,7 +16,7 @@ export default function (part) {
macro('title', { macro('title', {
at: points.armCenter, at: points.armCenter,
nr: 4, nr: 4,
title: 'undersleeve' title: 'undersleeve',
}) })
if (sa) { if (sa) {
@ -42,12 +42,12 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.usLeftEdge, from: points.usLeftEdge,
to: points.usTip, to: points.usTip,
y: points.usTip.y - sa - 15 y: points.usTip.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.tsRightEdge, from: points.tsRightEdge,
to: points.usTip, to: points.usTip,
x: points.tsRightEdge.x + sa + 15 x: points.tsRightEdge.x + sa + 15,
}) })
} }

View file

@ -24,7 +24,7 @@ export default {
'bicepsEase', 'bicepsEase',
'cuffEase', 'cuffEase',
'shoulderEase', 'shoulderEase',
'waistEase' 'waistEase',
], ],
style: [ style: [
'primaryBustDart', 'primaryBustDart',
@ -32,7 +32,7 @@ export default {
'secondaryBustDart', 'secondaryBustDart',
'secondaryBustDartLength', 'secondaryBustDartLength',
'primaryBustDartShaping', 'primaryBustDartShaping',
'sleeveLengthBonus' 'sleeveLengthBonus',
], ],
advanced: [ advanced: [
'acrossBackFactor', 'acrossBackFactor',
@ -60,10 +60,10 @@ export default {
'sleevecapQ3Spread1', 'sleevecapQ3Spread1',
'sleevecapQ3Spread2', 'sleevecapQ3Spread2',
'sleevecapQ4Spread1', 'sleevecapQ4Spread1',
'sleevecapQ4Spread2' 'sleevecapQ4Spread2',
] ],
} },
] ],
}, },
measurements: [ measurements: [
'biceps', 'biceps',
@ -80,19 +80,19 @@ export default {
'shoulderToShoulder', 'shoulderToShoulder',
'shoulderToWrist', 'shoulderToWrist',
'shoulderSlope', 'shoulderSlope',
'wrist' 'wrist',
], ],
dependencies: { dependencies: {
frontBase: 'back', frontBase: 'back',
front: ['back', 'frontBase'], front: ['back', 'frontBase'],
sleevecap: ['front', 'frontBase', 'back'], sleevecap: ['front', 'frontBase', 'back'],
sleeve: ['sleevecap', 'front', 'frontBase', 'back'] sleeve: ['sleevecap', 'front', 'frontBase', 'back'],
}, },
inject: { inject: {
back: 'base', back: 'base',
frontBase: 'base', frontBase: 'base',
front: 'frontBase', front: 'frontBase',
sleeve: 'sleevecap' sleeve: 'sleevecap',
}, },
hide: ['frontBase', 'sleevecap'], hide: ['frontBase', 'sleevecap'],
options: { options: {
@ -125,9 +125,9 @@ export default {
'14:00', '14:00',
'15:00', '15:00',
'16:00', '16:00',
'17:00' '17:00',
], ],
dflt: '06:00' dflt: '06:00',
}, },
secondaryBustDart: { secondaryBustDart: {
list: [ list: [
@ -146,9 +146,9 @@ export default {
'14:00', '14:00',
'15:00', '15:00',
'16:00', '16:00',
'17:00' '17:00',
], ],
dflt: '13:30' dflt: '13:30',
}, },
// Percentages // Percentages
@ -191,6 +191,6 @@ export default {
sleevecapQ4Spread1: { pct: 7, min: 4, max: 20 }, sleevecapQ4Spread1: { pct: 7, min: 4, max: 20 },
sleevecapQ4Spread2: { pct: 7, min: 4, max: 20 }, sleevecapQ4Spread2: { pct: 7, min: 4, max: 20 },
sleeveLengthBonus: { pct: 0, min: -40, max: 10 }, sleeveLengthBonus: { pct: 0, min: -40, max: 10 },
frontScyeDart: { pct: 25, min: 0, max: 45 } frontScyeDart: { pct: 25, min: 0, max: 45 },
} },
} }

View file

@ -12,7 +12,7 @@ export default (part) => {
Point, Point,
options, options,
utils, utils,
store store,
} = part.shorthand() } = part.shorthand()
// Shoulder dart // Shoulder dart
@ -189,88 +189,88 @@ export default (part) => {
macro('vd', { macro('vd', {
from: points.cbWaist, from: points.cbWaist,
to: points.cbNeck, to: points.cbNeck,
x: -15 - sa x: -15 - sa,
}) })
if (options.waistDart) { if (options.waistDart) {
let y = points.waist.y + 15 + sa let y = points.waist.y + 15 + sa
macro('hd', { macro('hd', {
from: points.cbWaist, from: points.cbWaist,
to: points.waistDart1, to: points.waistDart1,
y y,
}) })
macro('hd', { macro('hd', {
from: points.cbWaist, from: points.cbWaist,
to: points.waistDartEdge, to: points.waistDartEdge,
y: y + 15 y: y + 15,
}) })
macro('hd', { macro('hd', {
from: points.cbWaist, from: points.cbWaist,
to: points.waistDart2, to: points.waistDart2,
y: y + 30 y: y + 30,
}) })
macro('hd', { macro('hd', {
from: points.cbWaist, from: points.cbWaist,
to: points.waist, to: points.waist,
y: y + 45 y: y + 45,
}) })
macro('hd', { macro('hd', {
from: points.cbWaist, from: points.cbWaist,
to: points.armhole, to: points.armhole,
y: y + 60 y: y + 60,
}) })
macro('vd', { macro('vd', {
from: points.waistDart2, from: points.waistDart2,
to: points.waistDartTip, to: points.waistDartTip,
x: points.waistDart2.x + 15 x: points.waistDart2.x + 15,
}) })
} else { } else {
let y = points.waist.y + 15 + sa let y = points.waist.y + 15 + sa
macro('hd', { macro('hd', {
from: points.cbWaist, from: points.cbWaist,
to: points.waist, to: points.waist,
y: points.waist.y + 15 + sa y: points.waist.y + 15 + sa,
}) })
macro('hd', { macro('hd', {
from: points.cbWaist, from: points.cbWaist,
to: points.armhole, to: points.armhole,
y: y + 30 y: y + 30,
}) })
} }
let x = points.armhole.x + 15 + sa let x = points.armhole.x + 15 + sa
macro('vd', { macro('vd', {
from: points.waist, from: points.waist,
to: points.armhole, to: points.armhole,
x x,
}) })
macro('vd', { macro('vd', {
from: points.waist, from: points.waist,
to: points.armholePitch, to: points.armholePitch,
x: x + 15 x: x + 15,
}) })
macro('vd', { macro('vd', {
from: points.waist, from: points.waist,
to: points.shoulder, to: points.shoulder,
x: x + 30 x: x + 30,
}) })
macro('vd', { macro('vd', {
from: points.waist, from: points.waist,
to: points.hps, to: points.hps,
x: x + 45 x: x + 45,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.armholePitch, to: points.armholePitch,
y: points.armholePitch.y + 25 y: points.armholePitch.y + 25,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.hps, to: points.hps,
y: points.hps.y - sa - 15 y: points.hps.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.shoulder, to: points.shoulder,
y: points.hps.y - sa - 30 y: points.hps.y - sa - 30,
}) })
} }

View file

@ -92,7 +92,7 @@ export const getDartPaths = (Path, points) => [
new Path() new Path()
.line(points.secondaryBustDart1) .line(points.secondaryBustDart1)
.line(points.secondaryBustDartTip) .line(points.secondaryBustDartTip)
.line(points.secondaryBustDart2) .line(points.secondaryBustDart2),
] ]
export const getSaDartPaths = (Path, points) => [ export const getSaDartPaths = (Path, points) => [
@ -103,7 +103,7 @@ export const getSaDartPaths = (Path, points) => [
new Path() new Path()
.line(points.secondaryBustDart1) .line(points.secondaryBustDart1)
.line(points.secondaryBustDartEdge) .line(points.secondaryBustDartEdge)
.line(points.secondaryBustDart2) .line(points.secondaryBustDart2),
] ]
/* /*

View file

@ -15,7 +15,7 @@ import {
getDartInsertionPoint, getDartInsertionPoint,
getDartLocationsAsNumbers, getDartLocationsAsNumbers,
getDartPaths, getDartPaths,
getSaDartPaths getSaDartPaths,
} from './dart-utils' } from './dart-utils'
export default (part) => { export default (part) => {
@ -31,7 +31,7 @@ export default (part) => {
paperless, paperless,
macro, macro,
snippets, snippets,
Snippet Snippet,
} = part.shorthand() } = part.shorthand()
/* /*
@ -167,83 +167,83 @@ export default (part) => {
macro('vd', { macro('vd', {
from: points.cfWaist, from: points.cfWaist,
to: points.bustPoint, to: points.bustPoint,
x: tl.x - 15 - sa x: tl.x - 15 - sa,
}) })
macro('vd', { macro('vd', {
from: points.cfWaist, from: points.cfWaist,
to: points.cfNeck, to: points.cfNeck,
x: tl.x - 30 - sa x: tl.x - 30 - sa,
}) })
macro('vd', { macro('vd', {
from: points.cfWaist, from: points.cfWaist,
to: points.hps, to: points.hps,
x: tl.x - 45 - sa x: tl.x - 45 - sa,
}) })
macro('vd', { macro('vd', {
from: points.waist, from: points.waist,
to: points.armhole, to: points.armhole,
x: br.x + 15 + sa x: br.x + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.waist, from: points.waist,
to: points.armholePitch, to: points.armholePitch,
x: br.x + 30 + sa x: br.x + 30 + sa,
}) })
macro('vd', { macro('vd', {
from: points.waist, from: points.waist,
to: points.shoulder, to: points.shoulder,
x: br.x + 45 + sa x: br.x + 45 + sa,
}) })
macro('vd', { macro('vd', {
from: points.waist, from: points.waist,
to: points.hps, to: points.hps,
x: br.x + 60 + sa x: br.x + 60 + sa,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.hps, to: points.hps,
y: tl.y - 15 - sa y: tl.y - 15 - sa,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.shoulder, to: points.shoulder,
y: tl.y - 30 - sa y: tl.y - 30 - sa,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.armhole, to: points.armhole,
y: tl.y - 30 - sa y: tl.y - 30 - sa,
}) })
macro('hd', { macro('hd', {
from: points.cfWaist, from: points.cfWaist,
to: points.bustPoint, to: points.bustPoint,
y: br.y + 15 + sa y: br.y + 15 + sa,
}) })
macro('hd', { macro('hd', {
from: points.cfWaist, from: points.cfWaist,
to: points.waist, to: points.waist,
y: br.y + 30 + sa y: br.y + 30 + sa,
}) })
macro('ld', { macro('ld', {
from: points.primaryBustDart1, from: points.primaryBustDart1,
to: points.primaryBustDart2, to: points.primaryBustDart2,
d: 15 d: 15,
}) })
macro('ld', { macro('ld', {
from: points.primaryBustDart2, from: points.primaryBustDart2,
to: points.primaryBustDartTip, to: points.primaryBustDartTip,
d: 15 d: 15,
}) })
macro('ld', { macro('ld', {
from: points.primaryBustDart2, from: points.primaryBustDart2,
to: points.primaryBustDartTip, to: points.primaryBustDartTip,
d: 15 d: 15,
}) })
if (loc2 !== 0 && loc1 !== loc2) { if (loc2 !== 0 && loc1 !== loc2) {
macro('ld', { macro('ld', {
from: points.secondaryBustDart2, from: points.secondaryBustDart2,
to: points.secondaryBustDartTip, to: points.secondaryBustDartTip,
d: 15 d: 15,
}) })
} }
} }

View file

@ -12,7 +12,7 @@ export default (part) => {
snippets, snippets,
complete, complete,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
// Wrist // Wrist
@ -88,26 +88,26 @@ export default (part) => {
macro('vd', { macro('vd', {
from: points.wristLeft, from: points.wristLeft,
to: points.bicepsLeft, to: points.bicepsLeft,
x: points.bicepsLeft.x - sa - 15 x: points.bicepsLeft.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.wristLeft, from: points.wristLeft,
to: points.sleeveTip, to: points.sleeveTip,
x: points.bicepsLeft.x - sa - 30 x: points.bicepsLeft.x - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.bicepsLeft, from: points.bicepsLeft,
to: points.bicepsRight, to: points.bicepsRight,
y: points.sleeveTip.y - sa - 30 y: points.sleeveTip.y - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.wristLeft, from: points.wristLeft,
to: points.wristRight, to: points.wristRight,
y: points.wristLeft.y + sa + 30 y: points.wristLeft.y + sa + 30,
}) })
macro('pd', { macro('pd', {
path: paths.sleevecap.reverse(), path: paths.sleevecap.reverse(),
d: -1 * sa - 15 d: -1 * sa - 15,
}) })
} }
return part return part

View file

@ -162,7 +162,7 @@ function redrawSleevecapFront(part, delta) {
'capQ2Cp1', 'capQ2Cp1',
'capQ2', 'capQ2',
'capQ2Base', 'capQ2Base',
'capQ2Cp2' 'capQ2Cp2',
]) { ]) {
points[p].x += (points[p].x / factor) * delta * -1 points[p].x += (points[p].x / factor) * delta * -1
} }

View file

@ -17,7 +17,7 @@ export default {
'cuffEase', 'cuffEase',
'shoulderEase', 'shoulderEase',
'lengthBonus', 'lengthBonus',
'sleeveLengthBonus' 'sleeveLengthBonus',
], ],
advanced: [ advanced: [
'acrossBackFactor', 'acrossBackFactor',
@ -46,10 +46,10 @@ export default {
'sleevecapQ3Spread1', 'sleevecapQ3Spread1',
'sleevecapQ3Spread2', 'sleevecapQ3Spread2',
'sleevecapQ4Spread1', 'sleevecapQ4Spread1',
'sleevecapQ4Spread2' 'sleevecapQ4Spread2',
] ],
} },
] ],
}, },
measurements: [ measurements: [
'biceps', 'biceps',
@ -60,18 +60,18 @@ export default {
'shoulderSlope', 'shoulderSlope',
'shoulderToShoulder', 'shoulderToShoulder',
'shoulderToWrist', 'shoulderToWrist',
'wrist' 'wrist',
], ],
dependencies: { dependencies: {
back: 'base', back: 'base',
front: 'back', front: 'back',
sleevecap: 'front', sleevecap: 'front',
sleeve: 'sleevecap' sleeve: 'sleevecap',
}, },
inject: { inject: {
back: 'base', back: 'base',
front: 'back', front: 'back',
sleeve: 'sleevecap' sleeve: 'sleevecap',
}, },
hide: ['base', 'sleevecap'], hide: ['base', 'sleevecap'],
options: { options: {
@ -112,6 +112,6 @@ export default {
sleevecapQ4Spread1: { pct: 7, min: 4, max: 20 }, sleevecapQ4Spread1: { pct: 7, min: 4, max: 20 },
sleevecapQ4Spread2: { pct: 7, min: 4, max: 20 }, sleevecapQ4Spread2: { pct: 7, min: 4, max: 20 },
sleeveWidthGuarantee: { pct: 90, min: 25, max: 100 }, sleeveWidthGuarantee: { pct: 90, min: 25, max: 100 },
sleeveLengthBonus: { pct: 0, min: -40, max: 10 } sleeveLengthBonus: { pct: 0, min: -40, max: 10 },
} },
} }

View file

@ -11,7 +11,7 @@ export default (part) => {
snippets, snippets,
complete, complete,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
points.anchor = points.hps.clone() points.anchor = points.hps.clone()
@ -34,7 +34,7 @@ export default (part) => {
macro('cutonfold', { macro('cutonfold', {
from: points.cbNeck, from: points.cbNeck,
to: points.cbHips, to: points.cbHips,
grainline: true grainline: true,
}) })
macro('title', { at: points.title, nr: 2, title: 'back' }) macro('title', { at: points.title, nr: 2, title: 'back' })
@ -56,27 +56,27 @@ export default (part) => {
macro('hd', { macro('hd', {
from: points.cbHips, from: points.cbHips,
to: points.hips, to: points.hips,
y: points.hips.y + sa + 15 y: points.hips.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.cbHips, from: points.cbHips,
to: points.cbWaist, to: points.cbWaist,
x: points.cbHips.x - sa - 15 x: points.cbHips.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.cbHips, from: points.cbHips,
to: points.cbNeck, to: points.cbNeck,
x: points.cbHips.x - sa - 30 x: points.cbHips.x - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.neck, to: points.neck,
y: points.neck.y - sa - 15 y: points.neck.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.shoulder, to: points.shoulder,
y: points.neck.y - sa - 30 y: points.neck.y - sa - 30,
}) })
} }

View file

@ -12,7 +12,7 @@ export default (part) => {
Path, Path,
paths, paths,
utils, utils,
complete complete,
} = part.shorthand() } = part.shorthand()
store.set('shoulderEase', (measurements.shoulderToShoulder * options.shoulderEase) / 2) store.set('shoulderEase', (measurements.shoulderToShoulder * options.shoulderEase) / 2)

View file

@ -14,7 +14,7 @@ export default (part) => {
measurements, measurements,
complete, complete,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
// Cut arm a bit deeper at the front // Cut arm a bit deeper at the front
@ -49,7 +49,7 @@ export default (part) => {
macro('cutonfold', { macro('cutonfold', {
from: points.cfNeck, from: points.cfNeck,
to: points.cfHips, to: points.cfHips,
grainline: true grainline: true,
}) })
macro('title', { at: points.title, nr: 1, title: 'front' }) macro('title', { at: points.title, nr: 1, title: 'front' })
snippets.armholePitchNotch = new Snippet('notch', points.armholePitch) snippets.armholePitchNotch = new Snippet('notch', points.armholePitch)
@ -70,27 +70,27 @@ export default (part) => {
macro('hd', { macro('hd', {
from: points.cfHips, from: points.cfHips,
to: points.hips, to: points.hips,
y: points.hips.y + sa + 15 y: points.hips.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.cfHips, from: points.cfHips,
to: points.cfWaist, to: points.cfWaist,
x: points.cfHips.x - sa - 15 x: points.cfHips.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.cfHips, from: points.cfHips,
to: points.cfNeck, to: points.cfNeck,
x: points.cfHips.x - sa - 30 x: points.cfHips.x - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.neck, to: points.neck,
y: points.neck.y - sa - 15 y: points.neck.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.shoulder, to: points.shoulder,
y: points.neck.y - sa - 30 y: points.neck.y - sa - 30,
}) })
} }

View file

@ -41,33 +41,33 @@ export function dimensions(macro, points, Path, sa) {
.curve(points.armholeCp2, points.armholeHollowCp1, points.armholeHollow) .curve(points.armholeCp2, points.armholeHollowCp1, points.armholeHollow)
.curve(points.armholeHollowCp2, points.armholePitchCp1, points.armholePitch) .curve(points.armholeHollowCp2, points.armholePitchCp1, points.armholePitch)
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder), .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder),
d: sa + 15 d: sa + 15,
}) })
macro('pd', { macro('pd', {
path: new Path() path: new Path()
.move(points.armholePitch) .move(points.armholePitch)
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder), .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder),
d: -15 d: -15,
}) })
macro('vd', { macro('vd', {
from: points.hips, from: points.hips,
to: points.armhole, to: points.armhole,
x: points.hips.x + sa + 15 x: points.hips.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.hips, from: points.hips,
to: points.armholePitch, to: points.armholePitch,
x: points.hips.x + sa + 30 x: points.hips.x + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.hips, from: points.hips,
to: points.shoulder, to: points.shoulder,
x: points.hips.x + sa + 45 x: points.hips.x + sa + 45,
}) })
macro('vd', { macro('vd', {
from: points.hips, from: points.hips,
to: points.neck, to: points.neck,
x: points.hips.x + sa + 60 x: points.hips.x + sa + 60,
}) })
macro('ld', { from: points.neck, to: points.shoulder, d: sa + 15 }) macro('ld', { from: points.neck, to: points.shoulder, d: sa + 15 })
} }

View file

@ -12,7 +12,7 @@ export default (part) => {
snippets, snippets,
complete, complete,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
// Wrist // Wrist
@ -71,26 +71,26 @@ export default (part) => {
macro('vd', { macro('vd', {
from: points.wristLeft, from: points.wristLeft,
to: points.bicepsLeft, to: points.bicepsLeft,
x: points.bicepsLeft.x - sa - 15 x: points.bicepsLeft.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.wristLeft, from: points.wristLeft,
to: points.sleeveTip, to: points.sleeveTip,
x: points.bicepsLeft.x - sa - 30 x: points.bicepsLeft.x - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.bicepsLeft, from: points.bicepsLeft,
to: points.bicepsRight, to: points.bicepsRight,
y: points.sleeveTip.y - sa - 30 y: points.sleeveTip.y - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.wristLeft, from: points.wristLeft,
to: points.wristRight, to: points.wristRight,
y: points.wristLeft.y + sa + 30 y: points.wristLeft.y + sa + 30,
}) })
macro('pd', { macro('pd', {
path: paths.sleevecap.reverse(), path: paths.sleevecap.reverse(),
d: -1 * sa - 15 d: -1 * sa - 15,
}) })
} }
return part return part

View file

@ -11,13 +11,13 @@ export default {
tags: ['underwear', 'bottom', 'basics'], tags: ['underwear', 'bottom', 'basics'],
optionGroups: { optionGroups: {
fit: ['bulge', 'stretch', 'legStretch', 'backRise'], fit: ['bulge', 'stretch', 'legStretch', 'backRise'],
style: ['rise', 'legBonus'] style: ['rise', 'legBonus'],
}, },
measurements: ['hips', 'upperLeg', 'waistToHips', 'waistToUpperLeg'], measurements: ['hips', 'upperLeg', 'waistToHips', 'waistToUpperLeg'],
dependencies: { dependencies: {
side: ['back', 'front'], side: ['back', 'front'],
front: 'inset', front: 'inset',
inset: 'back' inset: 'back',
}, },
options: { options: {
// Constants // Constants
@ -48,6 +48,6 @@ export default {
rise: { pct: 10, min: 0, max: 25 }, rise: { pct: 10, min: 0, max: 25 },
stretch: { pct: 15, min: 5, max: 25 }, stretch: { pct: 15, min: 5, max: 25 },
legStretch: { pct: 40, min: 25, max: 45 }, legStretch: { pct: 40, min: 25, max: 45 },
backRise: { pct: 5, min: 0, max: 10 } backRise: { pct: 5, min: 0, max: 10 },
} },
} }

View file

@ -13,7 +13,7 @@ export default function (part) {
complete, complete,
paperless, paperless,
macro, macro,
utils utils,
} = part.shorthand() } = part.shorthand()
// Initialize // Initialize
@ -97,12 +97,12 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 1, nr: 1,
title: 'back' title: 'back',
}) })
macro('cutonfold', { macro('cutonfold', {
from: points.center, from: points.center,
to: points.gussetTop, to: points.gussetTop,
grainline: true grainline: true,
}) })
snippets.logo = new Snippet('logo', points.title.shift(90, 50)) snippets.logo = new Snippet('logo', points.title.shift(90, 50))
snippets.backNotch = new Snippet( snippets.backNotch = new Snippet(
@ -116,42 +116,42 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.gussetTop, from: points.gussetTop,
to: points.center, to: points.center,
x: points.center.x - 15 x: points.center.x - 15,
}) })
macro('vd', { macro('vd', {
from: points.gussetRight, from: points.gussetRight,
to: points.center, to: points.center,
x: points.center.x - 30 x: points.center.x - 30,
}) })
macro('vd', { macro('vd', {
from: points.legRight, from: points.legRight,
to: points.sideRight, to: points.sideRight,
x: points.legRight.x + 15 + sa x: points.legRight.x + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.legRight, from: points.legRight,
to: points.center, to: points.center,
x: points.legRight.x + 30 + sa x: points.legRight.x + 30 + sa,
}) })
macro('hd', { macro('hd', {
from: points.center, from: points.center,
to: points.sideRight, to: points.sideRight,
y: points.center.y - 15 - sa y: points.center.y - 15 - sa,
}) })
macro('hd', { macro('hd', {
from: points.gussetTop, from: points.gussetTop,
to: points.gussetRight, to: points.gussetRight,
y: points.gussetRight.y + 15 + sa * 2 y: points.gussetRight.y + 15 + sa * 2,
}) })
macro('hd', { macro('hd', {
from: points.gussetTop, from: points.gussetTop,
to: points.legRight, to: points.legRight,
y: points.gussetRight.y + 30 + sa * 2 y: points.gussetRight.y + 30 + sa * 2,
}) })
macro('ld', { macro('ld', {
from: points.gussetRight, from: points.gussetRight,
to: points.legRight, to: points.legRight,
d: -15 - sa * 2 d: -15 - sa * 2,
}) })
} }

View file

@ -35,7 +35,7 @@ export default function (part) {
paperless, paperless,
macro, macro,
snippets, snippets,
Snippet Snippet,
} = part.shorthand() } = part.shorthand()
// Initialize // Initialize
@ -169,11 +169,11 @@ export default function (part) {
macro('title', { macro('title', {
at: points.midMid, at: points.midMid,
nr: 2, nr: 2,
title: 'front' title: 'front',
}) })
macro('grainline', { macro('grainline', {
from: points.dartJoin, from: points.dartJoin,
to: points.topMid to: points.topMid,
}) })
snippets.sideNotch = new Snippet('notch', points.midRight) snippets.sideNotch = new Snippet('notch', points.midRight)
points.curveNotch = new Path() points.curveNotch = new Path()
@ -189,44 +189,44 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.topLeft, from: points.topLeft,
to: points.topRight, to: points.topRight,
y: points.topLeft.y - 15 - sa y: points.topLeft.y - 15 - sa,
}) })
macro('hd', { macro('hd', {
from: points.midLeft, from: points.midLeft,
to: points.midRight, to: points.midRight,
y: points.topLeft.y - 30 - sa y: points.topLeft.y - 30 - sa,
}) })
macro('vd', { macro('vd', {
from: points.midLeft, from: points.midLeft,
to: points.topMid, to: points.topMid,
x: points.midLeft.x - 15 - sa x: points.midLeft.x - 15 - sa,
}) })
macro('vd', { macro('vd', {
from: points.midLeft, from: points.midLeft,
to: points.topLeft, to: points.topLeft,
x: points.midLeft.x - 30 - sa x: points.midLeft.x - 30 - sa,
}) })
if (options.bulge === 0) { if (options.bulge === 0) {
macro('hd', { macro('hd', {
from: points.leftTuskLeft, from: points.leftTuskLeft,
to: points.rightTuskRight, to: points.rightTuskRight,
y: points.leftTuskLeft.y + 15 + sa y: points.leftTuskLeft.y + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.leftTuskLeft, from: points.leftTuskLeft,
to: points.topLeft, to: points.topLeft,
x: points.midLeft.x - 45 - sa x: points.midLeft.x - 45 - sa,
}) })
} else { } else {
macro('vd', { macro('vd', {
from: points.leftTuskLeft, from: points.leftTuskLeft,
to: points.topLeft, to: points.topLeft,
x: points.midLeft.x - 45 - sa x: points.midLeft.x - 45 - sa,
}) })
macro('vd', { macro('vd', {
from: points.leftTuskRight, from: points.leftTuskRight,
to: points.topLeft, to: points.topLeft,
x: points.midLeft.x - 60 - sa x: points.midLeft.x - 60 - sa,
}) })
points.narrowRight = new Path() points.narrowRight = new Path()
.move(points.midRight) .move(points.midRight)
@ -240,32 +240,32 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.narrowLeft, from: points.narrowLeft,
to: points.narrowRight, to: points.narrowRight,
y: points.narrowLeft.y y: points.narrowLeft.y,
}) })
macro('hd', { macro('hd', {
from: points.leftTuskRight, from: points.leftTuskRight,
to: points.rightTuskLeft, to: points.rightTuskLeft,
y: points.rightTuskLeft.y + 15 + sa y: points.rightTuskLeft.y + 15 + sa,
}) })
macro('hd', { macro('hd', {
from: points.leftTuskLeft, from: points.leftTuskLeft,
to: points.rightTuskRight, to: points.rightTuskRight,
y: points.rightTuskLeft.y + 30 + sa y: points.rightTuskLeft.y + 30 + sa,
}) })
macro('ld', { macro('ld', {
from: points.rightTuskLeft, from: points.rightTuskLeft,
to: points.rightTuskRight, to: points.rightTuskRight,
d: -15 - sa d: -15 - sa,
}) })
macro('vd', { macro('vd', {
from: points.narrowRight, from: points.narrowRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + 15 + sa x: points.topRight.x + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.dartJoin, from: points.dartJoin,
to: points.topRight, to: points.topRight,
x: points.topRight.x + 30 + sa x: points.topRight.x + 30 + sa,
}) })
} }
} }

View file

@ -12,7 +12,7 @@ export default function (part) {
paperless, paperless,
macro, macro,
Snippet, Snippet,
snippets snippets,
} = part.shorthand() } = part.shorthand()
// Initialize // Initialize
@ -62,11 +62,11 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title.shift(-90, 15), at: points.title.shift(-90, 15),
nr: 4, nr: 4,
title: 'inset' title: 'inset',
}) })
macro('grainline', { macro('grainline', {
from: points.bottomLeft.shift(0, 15), from: points.bottomLeft.shift(0, 15),
to: points.topLeft.shift(0, 15) to: points.topLeft.shift(0, 15),
}) })
snippets.notch = new Snippet( snippets.notch = new Snippet(
'notch', 'notch',
@ -82,22 +82,22 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.topLeft, to: points.topLeft,
x: points.topLeft.x - 15 - sa x: points.topLeft.x - 15 - sa,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.tip, to: points.tip,
x: points.tip.x + 15 + sa x: points.tip.x + 15 + sa,
}) })
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomRight.y + 15 + sa y: points.bottomRight.y + 15 + sa,
}) })
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.tip, to: points.tip,
y: points.bottomRight.y + 30 + sa y: points.bottomRight.y + 30 + sa,
}) })
} }

View file

@ -13,7 +13,7 @@ export default function (part) {
macro, macro,
utils, utils,
snippets, snippets,
Snippet Snippet,
} = part.shorthand() } = part.shorthand()
// Initialize // Initialize
@ -65,7 +65,7 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title.shift(90, 30), at: points.title.shift(90, 30),
nr: 3, nr: 3,
title: 'side' title: 'side',
}) })
macro('scalebox', { at: points.title.shift(-90, 40) }) macro('scalebox', { at: points.title.shift(-90, 40) })
if (sa) { if (sa) {
@ -77,7 +77,7 @@ export default function (part) {
} }
macro('grainline', { macro('grainline', {
from: new Point(points.bottomRight.x / 2, points.bottomRight.y), from: new Point(points.bottomRight.x / 2, points.bottomRight.y),
to: new Point(points.bottomRight.x / 2, points.topRight.y) to: new Point(points.bottomRight.x / 2, points.topRight.y),
}) })
snippets.frontNotch = new Snippet( snippets.frontNotch = new Snippet(
'notch', 'notch',
@ -94,22 +94,22 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.topLeft, to: points.topLeft,
x: points.topLeft.x - 15 - sa x: points.topLeft.x - 15 - sa,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + 15 + sa x: points.topRight.x + 15 + sa,
}) })
macro('hd', { macro('hd', {
from: points.topLeft, from: points.topLeft,
to: points.topRight, to: points.topRight,
y: points.topLeft.y - 15 - sa y: points.topLeft.y - 15 - sa,
}) })
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + 15 + sa y: points.bottomLeft.y + 15 + sa,
}) })
} }

View file

@ -20,7 +20,7 @@ export default {
'sleeveBend', 'sleeveBend',
'sleeveLengthBonus', 'sleeveLengthBonus',
'waistEase', 'waistEase',
'seatEase' 'seatEase',
], ],
advanced: [ advanced: [
'backNeckCutout', 'backNeckCutout',
@ -30,7 +30,7 @@ export default {
'shoulderSlopeReduction', 'shoulderSlopeReduction',
'sleevecapHeight', 'sleevecapHeight',
'sleevecapEase', 'sleevecapEase',
'contour' 'contour',
], ],
pockets: [ pockets: [
'pocketPlacementHorizontal', 'pocketPlacementHorizontal',
@ -46,10 +46,10 @@ export default {
'innerPocketPlacement', 'innerPocketPlacement',
'innerPocketWidth', 'innerPocketWidth',
'innerPocketDepth', 'innerPocketDepth',
'innerPocketWeltHeight' 'innerPocketWeltHeight',
], ],
style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length'], style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length'],
collar: ['collarHeight', 'collarSpread', 'collarFlare'] collar: ['collarHeight', 'collarSpread', 'collarFlare'],
}, },
measurements: [ measurements: [
'biceps', 'biceps',
@ -70,7 +70,7 @@ export default {
// For breasts // For breasts
'highBust', 'highBust',
'bustSpan', 'bustSpan',
'hpsToBust' 'hpsToBust',
], ],
dependencies: { dependencies: {
bentBack: 'bentBase', bentBack: 'bentBase',
@ -95,7 +95,7 @@ export default {
innerPocketBag: 'carltonFront', innerPocketBag: 'carltonFront',
innerPocketTab: 'carltonFront', innerPocketTab: 'carltonFront',
front: 'carltonFront', front: 'carltonFront',
side: 'front' side: 'front',
}, },
inject: { inject: {
bentBack: 'bentBase', bentBack: 'bentBase',
@ -109,7 +109,7 @@ export default {
collar: 'collarStand', collar: 'collarStand',
pocketLining: 'pocket', pocketLining: 'pocket',
front: 'carltonFront', front: 'carltonFront',
side: 'front' side: 'front',
}, },
hide: [ hide: [
'bentBase', 'bentBase',
@ -118,7 +118,7 @@ export default {
'bentSleeve', 'bentSleeve',
'bentTopSleeve', 'bentTopSleeve',
'bentUnderSleeve', 'bentUnderSleeve',
'carltonFront' 'carltonFront',
], ],
parts: [ parts: [
'back', 'back',
@ -136,7 +136,7 @@ export default {
'chestPocketBag', 'chestPocketBag',
'innerPocketWelt', 'innerPocketWelt',
'innerPocketBag', 'innerPocketBag',
'innerPocketTab' 'innerPocketTab',
], ],
options: { options: {
// Constants // Constants
@ -193,6 +193,6 @@ export default {
collarFlare: { pct: 20, min: 0, max: 40 }, collarFlare: { pct: 20, min: 0, max: 40 },
// Carlita-specific options // Carlita-specific options
contour: { pct: 50, min: 25, max: 75 } contour: { pct: 50, min: 25, max: 75 },
} },
} }

View file

@ -13,7 +13,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
/** /**
@ -82,7 +82,7 @@ export default function (part) {
'armholeHollow', 'armholeHollow',
'armholeHollowCp2', 'armholeHollowCp2',
'armholePitchCp1', 'armholePitchCp1',
'armholePitch' 'armholePitch',
] ]
// Store these, we'll use them in the side part // Store these, we'll use them in the side part
store.set('side', side) store.set('side', side)
@ -176,7 +176,7 @@ export default function (part) {
'chestPocketTopLeft', 'chestPocketTopLeft',
'chestPocketTopRight', 'chestPocketTopRight',
'chestPocketBottomLeft', 'chestPocketBottomLeft',
'chestPocketBottomRight' 'chestPocketBottomRight',
] ]
for (let i of belowBust) { for (let i of belowBust) {
// Round points depend on options, so add a check // Round points depend on options, so add a check
@ -349,7 +349,7 @@ export default function (part) {
snippets.button3Right = new Snippet('button', points.button3Right).attr('data-scale', 2) snippets.button3Right = new Snippet('button', points.button3Right).attr('data-scale', 2)
macro('sprinkle', { macro('sprinkle', {
snippet: 'notch', snippet: 'notch',
on: ['cfNeck', 'rollLineStart', 'bustPoint', 'chestPocketTopLeft', 'chestPocketBottomLeft'] on: ['cfNeck', 'rollLineStart', 'bustPoint', 'chestPocketTopLeft', 'chestPocketBottomLeft'],
}) })
points.logo = points.cfSeat.shiftFractionTowards(points.cfHem, 0.5) points.logo = points.cfSeat.shiftFractionTowards(points.cfHem, 0.5)
snippets.logo = new Snippet('logo', points.logo) snippets.logo = new Snippet('logo', points.logo)
@ -369,122 +369,122 @@ export default function (part) {
macro('ld', { macro('ld', {
from: points.hemEdge, from: points.hemEdge,
to: points.flbHem, to: points.flbHem,
d: 15 d: 15,
}) })
macro('hd', { macro('hd', {
from: points.hemEdge, from: points.hemEdge,
to: points.psHem, to: points.psHem,
y: points.psHem.y + 15 + 3 * sa y: points.psHem.y + 15 + 3 * sa,
}) })
macro('hd', { macro('hd', {
from: points.rollLineStart, from: points.rollLineStart,
to: points.pocketTopLeft, to: points.pocketTopLeft,
y: points.pocketFlapBottomLeft.y y: points.pocketFlapBottomLeft.y,
}) })
macro('vd', { macro('vd', {
from: points.pocketFlapTopLeft, from: points.pocketFlapTopLeft,
to: points.button3Right, to: points.button3Right,
x: points.bustPoint.x + sa + 15 x: points.bustPoint.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.pocketTopLeft, from: points.pocketTopLeft,
to: points.button3Right, to: points.button3Right,
x: points.bustPoint.x + sa + 30 x: points.bustPoint.x + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.chestPocketBottomLeft, from: points.chestPocketBottomLeft,
to: points.button3Right, to: points.button3Right,
x: points.bustPoint.x - 15 x: points.bustPoint.x - 15,
}) })
macro('hd', { macro('hd', {
from: points.rollLineStart, from: points.rollLineStart,
to: points.chestPocketBottomLeft, to: points.chestPocketBottomLeft,
y: points.chestPocketBottomLeft.y + 15 y: points.chestPocketBottomLeft.y + 15,
}) })
macro('hd', { macro('hd', {
from: points.rollLineStart, from: points.rollLineStart,
to: points.button3Left, to: points.button3Left,
y: points.button3Left.y + 15 y: points.button3Left.y + 15,
}) })
macro('hd', { macro('hd', {
from: points.button3Left, from: points.button3Left,
to: points.button3Right, to: points.button3Right,
y: points.button3Left.y + 15 y: points.button3Left.y + 15,
}) })
macro('vd', { macro('vd', {
from: points.psHem, from: points.psHem,
to: points.bustPoint, to: points.bustPoint,
x: points.bustPoint.x + sa + 45 x: points.bustPoint.x + sa + 45,
}) })
macro('vd', { macro('vd', {
from: points.psHem, from: points.psHem,
to: points.armholePitch, to: points.armholePitch,
x: points.armholePitch.x + sa + 15 x: points.armholePitch.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.armholePitch, from: points.armholePitch,
to: points.shoulder, to: points.shoulder,
x: points.shoulder.x + sa + 15 x: points.shoulder.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.armholePitch, from: points.armholePitch,
to: points.neck, to: points.neck,
x: points.shoulder.x + sa + 30 x: points.shoulder.x + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.rollLineStart, from: points.rollLineStart,
to: points.collarTip, to: points.collarTip,
x: points.rollLineStart.x - sa - 15 x: points.rollLineStart.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.button2Left, from: points.button2Left,
to: points.rollLineStart, to: points.rollLineStart,
x: points.rollLineStart.x - sa - 15 x: points.rollLineStart.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.button1Left, from: points.button1Left,
to: points.button2Left, to: points.button2Left,
x: points.rollLineStart.x - sa - 15 x: points.rollLineStart.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hemEdge, from: points.hemEdge,
to: points.collarTip, to: points.collarTip,
x: points.rollLineStart.x - sa - 30 x: points.rollLineStart.x - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.collarTip, to: points.collarTip,
y: points.collarTip.y - sa - 15 y: points.collarTip.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.cfNeck, to: points.cfNeck,
y: points.collarTip.y - sa - 30 y: points.collarTip.y - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.rollLineEnd, to: points.rollLineEnd,
y: points.collarTip.y - sa - 45 y: points.collarTip.y - sa - 45,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.neck, to: points.neck,
y: points.neck.y - sa - 15 y: points.neck.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.armholePitch, to: points.armholePitch,
y: points.neck.y - sa - 30 y: points.neck.y - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.shoulder, to: points.shoulder,
y: points.neck.y - sa - 45 y: points.neck.y - sa - 45,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.armhole, to: points.armhole,
y: points.neck.y - sa - 60 y: points.neck.y - sa - 60,
}) })
} }
} }

View file

@ -38,7 +38,7 @@ for (let m of [
'draftChestPocketBag', 'draftChestPocketBag',
'draftInnerPocketWelt', 'draftInnerPocketWelt',
'draftInnerPocketBag', 'draftInnerPocketBag',
'draftInnerPocketTab' 'draftInnerPocketTab',
]) { ]) {
Pattern.prototype[m] = function (part) { Pattern.prototype[m] = function (part) {
return new Carlton(this.settings)[m](part) return new Carlton(this.settings)[m](part)

View file

@ -10,7 +10,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
// Give points their original names // Give points their original names
@ -39,7 +39,7 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: '1b', nr: '1b',
title: 'side' title: 'side',
}) })
points.logo = points.psHem.shiftFractionTowards(points.seat, 0.5) points.logo = points.psHem.shiftFractionTowards(points.seat, 0.5)
@ -49,7 +49,7 @@ export default function (part) {
points.grainlineTo = new Point(points.grainlineFrom.x, points.armholePitchCp1.y) points.grainlineTo = new Point(points.grainlineFrom.x, points.armholePitchCp1.y)
macro('grainline', { macro('grainline', {
from: points.grainlineFrom, from: points.grainlineFrom,
to: points.grainlineTo to: points.grainlineTo,
}) })
snippets.bust = new Snippet('notch', points.bustPoint) snippets.bust = new Snippet('notch', points.bustPoint)
@ -66,56 +66,56 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.psHem, from: points.psHem,
to: points.psWaist, to: points.psWaist,
x: points.psWaist.x - sa - 15 x: points.psWaist.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.psHem, from: points.psHem,
to: points.bustPoint, to: points.bustPoint,
x: points.bustPoint.x - sa - 15 x: points.bustPoint.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hem, from: points.hem,
to: points.seat, to: points.seat,
x: points.hem.x + sa + 15 x: points.hem.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.hem, from: points.hem,
to: points.waist, to: points.waist,
x: points.hem.x + sa + 30 x: points.hem.x + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.hem, from: points.hem,
to: points.armhole, to: points.armhole,
x: points.hem.x + sa + 45 x: points.hem.x + sa + 45,
}) })
macro('vd', { macro('vd', {
from: points.hem, from: points.hem,
to: points.armholePitch, to: points.armholePitch,
x: points.hem.x + sa + 60 x: points.hem.x + sa + 60,
}) })
macro('hd', { macro('hd', {
from: points.psWaist, from: points.psWaist,
to: points.waist to: points.waist,
}) })
macro('hd', { macro('hd', {
from: points.bustPoint, from: points.bustPoint,
to: points.waist, to: points.waist,
y: points.bustPoint.y y: points.bustPoint.y,
}) })
macro('hd', { macro('hd', {
from: points.bustPoint, from: points.bustPoint,
to: points.armholePitch, to: points.armholePitch,
y: points.armholePitch.y - sa - 15 y: points.armholePitch.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.bustPoint, from: points.bustPoint,
to: points.armhole, to: points.armhole,
y: points.armholePitch.y - sa - 30 y: points.armholePitch.y - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.psHem, from: points.psHem,
to: points.hem, to: points.hem,
y: points.hem.y + 3 * sa + 15 y: points.hem.y + 3 * sa + 15,
}) })
} }
} }

View file

@ -20,7 +20,7 @@ export default {
'sleeveBend', 'sleeveBend',
'sleeveLengthBonus', 'sleeveLengthBonus',
'waistEase', 'waistEase',
'seatEase' 'seatEase',
], ],
advanced: [ advanced: [
'backNeckCutout', 'backNeckCutout',
@ -29,7 +29,7 @@ export default {
'lapelReduction', 'lapelReduction',
'shoulderSlopeReduction', 'shoulderSlopeReduction',
'sleevecapHeight', 'sleevecapHeight',
'sleevecapEase' 'sleevecapEase',
], ],
pockets: [ pockets: [
'pocketPlacementHorizontal', 'pocketPlacementHorizontal',
@ -45,10 +45,10 @@ export default {
'innerPocketPlacement', 'innerPocketPlacement',
'innerPocketWidth', 'innerPocketWidth',
'innerPocketDepth', 'innerPocketDepth',
'innerPocketWeltHeight' 'innerPocketWeltHeight',
], ],
style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length'], style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length'],
collar: ['collarHeight', 'collarSpread', 'collarFlare'] collar: ['collarHeight', 'collarSpread', 'collarFlare'],
}, },
measurements: [ measurements: [
'biceps', 'biceps',
@ -65,7 +65,7 @@ export default {
'wrist', 'wrist',
'waistToFloor', 'waistToFloor',
'waistToSeat', 'waistToSeat',
'seat' 'seat',
], ],
dependencies: { dependencies: {
bentBack: 'bentBase', bentBack: 'bentBase',
@ -88,7 +88,7 @@ export default {
chestPocketBag: 'front', chestPocketBag: 'front',
innerPocketWelt: 'front', innerPocketWelt: 'front',
innerPocketBag: 'front', innerPocketBag: 'front',
innerPocketTab: 'front' innerPocketTab: 'front',
}, },
inject: { inject: {
bentBack: 'bentBase', bentBack: 'bentBase',
@ -100,7 +100,7 @@ export default {
topSleeve: 'bentTopSleeve', topSleeve: 'bentTopSleeve',
underSleeve: 'bentUnderSleeve', underSleeve: 'bentUnderSleeve',
collar: 'collarStand', collar: 'collarStand',
pocketLining: 'pocket' pocketLining: 'pocket',
}, },
hide: ['bentBase', 'bentBack', 'bentFront', 'bentSleeve', 'bentTopSleeve', 'bentUnderSleeve'], hide: ['bentBase', 'bentBack', 'bentFront', 'bentSleeve', 'bentTopSleeve', 'bentUnderSleeve'],
options: { options: {
@ -155,6 +155,6 @@ export default {
cuffLength: { pct: 15, min: 10, max: 20 }, cuffLength: { pct: 15, min: 10, max: 20 },
collarHeight: { pct: 9.6, min: 8, max: 11 }, collarHeight: { pct: 9.6, min: 8, max: 11 },
collarSpread: { deg: 4, min: 2, max: 6 }, collarSpread: { deg: 4, min: 2, max: 6 },
collarFlare: { pct: 20, min: 0, max: 40 } collarFlare: { pct: 20, min: 0, max: 40 },
} },
} }

View file

@ -14,7 +14,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
calculateRatios(part) calculateRatios(part)
@ -96,12 +96,12 @@ export default function (part) {
if (complete) { if (complete) {
macro('sprinkle', { macro('sprinkle', {
snippet: 'bnotch', snippet: 'bnotch',
on: ['shoulder', 'bpTriangleTip'] on: ['shoulder', 'bpTriangleTip'],
}) })
macro('grainline', { macro('grainline', {
from: points.cbWaist, from: points.cbWaist,
to: points.bpStart to: points.bpStart,
}) })
points.logo = new Point(points.armhole.x * 0.7, points.dartTip.y) points.logo = new Point(points.armhole.x * 0.7, points.dartTip.y)
@ -122,102 +122,102 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.bpBottom, from: points.bpBottom,
to: points.cbWaist, to: points.cbWaist,
y: points.cbWaist.y + 15 + sa y: points.cbWaist.y + 15 + sa,
}) })
macro('hd', { macro('hd', {
from: points.cbWaist, from: points.cbWaist,
to: points.dartLeft, to: points.dartLeft,
y: points.cbWaist.y + 15 + sa y: points.cbWaist.y + 15 + sa,
}) })
macro('hd', { macro('hd', {
from: points.dartLeft, from: points.dartLeft,
to: points.dartRight, to: points.dartRight,
y: points.cbWaist.y + 15 + sa y: points.cbWaist.y + 15 + sa,
}) })
macro('hd', { macro('hd', {
from: points.dartRight, from: points.dartRight,
to: points.waist, to: points.waist,
y: points.cbWaist.y + 15 + sa y: points.cbWaist.y + 15 + sa,
}) })
macro('hd', { macro('hd', {
from: points.cbWaist, from: points.cbWaist,
to: points.waist, to: points.waist,
y: points.cbWaist.y + 30 + sa y: points.cbWaist.y + 30 + sa,
}) })
macro('hd', { macro('hd', {
from: points.bpBottom, from: points.bpBottom,
to: points.waist, to: points.waist,
y: points.cbWaist.y + 45 + sa y: points.cbWaist.y + 45 + sa,
}) })
macro('vd', { macro('vd', {
from: points.waist, from: points.waist,
to: points.armhole, to: points.armhole,
x: points.armhole.x + 15 + sa x: points.armhole.x + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.armhole, from: points.armhole,
to: points.armholePitch, to: points.armholePitch,
x: points.armhole.x + 15 + sa x: points.armhole.x + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.armhole, from: points.armhole,
to: points.shoulder, to: points.shoulder,
x: points.armhole.x + 30 + sa x: points.armhole.x + 30 + sa,
}) })
macro('vd', { macro('vd', {
from: points.waist, from: points.waist,
to: points.shoulder, to: points.shoulder,
x: points.armhole.x + 45 + sa x: points.armhole.x + 45 + sa,
}) })
macro('vd', { macro('vd', {
from: points.dartRight, from: points.dartRight,
to: points.dartTip, to: points.dartTip,
x: points.dartRight.x + 15 x: points.dartRight.x + 15,
}) })
macro('vd', { macro('vd', {
from: points.bpBottom, from: points.bpBottom,
to: points.bpTop, to: points.bpTop,
x: points.bpTop.x - 15 - sa x: points.bpTop.x - 15 - sa,
}) })
macro('vd', { macro('vd', {
from: points.bpTop, from: points.bpTop,
to: points.cbNeck, to: points.cbNeck,
x: points.bpTop.x - 15 - sa x: points.bpTop.x - 15 - sa,
}) })
macro('vd', { macro('vd', {
from: points.bpBottom, from: points.bpBottom,
to: points.neck, to: points.neck,
x: points.bpTop.x - 30 - sa x: points.bpTop.x - 30 - sa,
}) })
macro('vd', { macro('vd', {
from: points.bpStart, from: points.bpStart,
to: points.bpTriangleTip, to: points.bpTriangleTip,
x: points.bpTriangleEdge.x + 15 x: points.bpTriangleEdge.x + 15,
}) })
macro('hd', { macro('hd', {
from: points.bpStart, from: points.bpStart,
to: points.bpTriangleEdge, to: points.bpTriangleEdge,
y: points.bpTriangleEdge.y + 15 y: points.bpTriangleEdge.y + 15,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.neck, to: points.neck,
y: points.neck.y - 15 - sa y: points.neck.y - 15 - sa,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.armholePitch, to: points.armholePitch,
y: points.neck.y - 30 - sa y: points.neck.y - 30 - sa,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.shoulder, to: points.shoulder,
y: points.neck.y - 45 - sa y: points.neck.y - 45 - sa,
}) })
macro('hd', { macro('hd', {
from: points.cbNeck, from: points.cbNeck,
to: points.armhole, to: points.armhole,
y: points.neck.y - 60 - sa y: points.neck.y - 60 - sa,
}) })
} }
} }

View file

@ -10,7 +10,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
let length = 1.6 * (store.get('cbToDart') + store.get('dartToSide')) let length = 1.6 * (store.get('cbToDart') + store.get('dartToSide'))
@ -27,7 +27,7 @@ export default function (part) {
via: points.topLeft, via: points.topLeft,
prefix: 'roundTop', prefix: 'roundTop',
radius: width / 4, radius: width / 4,
render: true render: true,
}) })
macro('round', { macro('round', {
from: points.topLeft, from: points.topLeft,
@ -35,7 +35,7 @@ export default function (part) {
via: points.bottomLeft, via: points.bottomLeft,
prefix: 'roundBottom', prefix: 'roundBottom',
radius: width / 4, radius: width / 4,
render: true render: true,
}) })
// Paths // Paths
@ -56,7 +56,7 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 6, nr: 6,
title: 'belt' title: 'belt',
}) })
points.logo = new Point(points.bottomRight.x * 0.75, points.bottomRight.y * 0.65) points.logo = new Point(points.bottomRight.x * 0.75, points.bottomRight.y * 0.65)
snippets.logo = new Snippet('logo', points.logo) snippets.logo = new Snippet('logo', points.logo)
@ -71,22 +71,22 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.roundBottomStart, from: points.roundBottomStart,
to: points.roundBottomEnd, to: points.roundBottomEnd,
y: points.roundBottomEnd.y + sa + 15 y: points.roundBottomEnd.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.roundBottomStart, from: points.roundBottomStart,
to: points.button, to: points.button,
y: points.roundBottomEnd.y + sa + 30 y: points.roundBottomEnd.y + sa + 30,
}) })
macro('hd', { macro('hd', {
from: points.roundBottomStart, from: points.roundBottomStart,
to: points.bottomRight, to: points.bottomRight,
y: points.roundBottomEnd.y + sa + 45 y: points.roundBottomEnd.y + sa + 45,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + sa + 15 x: points.topRight.x + sa + 15,
}) })
} }
} }

View file

@ -9,7 +9,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
points.topLeft = new Point(0, 0) points.topLeft = new Point(0, 0)
@ -47,12 +47,12 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 17, nr: 17,
title: 'chestPocketBag' title: 'chestPocketBag',
}) })
macro('grainline', { macro('grainline', {
from: points.bottomLeft.shift(0, 10), from: points.bottomLeft.shift(0, 10),
to: points.topLeft.shift(0, 10) to: points.topLeft.shift(0, 10),
}) })
if (sa) { if (sa) {
@ -61,14 +61,14 @@ export default function (part) {
macro('ld', { macro('ld', {
from: points.bottomRight.shift(180, 15), from: points.bottomRight.shift(180, 15),
to: points.topRight.shift(180, 15), to: points.topRight.shift(180, 15),
text: units(store.get('chestPocketBagDepth') * 2) text: units(store.get('chestPocketBagDepth') * 2),
}) })
if (paperless) { if (paperless) {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + sa + 15 y: points.bottomLeft.y + sa + 15,
}) })
} }
} }

View file

@ -24,7 +24,7 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 12, nr: 12,
title: 'chestPocketWelt' title: 'chestPocketWelt',
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
@ -33,12 +33,12 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + sa + 15 y: points.bottomLeft.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + sa + 15 x: points.topRight.x + sa + 15,
}) })
} }
} }

View file

@ -37,20 +37,20 @@ export default function (part) {
let rotate = { let rotate = {
1: { 1: {
pivot: 'cutBottom1', pivot: 'cutBottom1',
points: ['cutBottom2', 'cutTop1', 'cutTop2', 'q2Cp1', 'q2Cp2'] points: ['cutBottom2', 'cutTop1', 'cutTop2', 'q2Cp1', 'q2Cp2'],
}, },
2: { 2: {
pivot: 'cutBottom2', pivot: 'cutBottom2',
points: ['cutBottom3', 'cutTop2', 'cutTop3', 'q3Cp1', 'q3Cp2'] points: ['cutBottom3', 'cutTop2', 'cutTop3', 'q3Cp1', 'q3Cp2'],
}, },
3: { 3: {
pivot: 'cutBottom3', pivot: 'cutBottom3',
points: ['standTip', 'bottomRight', 'cutTop4', 'cutTop3', 'q4Cp1'] points: ['standTip', 'bottomRight', 'cutTop4', 'cutTop3', 'q4Cp1'],
}, },
4: { 4: {
pivot: 'standTip', pivot: 'standTip',
points: ['topRight', 'bottomRight', 'cutTop4'] points: ['topRight', 'bottomRight', 'cutTop4'],
} },
} }
let angle = -1 * options.collarSpread let angle = -1 * options.collarSpread
@ -77,7 +77,7 @@ export default function (part) {
'rot2cutTop3', 'rot2cutTop3',
'rot2cutBottom3', 'rot2cutBottom3',
'rot2q3Cp1', 'rot2q3Cp1',
'rot2q3Cp2' 'rot2q3Cp2',
]) ])
points[i] = points[i].shift(angle, distance) points[i] = points[i].shift(angle, distance)
@ -172,7 +172,7 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 8, nr: 8,
title: 'collar' title: 'collar',
}) })
// Remove grainline from collarstand part // Remove grainline from collarstand part
@ -180,7 +180,7 @@ export default function (part) {
macro('cutonfold', { macro('cutonfold', {
from: points.topLeft, from: points.topLeft,
to: points.standTop, to: points.standTop,
grainline: true grainline: true,
}) })
if (sa) { if (sa) {
@ -196,47 +196,47 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.standTop, from: points.standTop,
to: points.rot3standTip, to: points.rot3standTip,
y: points.rot4bottomRight.y + sa + 15 y: points.rot4bottomRight.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.standTop, from: points.standTop,
to: points.rot4bottomRight, to: points.rot4bottomRight,
y: points.rot4bottomRight.y + sa + 30 y: points.rot4bottomRight.y + sa + 30,
}) })
macro('hd', { macro('hd', {
from: points.standTop, from: points.standTop,
to: points.rot4topRight, to: points.rot4topRight,
y: points.rot4bottomRight.y + sa + 45 y: points.rot4bottomRight.y + sa + 45,
}) })
macro('vd', { macro('vd', {
from: points.standTop, from: points.standTop,
to: points.topLeft, to: points.topLeft,
x: points.topLeft.x - 15 x: points.topLeft.x - 15,
}) })
macro('vd', { macro('vd', {
from: points.rot3standTip, from: points.rot3standTip,
to: points.topLeft, to: points.topLeft,
x: points.topLeft.x - 30 x: points.topLeft.x - 30,
}) })
macro('vd', { macro('vd', {
from: points.rot4topRight, from: points.rot4topRight,
to: points.topLeft, to: points.topLeft,
x: points.rot4topRight.x + sa + 15 x: points.rot4topRight.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.rot4bottomRight, from: points.rot4bottomRight,
to: points.topLeft, to: points.topLeft,
x: points.rot4topRight.x + sa + 30 x: points.rot4topRight.x + sa + 30,
}) })
macro('ld', { macro('ld', {
from: points.rot4bottomRight, from: points.rot4bottomRight,
to: points.rot4topRight, to: points.rot4topRight,
d: -1 * sa - 15 d: -1 * sa - 15,
}) })
macro('ld', { macro('ld', {
from: points.rot3standTip, from: points.rot3standTip,
to: points.rot4bottomRight, to: points.rot4bottomRight,
d: -1 * sa - 15 d: -1 * sa - 15,
}) })
} }
} }

View file

@ -10,7 +10,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
let height = measurements.chest * options.collarHeight let height = measurements.chest * options.collarHeight
@ -48,12 +48,12 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 7, nr: 7,
title: 'collarStand' title: 'collarStand',
}) })
macro('grainline', { macro('grainline', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.standTop to: points.standTop,
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
@ -62,17 +62,17 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.standTipLeft, from: points.standTipLeft,
to: points.standTip, to: points.standTip,
y: points.standTip.y + sa + 15 y: points.standTip.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.standTop, to: points.standTop,
x: points.standTip.x + sa + 15 x: points.standTip.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.standTip, from: points.standTip,
to: points.standTop, to: points.standTop,
x: points.standTip.x + sa + 30 x: points.standTip.x + sa + 30,
}) })
} }
} }

View file

@ -13,14 +13,14 @@ export default function (part) {
to: points.bottomRight, to: points.bottomRight,
via: points.bottomLeft, via: points.bottomLeft,
radius: store.get('cuffRadius'), radius: store.get('cuffRadius'),
prefix: 'roundLeft' prefix: 'roundLeft',
}) })
macro('round', { macro('round', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.topRight, to: points.topRight,
via: points.bottomRight, via: points.bottomRight,
radius: store.get('cuffRadius'), radius: store.get('cuffRadius'),
prefix: 'roundRight' prefix: 'roundRight',
}) })
paths.seam = new Path() paths.seam = new Path()
@ -39,12 +39,12 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 9, nr: 9,
title: 'cuffFacing' title: 'cuffFacing',
}) })
macro('grainline', { macro('grainline', {
from: points.bottomLeft.shift(0, 10 + store.get('cuffRadius')), from: points.bottomLeft.shift(0, 10 + store.get('cuffRadius')),
to: points.topLeft.shift(0, 10 + store.get('cuffRadius')) to: points.topLeft.shift(0, 10 + store.get('cuffRadius')),
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
@ -53,22 +53,22 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.roundRightStart, from: points.roundRightStart,
to: points.roundRightEnd, to: points.roundRightEnd,
x: points.topRight.x + sa + 15 x: points.topRight.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.roundRightStart, from: points.roundRightStart,
to: points.topRight, to: points.topRight,
x: points.topRight.x + sa + 30 x: points.topRight.x + sa + 30,
}) })
macro('hd', { macro('hd', {
from: points.roundRightStart, from: points.roundRightStart,
to: points.roundRightEnd, to: points.roundRightEnd,
y: points.bottomRight.y + sa + 15 y: points.bottomRight.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.roundLeftStart, from: points.roundLeftStart,
to: points.roundRightEnd, to: points.roundRightEnd,
y: points.bottomRight.y + sa + 30 y: points.bottomRight.y + sa + 30,
}) })
} }
} }

View file

@ -15,7 +15,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
calculateRatios(part) calculateRatios(part)
@ -75,14 +75,14 @@ export default function (part) {
to: points.pocketBottomRight, to: points.pocketBottomRight,
via: points.pocketBottomLeft, via: points.pocketBottomLeft,
prefix: 'pocketRoundLeft', prefix: 'pocketRoundLeft',
radius radius,
}) })
macro('round', { macro('round', {
from: points.pocketBottomLeft, from: points.pocketBottomLeft,
to: points.pocketTopRight, to: points.pocketTopRight,
via: points.pocketBottomRight, via: points.pocketBottomRight,
prefix: 'pocketRoundRight', prefix: 'pocketRoundRight',
radius radius,
}) })
store.set('pocketRadius', radius) store.set('pocketRadius', radius)
} }
@ -110,14 +110,14 @@ export default function (part) {
to: points.pocketFlapBottomRight, to: points.pocketFlapBottomRight,
via: points.pocketFlapBottomLeft, via: points.pocketFlapBottomLeft,
prefix: 'pocketFlapRoundLeft', prefix: 'pocketFlapRoundLeft',
radius radius,
}) })
macro('round', { macro('round', {
from: points.pocketFlapBottomLeft, from: points.pocketFlapBottomLeft,
to: points.pocketFlapTopRight, to: points.pocketFlapTopRight,
via: points.pocketFlapBottomRight, via: points.pocketFlapBottomRight,
prefix: 'pocketFlapRoundRight', prefix: 'pocketFlapRoundRight',
radius radius,
}) })
store.set('pocketFlapRadius', radius) store.set('pocketFlapRadius', radius)
} }
@ -139,7 +139,7 @@ export default function (part) {
'chestPocketTopLeft', 'chestPocketTopLeft',
'chestPocketBottomLeft', 'chestPocketBottomLeft',
'chestPocketTopRight', 'chestPocketTopRight',
'chestPocketBottomRight' 'chestPocketBottomRight',
]) ])
points[i] = points[i].rotate(options.chestPocketAngle, points.chestPocketAnchor) points[i] = points[i].rotate(options.chestPocketAngle, points.chestPocketAnchor)
store.set('chestPocketBagDepth', points.button3Left.dx(points.chestPocketBottomLeft)) store.set('chestPocketBagDepth', points.button3Left.dx(points.chestPocketBottomLeft))
@ -306,7 +306,7 @@ export default function (part) {
macro('sprinkle', { macro('sprinkle', {
snippet: 'notch', snippet: 'notch',
on: ['shoulder', 'cfNeck', 'rollLineStart', 'waist', 'seat'] on: ['shoulder', 'cfNeck', 'rollLineStart', 'waist', 'seat'],
}) })
points.logo = new Point(points.chestPocketTopRight.x, points.armhole.y) points.logo = new Point(points.chestPocketTopRight.x, points.armhole.y)
@ -314,7 +314,7 @@ export default function (part) {
macro('grainline', { macro('grainline', {
from: points.cfHem, from: points.cfHem,
to: points.cfNeck to: points.cfNeck,
}) })
if (sa) { if (sa) {
@ -329,142 +329,142 @@ export default function (part) {
macro('ld', { macro('ld', {
from: points.hemEdge, from: points.hemEdge,
to: points.flbHem, to: points.flbHem,
d: 15 d: 15,
}) })
macro('ld', { macro('ld', {
from: points.flbHem, from: points.flbHem,
to: points.hem, to: points.hem,
d: 15 d: 15,
}) })
macro('hd', { macro('hd', {
from: points.hemEdge, from: points.hemEdge,
to: points.hem, to: points.hem,
y: points.hem.y + 15 + 3 * sa y: points.hem.y + 15 + 3 * sa,
}) })
macro('hd', { macro('hd', {
from: points.rollLineStart, from: points.rollLineStart,
to: points.pocketTopLeft, to: points.pocketTopLeft,
y: points.pocketFlapBottomLeft.y y: points.pocketFlapBottomLeft.y,
}) })
macro('vd', { macro('vd', {
from: points.pocketFlapTopRight, from: points.pocketFlapTopRight,
to: points.waist, to: points.waist,
x: points.pocketTopRight.x - 15 x: points.pocketTopRight.x - 15,
}) })
macro('vd', { macro('vd', {
from: points.pocketTopRight, from: points.pocketTopRight,
to: points.waist, to: points.waist,
x: points.pocketTopRight.x - 30 x: points.pocketTopRight.x - 30,
}) })
macro('vd', { macro('vd', {
from: points.chestPocketBottomLeft, from: points.chestPocketBottomLeft,
to: points.waist, to: points.waist,
x: points.chestPocketBottomLeft.x - 15 x: points.chestPocketBottomLeft.x - 15,
}) })
macro('hd', { macro('hd', {
from: points.rollLineStart, from: points.rollLineStart,
to: points.chestPocketBottomLeft, to: points.chestPocketBottomLeft,
y: points.chestPocketBottomLeft.y + 15 y: points.chestPocketBottomLeft.y + 15,
}) })
macro('hd', { macro('hd', {
from: points.rollLineStart, from: points.rollLineStart,
to: points.button3Left, to: points.button3Left,
y: points.button3Left.y + 15 y: points.button3Left.y + 15,
}) })
macro('hd', { macro('hd', {
from: points.button3Left, from: points.button3Left,
to: points.button3Right, to: points.button3Right,
y: points.button3Left.y + 15 y: points.button3Left.y + 15,
}) })
macro('vd', { macro('vd', {
from: points.hem, from: points.hem,
to: points.seat, to: points.seat,
x: points.hem.x + sa + 15 x: points.hem.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.hem, from: points.hem,
to: points.waist, to: points.waist,
x: points.hem.x + sa + 30 x: points.hem.x + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.hem, from: points.hem,
to: points.armhole, to: points.armhole,
x: points.hem.x + sa + 45 x: points.hem.x + sa + 45,
}) })
macro('vd', { macro('vd', {
from: points.armhole, from: points.armhole,
to: points.armholePitch, to: points.armholePitch,
x: points.armhole.x + sa + 15 x: points.armhole.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.armhole, from: points.armhole,
to: points.shoulder, to: points.shoulder,
x: points.armhole.x + sa + 30 x: points.armhole.x + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.armhole, from: points.armhole,
to: points.neck, to: points.neck,
x: points.armhole.x + sa + 45 x: points.armhole.x + sa + 45,
}) })
macro('vd', { macro('vd', {
from: points.rollLineStart, from: points.rollLineStart,
to: points.collarTip, to: points.collarTip,
x: points.rollLineStart.x - sa - 15 x: points.rollLineStart.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.button2Left, from: points.button2Left,
to: points.rollLineStart, to: points.rollLineStart,
x: points.rollLineStart.x - sa - 15 x: points.rollLineStart.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.button1Left, from: points.button1Left,
to: points.button2Left, to: points.button2Left,
x: points.rollLineStart.x - sa - 15 x: points.rollLineStart.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hemEdge, from: points.hemEdge,
to: points.collarTip, to: points.collarTip,
x: points.rollLineStart.x - sa - 30 x: points.rollLineStart.x - sa - 30,
}) })
macro('vd', { macro('vd', {
from: points.hemEdge, from: points.hemEdge,
to: points.neck, to: points.neck,
x: points.rollLineStart.x - sa - 45 x: points.rollLineStart.x - sa - 45,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.collarTip, to: points.collarTip,
y: points.collarTip.y - sa - 15 y: points.collarTip.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.cfNeck, to: points.cfNeck,
y: points.collarTip.y - sa - 30 y: points.collarTip.y - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.rollLineEnd, to: points.rollLineEnd,
y: points.collarTip.y - sa - 45 y: points.collarTip.y - sa - 45,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.neck, to: points.neck,
y: points.neck.y - sa - 15 y: points.neck.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.armholePitch, to: points.armholePitch,
y: points.neck.y - sa - 30 y: points.neck.y - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.shoulder, to: points.shoulder,
y: points.neck.y - sa - 45 y: points.neck.y - sa - 45,
}) })
macro('hd', { macro('hd', {
from: points.lapelStraightEnd, from: points.lapelStraightEnd,
to: points.armhole, to: points.armhole,
y: points.neck.y - sa - 60 y: points.neck.y - sa - 60,
}) })
} }
} }

View file

@ -10,7 +10,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
points.topLeft = new Point(0, 0) points.topLeft = new Point(0, 0)
@ -48,12 +48,12 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 14, nr: 14,
title: 'innerPocketBag' title: 'innerPocketBag',
}) })
macro('grainline', { macro('grainline', {
from: points.bottomLeft.shift(0, 10), from: points.bottomLeft.shift(0, 10),
to: points.topLeft.shift(0, 10) to: points.topLeft.shift(0, 10),
}) })
if (sa) { if (sa) {
@ -62,14 +62,14 @@ export default function (part) {
macro('ld', { macro('ld', {
from: points.bottomRight.shift(180, 15), from: points.bottomRight.shift(180, 15),
to: points.topRight.shift(180, 15), to: points.topRight.shift(180, 15),
text: units(store.get('innerPocketWidth') * options.innerPocketDepth * 2) text: units(store.get('innerPocketWidth') * options.innerPocketDepth * 2),
}) })
if (paperless) { if (paperless) {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + sa + 15 y: points.bottomLeft.y + sa + 15,
}) })
} }
} }

View file

@ -24,12 +24,12 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 15, nr: 15,
title: 'innerPocketTab' title: 'innerPocketTab',
}) })
macro('grainline', { macro('grainline', {
from: points.top, from: points.top,
to: points.top.shift(-45, points.top.x * 0.7) to: points.top.shift(-45, points.top.x * 0.7),
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')
@ -38,17 +38,17 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.topLeft, from: points.topLeft,
to: points.top, to: points.top,
y: points.topLeft.y - sa - 15 y: points.topLeft.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.topLeft, from: points.topLeft,
to: points.topRight, to: points.topRight,
y: points.topLeft.y - sa - 30 y: points.topLeft.y - sa - 30,
}) })
macro('vd', { macro('vd', {
from: points.bottom, from: points.bottom,
to: points.topRight, to: points.topRight,
x: points.topRight.x + sa + 15 x: points.topRight.x + sa + 15,
}) })
} }
} }

View file

@ -43,12 +43,12 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 13, nr: 13,
title: 'innerPocketWelt' title: 'innerPocketWelt',
}) })
macro('grainline', { macro('grainline', {
from: points.bottomLeft.shift(0, 10), from: points.bottomLeft.shift(0, 10),
to: points.topLeft.shift(0, 10) to: points.topLeft.shift(0, 10),
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
@ -57,22 +57,22 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.realBottomRight, from: points.realBottomRight,
to: points.realTopRight, to: points.realTopRight,
x: points.topRight.x + sa + 15 x: points.topRight.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + sa + 30 x: points.topRight.x + sa + 30,
}) })
macro('hd', { macro('hd', {
from: points.realBottomLeft, from: points.realBottomLeft,
to: points.realBottomRight, to: points.realBottomRight,
y: points.bottomLeft.y + sa + 15 y: points.bottomLeft.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + sa + 30 y: points.bottomLeft.y + sa + 30,
}) })
} }
} }

View file

@ -9,7 +9,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
points.topLeft = new Point(0, 0) points.topLeft = new Point(0, 0)
@ -24,14 +24,14 @@ export default function (part) {
to: points.bottomRight, to: points.bottomRight,
via: points.bottomLeft, via: points.bottomLeft,
radius: store.get('pocketRadius'), radius: store.get('pocketRadius'),
prefix: 'roundLeft' prefix: 'roundLeft',
}) })
macro('round', { macro('round', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.topRight, to: points.topRight,
via: points.bottomRight, via: points.bottomRight,
radius: store.get('pocketRadius'), radius: store.get('pocketRadius'),
prefix: 'roundRight' prefix: 'roundRight',
}) })
paths.seam = new Path() paths.seam = new Path()
@ -57,12 +57,12 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 10, nr: 10,
title: 'pocket' title: 'pocket',
}) })
macro('grainline', { macro('grainline', {
from: points.bottomLeft.shift(0, 10 + (store.get('pocketRadius') || 0)), from: points.bottomLeft.shift(0, 10 + (store.get('pocketRadius') || 0)),
to: points.edgeLeft.shift(0, 10 + (store.get('pocketRadius') || 0)) to: points.edgeLeft.shift(0, 10 + (store.get('pocketRadius') || 0)),
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
@ -71,23 +71,23 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + sa + 15 x: points.topRight.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.edgeRight, to: points.edgeRight,
x: points.topRight.x + sa + 30 x: points.topRight.x + sa + 30,
}) })
macro('hd', { macro('hd', {
from: points.edgeLeft, from: points.edgeLeft,
to: points.edgeRight, to: points.edgeRight,
y: points.edgeRight.y - sa - 15 y: points.edgeRight.y - sa - 15,
}) })
if (options.pocketRadius > 0) { if (options.pocketRadius > 0) {
macro('hd', { macro('hd', {
from: points.roundRightStart, from: points.roundRightStart,
to: points.roundRightEnd, to: points.roundRightEnd,
y: points.bottomRight.y + sa + 15 y: points.bottomRight.y + sa + 15,
}) })
} }
} }

View file

@ -9,7 +9,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
points.topLeft = new Point(0, 0) points.topLeft = new Point(0, 0)
@ -22,14 +22,14 @@ export default function (part) {
to: points.bottomRight, to: points.bottomRight,
via: points.bottomLeft, via: points.bottomLeft,
radius: store.get('pocketFlapRadius'), radius: store.get('pocketFlapRadius'),
prefix: 'roundLeft' prefix: 'roundLeft',
}) })
macro('round', { macro('round', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.topRight, to: points.topRight,
via: points.bottomRight, via: points.bottomRight,
radius: store.get('pocketFlapRadius'), radius: store.get('pocketFlapRadius'),
prefix: 'roundRight' prefix: 'roundRight',
}) })
paths.seam = new Path() paths.seam = new Path()
@ -49,12 +49,12 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 11, nr: 11,
title: 'pocketFlap' title: 'pocketFlap',
}) })
macro('grainline', { macro('grainline', {
from: points.bottomLeft.shift(0, points.topRight.x / 5), from: points.bottomLeft.shift(0, points.topRight.x / 5),
to: points.topLeft.shift(0, points.topRight.x / 5) to: points.topLeft.shift(0, points.topRight.x / 5),
}) })
if (sa) { if (sa) {
@ -65,24 +65,24 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.topLeft, from: points.topLeft,
to: points.topRight, to: points.topRight,
y: points.topLeft.y - sa - 15 y: points.topLeft.y - sa - 15,
}) })
if (options.pocketFlapRadius > 0) { if (options.pocketFlapRadius > 0) {
macro('vd', { macro('vd', {
from: points.roundRightStart, from: points.roundRightStart,
to: points.roundRightEnd, to: points.roundRightEnd,
x: points.topRight.x + sa + 15 x: points.topRight.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.roundRightStart, from: points.roundRightStart,
to: points.topRight, to: points.topRight,
x: points.topRight.x + sa + 30 x: points.topRight.x + sa + 30,
}) })
} else { } else {
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + sa + 15 x: points.topRight.x + sa + 15,
}) })
} }
} }

View file

@ -9,7 +9,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
points.topLeft = points.bottomLeft.shiftFractionTowards(points.topLeft, 0.75) points.topLeft = points.bottomLeft.shiftFractionTowards(points.topLeft, 0.75)
@ -20,14 +20,14 @@ export default function (part) {
to: points.bottomRight, to: points.bottomRight,
via: points.bottomLeft, via: points.bottomLeft,
radius: store.get('pocketRadius'), radius: store.get('pocketRadius'),
prefix: 'roundLeft' prefix: 'roundLeft',
}) })
macro('round', { macro('round', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.topRight, to: points.topRight,
via: points.bottomRight, via: points.bottomRight,
radius: store.get('pocketRadius'), radius: store.get('pocketRadius'),
prefix: 'roundRight' prefix: 'roundRight',
}) })
paths.seam = new Path() paths.seam = new Path()
@ -49,12 +49,12 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 16, nr: 16,
title: 'pocketLining' title: 'pocketLining',
}) })
macro('grainline', { macro('grainline', {
from: points.bottomLeft.shift(0, 10 + (store.get('pocketRadius') || 0)), from: points.bottomLeft.shift(0, 10 + (store.get('pocketRadius') || 0)),
to: points.topLeft.shift(0, 10 + (store.get('pocketRadius') || 0)) to: points.topLeft.shift(0, 10 + (store.get('pocketRadius') || 0)),
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')
@ -63,18 +63,18 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + sa + 15 x: points.topRight.x + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.topLeft, from: points.topLeft,
to: points.topRight, to: points.topRight,
y: points.topRight.y - sa - 15 y: points.topRight.y - sa - 15,
}) })
if (options.pocketRadius > 0) { if (options.pocketRadius > 0) {
macro('hd', { macro('hd', {
from: points.roundRightStart, from: points.roundRightStart,
to: points.roundRightEnd, to: points.roundRightEnd,
y: points.bottomRight.y + sa + 15 y: points.bottomRight.y + sa + 15,
}) })
} }
} }

View file

@ -9,7 +9,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
let length = store.get('waistToHem') - store.get('beltWidth') / 2 let length = store.get('waistToHem') - store.get('beltWidth') / 2
@ -71,56 +71,56 @@ export default function (part) {
macro('title', { macro('title', {
at: points.title, at: points.title,
nr: 5, nr: 5,
title: 'tail' title: 'tail',
}) })
macro('grainline', { macro('grainline', {
from: points.fold2Bottom.shift(0, 10), from: points.fold2Bottom.shift(0, 10),
to: points.fold2Top.shift(0, 10) to: points.fold2Top.shift(0, 10),
}) })
if (sa) paths.sa = paths.seam.offset(sa).close().attr('class', 'fabric sa') if (sa) paths.sa = paths.seam.offset(sa).close().attr('class', 'fabric sa')
macro('vd', { macro('vd', {
from: points.fold4Bottom.shift(0, 15), from: points.fold4Bottom.shift(0, 15),
to: points.fold4Top.shift(0, 15), to: points.fold4Top.shift(0, 15),
text: units(length) text: units(length),
}) })
if (paperless) { if (paperless) {
macro('hd', { macro('hd', {
from: points.cbBottom, from: points.cbBottom,
to: points.fold1Bottom, to: points.fold1Bottom,
y: points.cbBottom.y + sa + 15 y: points.cbBottom.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.fold1Bottom, from: points.fold1Bottom,
to: points.fold2Bottom, to: points.fold2Bottom,
y: points.cbBottom.y + sa + 15 y: points.cbBottom.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.fold2Bottom, from: points.fold2Bottom,
to: points.fold3Bottom, to: points.fold3Bottom,
y: points.cbBottom.y + sa + 15 y: points.cbBottom.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.fold3Bottom, from: points.fold3Bottom,
to: points.fold4Bottom, to: points.fold4Bottom,
y: points.cbBottom.y + sa + 15 y: points.cbBottom.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.fold4Bottom, from: points.fold4Bottom,
to: points.fold5Bottom, to: points.fold5Bottom,
y: points.cbBottom.y + sa + 15 y: points.cbBottom.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.fold5Bottom, from: points.fold5Bottom,
to: points.waistBottom, to: points.waistBottom,
y: points.cbBottom.y + sa + 15 y: points.cbBottom.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.cbBottom, from: points.cbBottom,
to: points.waistBottom, to: points.waistBottom,
y: points.cbBottom.y + sa + 30 y: points.cbBottom.y + sa + 30,
}) })
} }
} }

View file

@ -11,7 +11,7 @@ export default function (part) {
paths, paths,
Path, Path,
Snippet, Snippet,
snippets snippets,
} = part.shorthand() } = part.shorthand()
// Add cuff // Add cuff
@ -25,7 +25,7 @@ export default function (part) {
via: points.cuffBottomRight, via: points.cuffBottomRight,
radius: length / 3, radius: length / 3,
render: true, render: true,
prefix: 'round' prefix: 'round',
}) })
store.set('topCuffWidth', points.tsWristLeft.dist(points.tsWristRight)) store.set('topCuffWidth', points.tsWristLeft.dist(points.tsWristRight))
store.set('cuffLength', length) store.set('cuffLength', length)
@ -55,7 +55,7 @@ export default function (part) {
if (complete) { if (complete) {
macro('grainline', { macro('grainline', {
from: points.boxBottom, from: points.boxBottom,
to: points.top to: points.top,
}) })
macro('scalebox', { at: points.tsWristLeftHelperTop }) macro('scalebox', { at: points.tsWristLeftHelperTop })
delete snippets.logo delete snippets.logo
@ -68,70 +68,70 @@ export default function (part) {
macro('ld', { macro('ld', {
from: points.tsWristLeft, from: points.tsWristLeft,
to: points.tsWristRight, to: points.tsWristRight,
d: -15 d: -15,
}) })
macro('vd', { macro('vd', {
from: points.tsWristLeft, from: points.tsWristLeft,
to: points.tsElbowLeft, to: points.tsElbowLeft,
x: points.tsLeftEdge.x - sa - 15 x: points.tsLeftEdge.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.tsWristLeft, from: points.tsWristLeft,
to: points.tsLeftEdge, to: points.tsLeftEdge,
x: points.tsLeftEdge.x - sa - 30 x: points.tsLeftEdge.x - sa - 30,
}) })
macro('ld', { macro('ld', {
from: points.cuffBottomLeft, from: points.cuffBottomLeft,
to: points.tsWristLeft, to: points.tsWristLeft,
d: 15 + sa d: 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.cuffBottomRight, from: points.cuffBottomRight,
to: points.usWristRight, to: points.usWristRight,
x: points.usWristRight.x + 15 + sa x: points.usWristRight.x + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.usWristRight, from: points.usWristRight,
to: points.elbowRight, to: points.elbowRight,
x: points.elbowRight.x + 15 + sa x: points.elbowRight.x + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.usWristRight, from: points.usWristRight,
to: points.tsRightEdge, to: points.tsRightEdge,
x: points.elbowRight.x + 30 + sa x: points.elbowRight.x + 30 + sa,
}) })
macro('vd', { macro('vd', {
from: points.usWristRight, from: points.usWristRight,
to: points.backPitchPoint, to: points.backPitchPoint,
x: points.elbowRight.x + 45 + sa x: points.elbowRight.x + 45 + sa,
}) })
macro('vd', { macro('vd', {
from: points.usWristRight, from: points.usWristRight,
to: points.top, to: points.top,
x: points.elbowRight.x + 60 + sa x: points.elbowRight.x + 60 + sa,
}) })
macro('ld', { macro('ld', {
from: points.tsElbowLeft, from: points.tsElbowLeft,
to: points.elbowRight to: points.elbowRight,
}) })
macro('ld', { macro('ld', {
from: points.tsLeftEdge, from: points.tsLeftEdge,
to: points.tsRightEdge to: points.tsRightEdge,
}) })
macro('hd', { macro('hd', {
from: points.tsLeftEdge, from: points.tsLeftEdge,
to: points.top, to: points.top,
y: points.top.y - sa - 15 y: points.top.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.tsLeftEdge, from: points.tsLeftEdge,
to: points.backPitchPoint, to: points.backPitchPoint,
y: points.top.y - sa - 30 y: points.top.y - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.tsLeftEdge, from: points.tsLeftEdge,
to: points.tsRightEdge, to: points.tsRightEdge,
y: points.top.y - sa - 45 y: points.top.y - sa - 45,
}) })
} }
} }

View file

@ -10,7 +10,7 @@ export default function (part) {
macro, macro,
Point, Point,
paths, paths,
Path Path,
} = part.shorthand() } = part.shorthand()
// Add cuff // Add cuff
@ -24,7 +24,7 @@ export default function (part) {
via: points.cuffBottomRight, via: points.cuffBottomRight,
radius: length / 3, radius: length / 3,
render: true, render: true,
prefix: 'round' prefix: 'round',
}) })
store.set('underCuffWidth', points.usWristLeft.dist(points.usWristRight)) store.set('underCuffWidth', points.usWristLeft.dist(points.usWristRight))
@ -51,7 +51,7 @@ export default function (part) {
if (complete) { if (complete) {
macro('grainline', { macro('grainline', {
from: points.boxBottom, from: points.boxBottom,
to: new Point(points.top.x, points.usLeftEdge.y) to: new Point(points.top.x, points.usLeftEdge.y),
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
@ -60,56 +60,56 @@ export default function (part) {
macro('ld', { macro('ld', {
from: points.usWristLeft, from: points.usWristLeft,
to: points.usWristRight, to: points.usWristRight,
d: -15 d: -15,
}) })
macro('vd', { macro('vd', {
from: points.usWristLeft, from: points.usWristLeft,
to: points.usElbowLeft, to: points.usElbowLeft,
x: points.usLeftEdge.x - sa - 15 x: points.usLeftEdge.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.usWristLeft, from: points.usWristLeft,
to: points.usLeftEdge, to: points.usLeftEdge,
x: points.usLeftEdge.x - sa - 30 x: points.usLeftEdge.x - sa - 30,
}) })
macro('ld', { macro('ld', {
from: points.cuffBottomLeft, from: points.cuffBottomLeft,
to: points.usWristLeft, to: points.usWristLeft,
d: 15 + sa d: 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.cuffBottomRight, from: points.cuffBottomRight,
to: points.usWristRight, to: points.usWristRight,
x: points.usWristRight.x + 15 + sa x: points.usWristRight.x + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.usWristRight, from: points.usWristRight,
to: points.elbowRight, to: points.elbowRight,
x: points.elbowRight.x + 15 + sa x: points.elbowRight.x + 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.usWristRight, from: points.usWristRight,
to: points.usTip, to: points.usTip,
x: points.elbowRight.x + 30 + sa x: points.elbowRight.x + 30 + sa,
}) })
macro('ld', { macro('ld', {
from: points.usElbowLeft, from: points.usElbowLeft,
to: points.elbowRight to: points.elbowRight,
}) })
macro('ld', { macro('ld', {
from: points.usLeftEdge, from: points.usLeftEdge,
to: points.usRightEdge, to: points.usRightEdge,
d: -15 d: -15,
}) })
macro('hd', { macro('hd', {
from: points.usLeftEdge, from: points.usLeftEdge,
to: points.usTip, to: points.usTip,
y: points.usTip.y - sa - 15 y: points.usTip.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.usLeftEdge, from: points.usLeftEdge,
to: points.usTip, to: points.usTip,
x: points.usLeftEdge.x - sa - 15 x: points.usLeftEdge.x - sa - 15,
}) })
} }
} }

View file

@ -11,7 +11,7 @@ export default {
tags: ['underwear', 'top'], tags: ['underwear', 'top'],
optionGroups: { optionGroups: {
fit: ['waistReduction', 'panels'], fit: ['waistReduction', 'panels'],
style: ['backOpening', 'backRise', 'backDrop', 'frontRise', 'frontDrop', 'hipRise'] style: ['backOpening', 'backRise', 'backDrop', 'frontRise', 'frontDrop', 'hipRise'],
}, },
measurements: ['underbust', 'waist', 'hips', 'waistToUnderbust', 'waistToHips'], measurements: ['underbust', 'waist', 'hips', 'waistToUnderbust', 'waistToHips'],
dependencies: { dependencies: {
@ -21,7 +21,7 @@ export default {
panel4: 'panels', panel4: 'panels',
panel5: 'panels', panel5: 'panels',
panel6: 'panels', panel6: 'panels',
panels: 'base' panels: 'base',
}, },
inject: { inject: {
panel1: 'panels', panel1: 'panels',
@ -30,14 +30,14 @@ export default {
panel4: 'panels', panel4: 'panels',
panel5: 'panels', panel5: 'panels',
panel6: 'panels', panel6: 'panels',
panels: 'base' panels: 'base',
}, },
hide: ['panels', 'base'], hide: ['panels', 'base'],
options: { options: {
// Lists // Lists
panels: { panels: {
list: ['11', '13'], list: ['11', '13'],
dflt: '13' dflt: '13',
}, },
// Percentages // Percentages
@ -47,6 +47,6 @@ export default {
backDrop: { pct: 2, min: 0, max: 5 }, backDrop: { pct: 2, min: 0, max: 5 },
frontRise: { pct: 4, min: 0.1, max: 8 }, frontRise: { pct: 4, min: 0.1, max: 8 },
frontDrop: { pct: 5, min: 0, max: 10 }, frontDrop: { pct: 5, min: 0, max: 10 },
hipRise: { pct: 5, min: 0, max: 15 } hipRise: { pct: 5, min: 0, max: 15 },
} },
} }

View file

@ -19,13 +19,13 @@ export default function (part) {
macro('cutonfold', { macro('cutonfold', {
to: points.bottomCF, to: points.bottomCF,
from: points.topCF, from: points.topCF,
grainline: true grainline: true,
}) })
points.title = points.waistCF.shiftFractionTowards(points.underbustGap1Left, 0.5) points.title = points.waistCF.shiftFractionTowards(points.underbustGap1Left, 0.5)
macro('title', { macro('title', {
nr: 1, nr: 1,
title: '', title: '',
at: points.title at: points.title,
}) })
if (sa) paths.sa = paths.panel1.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.panel1.offset(sa).attr('class', 'fabric sa')
} }
@ -35,36 +35,36 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.bottomCF, from: points.bottomCF,
to: points.waistCF, to: points.waistCF,
x: points.topCF.x - sa - 15 x: points.topCF.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.waistCF, from: points.waistCF,
to: points.topCF, to: points.topCF,
x: points.topCF.x - sa - 15 x: points.topCF.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hipsGap1, from: points.hipsGap1,
to: points.waistGap1Left, to: points.waistGap1Left,
x: points.hipsGap1.x + sa + 15 x: points.hipsGap1.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap1Left, from: points.waistGap1Left,
to: points.underbustGap1Left, to: points.underbustGap1Left,
x: points.hipsGap1.x + sa + 15 x: points.hipsGap1.x + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.bottomCF, from: points.bottomCF,
to: points.hipsGap1, to: points.hipsGap1,
y: points.bottomCF.y + sa + 15 y: points.bottomCF.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.topCF, from: points.topCF,
to: points.underbustGap1Left, to: points.underbustGap1Left,
y: points.topCF.y - sa - 15 y: points.topCF.y - sa - 15,
}) })
macro('ld', { macro('ld', {
from: points.waistCF, from: points.waistCF,
to: points.waistGap1Left to: points.waistGap1Left,
}) })
} }

View file

@ -41,21 +41,21 @@ export default function (part) {
macro('cutonfold', { macro('cutonfold', {
to: points.bottomCF, to: points.bottomCF,
from: points.topCF, from: points.topCF,
grainline: true grainline: true,
}) })
macro('grainline', { macro('grainline', {
to: points.topABsplit.translate(translation, 0), to: points.topABsplit.translate(translation, 0),
from: new Point( from: new Point(
points.topABsplit.translate(translation, 0).x, points.topABsplit.translate(translation, 0).x,
points.hipsGap1.translate(translation, 0).y points.hipsGap1.translate(translation, 0).y
) ),
}) })
points.midwayAB = points.topABsplit.shiftFractionTowards(points.bottomABsplit, 0.5) points.midwayAB = points.topABsplit.shiftFractionTowards(points.bottomABsplit, 0.5)
points.titleA = points.underbustCF.shiftFractionTowards(points.midwayAB, 0.5) points.titleA = points.underbustCF.shiftFractionTowards(points.midwayAB, 0.5)
macro('title', { macro('title', {
nr: '1a', nr: '1a',
prefix: 'panel1a', prefix: 'panel1a',
at: points.titleA at: points.titleA,
}) })
points.titleB = points.hipsGap1 points.titleB = points.hipsGap1
.translate(translation, 0) .translate(translation, 0)
@ -63,7 +63,7 @@ export default function (part) {
macro('title', { macro('title', {
nr: '1b', nr: '1b',
prefix: 'panel1b', prefix: 'panel1b',
at: points.titleB at: points.titleB,
}) })
} }
@ -73,12 +73,12 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.bottomCF, from: points.bottomCF,
to: points.waistCF, to: points.waistCF,
x: points.topCF.x - sa - 30 x: points.topCF.x - sa - 30,
}) })
macro('vd', { macro('vd', {
from: points.waistCF, from: points.waistCF,
to: points.topCF, to: points.topCF,
x: points.topCF.x - sa - 30 x: points.topCF.x - sa - 30,
}) })
points.waistAB = utils.beamsIntersect( points.waistAB = utils.beamsIntersect(
points.topABsplit, points.topABsplit,
@ -89,61 +89,61 @@ export default function (part) {
macro('vd', { macro('vd', {
from: points.bottomABsplit, from: points.bottomABsplit,
to: points.waistAB, to: points.waistAB,
x: points.topCF.x - sa - 15 x: points.topCF.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.waistAB, from: points.waistAB,
to: points.topABsplit, to: points.topABsplit,
x: points.topCF.x - sa - 15 x: points.topCF.x - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.bottomCF, from: points.bottomCF,
to: points.bottomABsplit, to: points.bottomABsplit,
y: points.bottomCF.y + sa + 15 y: points.bottomCF.y + sa + 15,
}) })
macro('ld', { macro('ld', {
from: points.waistCF, from: points.waistCF,
to: points.waistAB to: points.waistAB,
}) })
macro('hd', { macro('hd', {
from: points.topCF, from: points.topCF,
to: points.topABsplit, to: points.topABsplit,
y: points.topCF.y - sa - 15 y: points.topCF.y - sa - 15,
}) })
// 1b // 1b
macro('vd', { macro('vd', {
from: points.hipsGap1.translate(translation, 0), from: points.hipsGap1.translate(translation, 0),
to: points.waistGap1Left.translate(translation, 0), to: points.waistGap1Left.translate(translation, 0),
x: points.underbustGap1Left.translate(translation, 0).x + sa + 15 x: points.underbustGap1Left.translate(translation, 0).x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap1Left.translate(translation, 0), from: points.waistGap1Left.translate(translation, 0),
to: points.underbustGap1Left.translate(translation, 0), to: points.underbustGap1Left.translate(translation, 0),
x: points.underbustGap1Left.translate(translation, 0).x + sa + 15 x: points.underbustGap1Left.translate(translation, 0).x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomABsplit.translate(translation, 0), from: points.bottomABsplit.translate(translation, 0),
to: points.waistAB.translate(translation, 0), to: points.waistAB.translate(translation, 0),
x: points.underbustGap1Left.translate(translation, 0).x + sa + 30 x: points.underbustGap1Left.translate(translation, 0).x + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.waistAB.translate(translation, 0), from: points.waistAB.translate(translation, 0),
to: points.topABsplit.translate(translation, 0), to: points.topABsplit.translate(translation, 0),
x: points.underbustGap1Left.translate(translation, 0).x + sa + 30 x: points.underbustGap1Left.translate(translation, 0).x + sa + 30,
}) })
macro('hd', { macro('hd', {
from: points.bottomABsplit.translate(translation, 0), from: points.bottomABsplit.translate(translation, 0),
to: points.hipsGap1.translate(translation, 0), to: points.hipsGap1.translate(translation, 0),
y: points.bottomABsplit.y + sa + 15 y: points.bottomABsplit.y + sa + 15,
}) })
macro('ld', { macro('ld', {
from: points.waistAB.translate(translation, 0), from: points.waistAB.translate(translation, 0),
to: points.waistGap1Left.translate(translation, 0) to: points.waistGap1Left.translate(translation, 0),
}) })
macro('hd', { macro('hd', {
from: points.topABsplit.translate(translation, 0), from: points.topABsplit.translate(translation, 0),
to: points.underbustGap1Left.translate(translation, 0), to: points.underbustGap1Left.translate(translation, 0),
y: points.topABsplit.y - sa - 15 y: points.topABsplit.y - sa - 15,
}) })
} }

View file

@ -19,13 +19,13 @@ export default function (part) {
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap2.y) points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap2.y)
macro('grainline', { macro('grainline', {
from: points.grainlineBottom, from: points.grainlineBottom,
to: points.grainlineTop to: points.grainlineTop,
}) })
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap2Left) / 2) points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap2Left) / 2)
macro('title', { macro('title', {
nr: 2, nr: 2,
title: '', title: '',
at: points.title at: points.title,
}) })
if (sa) paths.sa = paths.panel2.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.panel2.offset(sa).attr('class', 'fabric sa')
} }
@ -35,36 +35,36 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.hipsGap1, from: points.hipsGap1,
to: points.hipsGap2, to: points.hipsGap2,
y: points.hipsGap1.y + sa + 15 y: points.hipsGap1.y + sa + 15,
}) })
macro('ld', { macro('ld', {
from: points.waistGap1Right, from: points.waistGap1Right,
to: points.waistGap2Left to: points.waistGap2Left,
}) })
macro('hd', { macro('hd', {
from: points.underbustGap1Right, from: points.underbustGap1Right,
to: points.underbustGap2Left, to: points.underbustGap2Left,
y: points.underbustGap1Right.y - sa - 15 y: points.underbustGap1Right.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hipsGap1, from: points.hipsGap1,
to: points.waistGap1Right, to: points.waistGap1Right,
x: points.hipsGap1.x - sa - 15 x: points.hipsGap1.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap1Right, from: points.waistGap1Right,
to: points.underbustGap1Right, to: points.underbustGap1Right,
x: points.hipsGap1.x - sa - 15 x: points.hipsGap1.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hipsGap2, from: points.hipsGap2,
to: points.waistGap1Right, to: points.waistGap1Right,
x: points.hipsGap2.x + sa + 15 x: points.hipsGap2.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap1Right, from: points.waistGap1Right,
to: points.underbustGap2Left, to: points.underbustGap2Left,
x: points.hipsGap2.x + sa + 15 x: points.hipsGap2.x + sa + 15,
}) })
} }

View file

@ -19,13 +19,13 @@ export default function (part) {
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap3.y) points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap3.y)
macro('grainline', { macro('grainline', {
from: points.grainlineBottom, from: points.grainlineBottom,
to: points.grainlineTop to: points.grainlineTop,
}) })
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap3Left) / 2) points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap3Left) / 2)
macro('title', { macro('title', {
nr: 3, nr: 3,
title: '', title: '',
at: points.title at: points.title,
}) })
if (sa) paths.sa = paths.panel3.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.panel3.offset(sa).attr('class', 'fabric sa')
} }
@ -35,36 +35,36 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.hipsGap2, from: points.hipsGap2,
to: points.hipsGap3, to: points.hipsGap3,
y: points.hipsGap2.y + sa + 15 y: points.hipsGap2.y + sa + 15,
}) })
macro('ld', { macro('ld', {
from: points.waistGap2Right, from: points.waistGap2Right,
to: points.waistGap3Left to: points.waistGap3Left,
}) })
macro('hd', { macro('hd', {
from: points.underbustGap2Right, from: points.underbustGap2Right,
to: points.underbustGap3Left, to: points.underbustGap3Left,
y: points.underbustGap2Right.y - sa - 15 y: points.underbustGap2Right.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hipsGap2, from: points.hipsGap2,
to: points.waistGap2Right, to: points.waistGap2Right,
x: points.hipsGap2.x - sa - 15 x: points.hipsGap2.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap2Right, from: points.waistGap2Right,
to: points.underbustGap2Right, to: points.underbustGap2Right,
x: points.hipsGap2.x - sa - 15 x: points.hipsGap2.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hipsGap3, from: points.hipsGap3,
to: points.waistGap2Right, to: points.waistGap2Right,
x: points.hipsGap3.x + sa + 15 x: points.hipsGap3.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap2Right, from: points.waistGap2Right,
to: points.underbustGap3Left, to: points.underbustGap3Left,
x: points.hipsGap3.x + sa + 15 x: points.hipsGap3.x + sa + 15,
}) })
} }

View file

@ -19,13 +19,13 @@ export default function (part) {
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap4.y) points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap4.y)
macro('grainline', { macro('grainline', {
from: points.grainlineBottom, from: points.grainlineBottom,
to: points.grainlineTop to: points.grainlineTop,
}) })
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap4Left) / 2) points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap4Left) / 2)
macro('title', { macro('title', {
nr: 4, nr: 4,
title: '', title: '',
at: points.title at: points.title,
}) })
points.logo = points.grainlineTop.shiftFractionTowards(points.grainlineBottom, 0.8) points.logo = points.grainlineTop.shiftFractionTowards(points.grainlineBottom, 0.8)
snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.8) snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.8)
@ -38,36 +38,36 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.hipsGap3, from: points.hipsGap3,
to: points.hipsGap4, to: points.hipsGap4,
y: points.hipsGap3.y + sa + 15 y: points.hipsGap3.y + sa + 15,
}) })
macro('ld', { macro('ld', {
from: points.waistGap3Right, from: points.waistGap3Right,
to: points.waistGap4Left to: points.waistGap4Left,
}) })
macro('hd', { macro('hd', {
from: points.underbustGap3Right, from: points.underbustGap3Right,
to: points.underbustGap4Left, to: points.underbustGap4Left,
y: points.underbustGap4Left.y - sa - 15 y: points.underbustGap4Left.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hipsGap3, from: points.hipsGap3,
to: points.waistGap3Right, to: points.waistGap3Right,
x: points.hipsGap3.x - sa - 15 x: points.hipsGap3.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap3Right, from: points.waistGap3Right,
to: points.underbustGap3Right, to: points.underbustGap3Right,
x: points.hipsGap3.x - sa - 15 x: points.hipsGap3.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hipsGap4, from: points.hipsGap4,
to: points.waistGap3Right, to: points.waistGap3Right,
x: points.hipsGap4.x + sa + 15 x: points.hipsGap4.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap3Right, from: points.waistGap3Right,
to: points.underbustGap4Left, to: points.underbustGap4Left,
x: points.hipsGap4.x + sa + 15 x: points.hipsGap4.x + sa + 15,
}) })
} }

View file

@ -19,13 +19,13 @@ export default function (part) {
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap5.y) points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap5.y)
macro('grainline', { macro('grainline', {
from: points.grainlineBottom, from: points.grainlineBottom,
to: points.grainlineTop to: points.grainlineTop,
}) })
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap5Left) / 2) points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap5Left) / 2)
macro('title', { macro('title', {
nr: 5, nr: 5,
title: '', title: '',
at: points.title at: points.title,
}) })
if (sa) paths.sa = paths.panel5.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.panel5.offset(sa).attr('class', 'fabric sa')
} }
@ -35,36 +35,36 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.hipsGap4, from: points.hipsGap4,
to: points.hipsGap5, to: points.hipsGap5,
y: points.hipsGap4.y + sa + 15 y: points.hipsGap4.y + sa + 15,
}) })
macro('ld', { macro('ld', {
from: points.waistGap4Right, from: points.waistGap4Right,
to: points.waistGap5Left to: points.waistGap5Left,
}) })
macro('hd', { macro('hd', {
from: points.underbustGap4Right, from: points.underbustGap4Right,
to: points.underbustGap5Left, to: points.underbustGap5Left,
y: points.underbustGap5Left.y - sa - 15 y: points.underbustGap5Left.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hipsGap4, from: points.hipsGap4,
to: points.waistGap4Right, to: points.waistGap4Right,
x: points.hipsGap4.x - sa - 15 x: points.hipsGap4.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap4Right, from: points.waistGap4Right,
to: points.underbustGap4Right, to: points.underbustGap4Right,
x: points.hipsGap4.x - sa - 15 x: points.hipsGap4.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hipsGap5, from: points.hipsGap5,
to: points.waistGap4Right, to: points.waistGap4Right,
x: points.hipsGap5.x + sa + 15 x: points.hipsGap5.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap4Right, from: points.waistGap4Right,
to: points.underbustGap5Left, to: points.underbustGap5Left,
x: points.hipsGap5.x + sa + 15 x: points.hipsGap5.x + sa + 15,
}) })
} }

View file

@ -19,18 +19,18 @@ export default function (part) {
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap5.y) points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap5.y)
macro('grainline', { macro('grainline', {
from: points.grainlineBottom, from: points.grainlineBottom,
to: points.grainlineTop to: points.grainlineTop,
}) })
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap5Right) / 2) points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap5Right) / 2)
macro('title', { macro('title', {
nr: 6, nr: 6,
title: '', title: '',
at: points.title at: points.title,
}) })
points.scalebox = new Point(points.grainlineTop.x, points.hipsGap5.y - 55) points.scalebox = new Point(points.grainlineTop.x, points.hipsGap5.y - 55)
macro('scalebox', { macro('scalebox', {
at: points.scalebox, at: points.scalebox,
rotate: 90 rotate: 90,
}) })
if (sa) paths.sa = paths.panel6.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.panel6.offset(sa).attr('class', 'fabric sa')
} }
@ -40,36 +40,36 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.hipsGap5, from: points.hipsGap5,
to: points.backDrop, to: points.backDrop,
y: points.backDrop.y + sa + 15 y: points.backDrop.y + sa + 15,
}) })
macro('ld', { macro('ld', {
from: points.waistGap5Right, from: points.waistGap5Right,
to: points.waistCB to: points.waistCB,
}) })
macro('hd', { macro('hd', {
from: points.underbustGap5Right, from: points.underbustGap5Right,
to: points.backRise, to: points.backRise,
y: points.backRise.y - sa - 15 y: points.backRise.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.hipsGap5, from: points.hipsGap5,
to: points.waistGap5Right, to: points.waistGap5Right,
x: points.hipsGap5.x - sa - 15 x: points.hipsGap5.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.waistGap5Right, from: points.waistGap5Right,
to: points.underbustGap5Right, to: points.underbustGap5Right,
x: points.hipsGap5.x - sa - 15 x: points.hipsGap5.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.backDrop, from: points.backDrop,
to: points.waistCB, to: points.waistCB,
x: points.backDrop.x + sa + 15 x: points.backDrop.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.waistCB, from: points.waistCB,
to: points.backRise, to: points.backRise,
x: points.backDrop.x + sa + 15 x: points.backDrop.x + sa + 15,
}) })
} }

View file

@ -18,7 +18,7 @@ export default {
'backPocketHorizontalPlacement', 'backPocketHorizontalPlacement',
'backPocketVerticalPlacement', 'backPocketVerticalPlacement',
'backPocketWidth', 'backPocketWidth',
'backPocketDepth' 'backPocketDepth',
], ],
frontPockets: [ frontPockets: [
'frontPocketSlantDepth', 'frontPocketSlantDepth',
@ -27,9 +27,9 @@ export default {
'frontPocketSlantBend', 'frontPocketSlantBend',
'frontPocketWidth', 'frontPocketWidth',
'frontPocketDepth', 'frontPocketDepth',
'frontPocketFacing' 'frontPocketFacing',
] ],
} },
], ],
advanced: [ advanced: [
'crossSeamCurveStart', 'crossSeamCurveStart',
@ -43,9 +43,9 @@ export default {
'waistBalance', 'waistBalance',
'beltLoops', 'beltLoops',
{ {
fly: ['flyCurve', 'flyLength', 'flyWidth'] fly: ['flyCurve', 'flyLength', 'flyWidth'],
} },
] ],
}, },
measurements: [ measurements: [
'crossSeam', 'crossSeam',
@ -59,7 +59,7 @@ export default {
'waistToKnee', 'waistToKnee',
'waistToHips', 'waistToHips',
'waistToSeat', 'waistToSeat',
'waistToUpperLeg' 'waistToUpperLeg',
], ],
hide: ['titanBack', 'titanFront'], hide: ['titanBack', 'titanFront'],
inject: { inject: {
@ -71,7 +71,7 @@ export default {
backPocketInterfacing: 'backPocket', backPocketInterfacing: 'backPocket',
backPocketJet: 'backPocketFacing', backPocketJet: 'backPocketFacing',
flyFacing: 'front', flyFacing: 'front',
flyExtension: 'flyFacing' flyExtension: 'flyFacing',
}, },
parts: ['beltLoops'], parts: ['beltLoops'],
dependencies: { dependencies: {
@ -79,7 +79,7 @@ export default {
titanFront: 'titanBack', titanFront: 'titanBack',
back: ['titanBack', 'titanFront', 'front'], back: ['titanBack', 'titanFront', 'front'],
waistband: ['titanBack', 'titanFront', 'front', 'back'], waistband: ['titanBack', 'titanFront', 'front', 'back'],
waistbandCurved: ['titanBack', 'titanFront', 'front', 'back'] waistbandCurved: ['titanBack', 'titanFront', 'front', 'back'],
}, },
options: { options: {
// Constants (from Titan) // Constants (from Titan)
@ -141,6 +141,6 @@ export default {
flyWidth: { pct: 15, min: 10, max: 20 }, flyWidth: { pct: 15, min: 10, max: 20 },
// Waistband // Waistband
beltLoops: { count: 8, min: 6, max: 12 } beltLoops: { count: 8, min: 6, max: 12 },
} },
} }

View file

@ -28,13 +28,13 @@ export default (part) => {
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,
nr: 6, nr: 6,
title: 'backPocketBagFacing' title: 'backPocketBagFacing',
}) })
points.grainlineTop = points.waistbandLeft.shiftFractionTowards(points.waistbandRight, 0.15) points.grainlineTop = points.waistbandLeft.shiftFractionTowards(points.waistbandRight, 0.15)
points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y) points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)
macro('grainline', { macro('grainline', {
from: points.grainlineTop, from: points.grainlineTop,
to: points.grainlineBottom to: points.grainlineBottom,
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
@ -43,22 +43,22 @@ export default (part) => {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + 15 y: points.bottomLeft.y + 15,
}) })
macro('hd', { macro('hd', {
from: points.waistbandLeft, from: points.waistbandLeft,
to: points.waistbandRight, to: points.waistbandRight,
y: points.waistbandLeft.y - sa - 15 y: points.waistbandLeft.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.rightNotch, to: points.rightNotch,
x: points.bottomRight.x + sa + 15 x: points.bottomRight.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.waistbandRight, to: points.waistbandRight,
x: points.bottomRight.x + sa + 30 x: points.bottomRight.x + sa + 30,
}) })
} }
} }

View file

@ -34,19 +34,19 @@ export default (part) => {
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,
nr: 3, nr: 3,
title: 'backPocketInterfacing' title: 'backPocketInterfacing',
}) })
if (paperless) { if (paperless) {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + 15 y: points.bottomLeft.y + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + 15 x: points.topRight.x + 15,
}) })
} }
} }

View file

@ -32,25 +32,25 @@ export default (part) => {
at: points.titleAnchor, at: points.titleAnchor,
nr: 4, nr: 4,
title: 'backPocketJet', title: 'backPocketJet',
scale: 0.5 scale: 0.5,
}) })
points.grainlineTop = points.topLeft.shiftFractionTowards(points.topRight, 0.15) points.grainlineTop = points.topLeft.shiftFractionTowards(points.topRight, 0.15)
points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y) points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)
macro('grainline', { macro('grainline', {
from: points.grainlineTop, from: points.grainlineTop,
to: points.grainlineBottom to: points.grainlineBottom,
}) })
if (paperless) { if (paperless) {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + 15 y: points.bottomLeft.y + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + 15 x: points.topRight.x + 15,
}) })
} }
} }

View file

@ -11,7 +11,7 @@ export default (part) => {
macro, macro,
snippets, snippets,
Snippet, Snippet,
sa sa,
} = part.shorthand() } = part.shorthand()
points.leftNotch = new Point(store.get('backPocketWidth') / -2, 0) points.leftNotch = new Point(store.get('backPocketWidth') / -2, 0)
@ -54,7 +54,7 @@ export default (part) => {
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,
nr: 5, nr: 5,
title: 'backPocketBag' title: 'backPocketBag',
}) })
points.logoAnchor = points.foldLeft.shiftFractionTowards(points.bottomRight, 0.5) points.logoAnchor = points.foldLeft.shiftFractionTowards(points.bottomRight, 0.5)
snippets.logo = new Snippet('logo', points.logoAnchor) snippets.logo = new Snippet('logo', points.logoAnchor)
@ -62,7 +62,7 @@ export default (part) => {
points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y) points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)
macro('grainline', { macro('grainline', {
from: points.grainlineTop, from: points.grainlineTop,
to: points.grainlineBottom to: points.grainlineBottom,
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')
@ -71,27 +71,27 @@ export default (part) => {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + 15 y: points.bottomLeft.y + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.foldRight, to: points.foldRight,
x: points.foldRight.x + 15 x: points.foldRight.x + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.rightNotch, to: points.rightNotch,
x: points.foldRight.x + 30 x: points.foldRight.x + 30,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.waistbandRight, to: points.waistbandRight,
x: points.foldRight.x + 45 x: points.foldRight.x + 45,
}) })
macro('hd', { macro('hd', {
from: points.waistbandLeft, from: points.waistbandLeft,
to: points.waistbandRight, to: points.waistbandRight,
y: points.waistbandLeft.y - sa - 15 y: points.waistbandLeft.y - sa - 15,
}) })
} }
} }

View file

@ -41,7 +41,7 @@ export default (part) => {
Snippet, Snippet,
sa, sa,
raise, raise,
units units,
} = part.shorthand() } = part.shorthand()
// Mark back pocket // Mark back pocket
@ -142,7 +142,7 @@ export default (part) => {
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,
nr: 1, nr: 1,
title: 'back' title: 'back',
}) })
snippets.logo = new Snippet('logo', points.titleAnchor.shiftFractionTowards(points.knee, 0.5)) snippets.logo = new Snippet('logo', points.titleAnchor.shiftFractionTowards(points.knee, 0.5))
points.slantBottomNotch = new Path() points.slantBottomNotch = new Path()
@ -156,20 +156,20 @@ export default (part) => {
) )
macro('sprinkle', { macro('sprinkle', {
snippet: 'bnotch', snippet: 'bnotch',
on: ['grainlineBottom', 'slantBottomNotch', 'slantTopNotch'] on: ['grainlineBottom', 'slantBottomNotch', 'slantTopNotch'],
}) })
macro('bartack', { macro('bartack', {
anchor: points.slantTopNotch, anchor: points.slantTopNotch,
angle: points.slantTopNotch.angle(points.slantBottomNotch) - 90, angle: points.slantTopNotch.angle(points.slantBottomNotch) - 90,
length: sa ? sa / 2 : 5, length: sa ? sa / 2 : 5,
suffix: 'slantTop' suffix: 'slantTop',
}) })
macro('bartack', { macro('bartack', {
anchor: points.slantBottomNotch, anchor: points.slantBottomNotch,
length: sa ? sa / 2 : 5, length: sa ? sa / 2 : 5,
angle: 180, angle: 180,
suffix: 'slantBottom' suffix: 'slantBottom',
}) })
if (sa) { if (sa) {
@ -198,101 +198,101 @@ export default (part) => {
macro('hd', { macro('hd', {
from: points.floorIn, from: points.floorIn,
to: points.grainlineBottom, to: points.grainlineBottom,
y: points.floorIn.y - 15 y: points.floorIn.y - 15,
}) })
macro('hd', { macro('hd', {
from: points.grainlineBottom, from: points.grainlineBottom,
to: points.floorOut, to: points.floorOut,
y: points.floorIn.y - 15 y: points.floorIn.y - 15,
}) })
macro('hd', { macro('hd', {
from: points.floorIn, from: points.floorIn,
to: points.floorOut, to: points.floorOut,
y: points.floorIn.y - 30 y: points.floorIn.y - 30,
}) })
let y = points.floorIn.y + sa * 6 let y = points.floorIn.y + sa * 6
macro('hd', { macro('hd', {
from: points.fork, from: points.fork,
to: points.grainlineBottom, to: points.grainlineBottom,
y: y + 15 y: y + 15,
}) })
macro('hd', { macro('hd', {
from: points.grainlineBottom, from: points.grainlineBottom,
to: points.slantBottomNotch, to: points.slantBottomNotch,
y: y + 15 y: y + 15,
}) })
macro('hd', { macro('hd', {
from: points.grainlineBottom, from: points.grainlineBottom,
to: points.slantOut, to: points.slantOut,
y: y + 30 y: y + 30,
}) })
y = points.styleWaistIn.y - sa y = points.styleWaistIn.y - sa
macro('hd', { macro('hd', {
from: points.styleWaistIn, from: points.styleWaistIn,
to: points.grainlineTop, to: points.grainlineTop,
y: y - 15 y: y - 15,
}) })
macro('hd', { macro('hd', {
from: points.fork, from: points.fork,
to: points.grainlineTop, to: points.grainlineTop,
y: y - 30 y: y - 30,
}) })
macro('hd', { macro('hd', {
from: points.grainlineTop, from: points.grainlineTop,
to: points.waistPocketCenter, to: points.waistPocketCenter,
y: y - 15 y: y - 15,
}) })
macro('hd', { macro('hd', {
from: points.grainlineTop, from: points.grainlineTop,
to: points.slantOut, to: points.slantOut,
y: y - 30 y: y - 30,
}) })
macro('ld', { macro('ld', {
from: points.pocketLeft, from: points.pocketLeft,
to: points.pocketRight, to: points.pocketRight,
d: -15 d: -15,
}) })
macro('ld', { macro('ld', {
from: points.backDartLeft, from: points.backDartLeft,
to: points.backDartRight, to: points.backDartRight,
d: 15 d: 15,
}) })
macro('ld', { macro('ld', {
from: points.pocketCenter, from: points.pocketCenter,
to: points.waistPocketCenter, to: points.waistPocketCenter,
d: 25 d: 25,
}) })
let x = points.fork.x - sa let x = points.fork.x - sa
macro('vd', { macro('vd', {
from: points.fork, from: points.fork,
to: points.pocketCenter, to: points.pocketCenter,
x: x - 15 x: x - 15,
}) })
macro('vd', { macro('vd', {
from: points.fork, from: points.fork,
to: points.waistPocketCenter, to: points.waistPocketCenter,
x: x - 30 x: x - 30,
}) })
macro('vd', { macro('vd', {
from: points.fork, from: points.fork,
to: points.styleWaistIn, to: points.styleWaistIn,
x: x - 45 x: x - 45,
}) })
x = points.slantOut.x + sa x = points.slantOut.x + sa
macro('vd', { macro('vd', {
from: points.floorOut, from: points.floorOut,
to: points.slantBottomNotch, to: points.slantBottomNotch,
x: x + 15 x: x + 15,
}) })
macro('vd', { macro('vd', {
from: points.floorOut, from: points.floorOut,
to: points.slantOut, to: points.slantOut,
x: x + 30 x: x + 30,
}) })
} }
} }

View file

@ -40,13 +40,13 @@ export default (part) => {
nr: 12, nr: 12,
title: 'beltLoops', title: 'beltLoops',
rotation: 90, rotation: 90,
scale: 0.7 scale: 0.7,
}) })
points.grainlineTop = new Point(points.topRight.x / 2, 0) points.grainlineTop = new Point(points.topRight.x / 2, 0)
points.grainlineBottom = new Point(points.topRight.x / 2, length) points.grainlineBottom = new Point(points.topRight.x / 2, length)
macro('grainline', { macro('grainline', {
from: points.grainlineTop, from: points.grainlineTop,
to: points.grainlineBottom to: points.grainlineBottom,
}) })
for (let i = 1; i < count; i++) { for (let i = 1; i < count; i++) {
paths[`cut${i}`] = new Path() paths[`cut${i}`] = new Path()
@ -59,12 +59,12 @@ export default (part) => {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + sa + 15 y: points.bottomLeft.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.bottomRight.x + sa + 15 x: points.bottomRight.x + sa + 15,
}) })
} }
} }

View file

@ -36,13 +36,13 @@ export default (part) => {
macro('cutonfold', { macro('cutonfold', {
from: points.flyTop, from: points.flyTop,
to: points.flyCorner, to: points.flyCorner,
grainline: true grainline: true,
}) })
points.titleAnchor = points.flyCurveStart points.titleAnchor = points.flyCurveStart
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,
nr: 10, nr: 10,
title: 'flyExtention' title: 'flyExtention',
}) })
if (sa) if (sa)
paths.sa = paths.saBase paths.sa = paths.saBase

View file

@ -25,13 +25,13 @@ export default (part) => {
points.grainlineBottom = new Point(points.grainlineTop.x, points.flyCurveCp2.y) points.grainlineBottom = new Point(points.grainlineTop.x, points.flyCurveCp2.y)
macro('grainline', { macro('grainline', {
from: points.grainlineTop, from: points.grainlineTop,
to: points.grainlineBottom to: points.grainlineBottom,
}) })
points.titleAnchor = points.grainlineTop.shiftFractionTowards(points.grainlineBottom, 0.5) points.titleAnchor = points.grainlineTop.shiftFractionTowards(points.grainlineBottom, 0.5)
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,
nr: 9, nr: 9,
title: 'flyFacing' title: 'flyFacing',
}) })
if (sa) if (sa)
paths.sa = paths.saBase paths.sa = paths.saBase

View file

@ -27,11 +27,11 @@ export default (part) => {
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,
nr: 8, nr: 8,
title: 'frontPocketBagFacing' title: 'frontPocketBagFacing',
}) })
macro('grainline', { macro('grainline', {
from: points.slantTop, from: points.slantTop,
to: new Point(points.slantTop.x, points.facingDirection.y) to: new Point(points.slantTop.x, points.facingDirection.y),
}) })
snippets.notch = new Snippet('notch', points.facingDirection) snippets.notch = new Snippet('notch', points.facingDirection)

View file

@ -34,12 +34,12 @@ export default (part) => {
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,
nr: 7, nr: 7,
title: 'frontPocketBag' title: 'frontPocketBag',
}) })
macro('cutonfold', { macro('cutonfold', {
from: points.pocketbagBottomRight, from: points.pocketbagBottomRight,
to: points.pocketbagTopRight, to: points.pocketbagTopRight,
grainline: true grainline: true,
}) })
snippets.notch = new Snippet('notch', points.facingDirection) snippets.notch = new Snippet('notch', points.facingDirection)
@ -55,12 +55,12 @@ export default (part) => {
macro('ld', { macro('ld', {
from: points.pocketbagBottomRight, from: points.pocketbagBottomRight,
to: points.topPleat, to: points.topPleat,
d: -15 d: -15,
}) })
macro('hd', { macro('hd', {
from: points.pocketFacingBottom, from: points.pocketFacingBottom,
to: points.pocketbagBottomRight, to: points.pocketbagBottomRight,
y: points.pocketbagBottomRight.y + sa + 15 y: points.pocketbagBottomRight.y + sa + 15,
}) })
} }
} }

View file

@ -33,7 +33,7 @@ export default (part) => {
utils, utils,
snippets, snippets,
Snippet, Snippet,
sa sa,
} = part.shorthand() } = part.shorthand()
// Helper object holding the Titan side seam path // Helper object holding the Titan side seam path
@ -156,7 +156,7 @@ export default (part) => {
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,
nr: 2, nr: 2,
title: 'front' title: 'front',
}) })
snippets.logo = new Snippet('logo', points.titleAnchor.shiftFractionTowards(points.knee, 0.666)) snippets.logo = new Snippet('logo', points.titleAnchor.shiftFractionTowards(points.knee, 0.666))
points.topPleat = utils.beamsIntersect( points.topPleat = utils.beamsIntersect(
@ -180,8 +180,8 @@ export default (part) => {
'topPleat', 'topPleat',
'grainlineBottom', 'grainlineBottom',
'flyBottom', 'flyBottom',
'flyExtensionBottom' 'flyExtensionBottom',
] ],
}) })
let Jseam = new Path() let Jseam = new Path()
.move(points.flyCurveStart) .move(points.flyCurveStart)
@ -208,18 +208,18 @@ export default (part) => {
anchor: points.slantTopNotch, anchor: points.slantTopNotch,
angle: points.slantTopNotch.angle(points.slantCurveStart) + 90, angle: points.slantTopNotch.angle(points.slantCurveStart) + 90,
length: sa ? sa / 1.5 : 7.5, length: sa ? sa / 1.5 : 7.5,
suffix: 'slantTop' suffix: 'slantTop',
}) })
macro('bartack', { macro('bartack', {
anchor: points.slantBottomNotch, anchor: points.slantBottomNotch,
length: sa ? sa / 2 : 5, length: sa ? sa / 2 : 5,
suffix: 'slantBottom' suffix: 'slantBottom',
}) })
macro('bartackFractionAlong', { macro('bartackFractionAlong', {
path: Jseam.reverse(), path: Jseam.reverse(),
start: 0, start: 0,
end: 0.1, end: 0.1,
suffix: 'stom' suffix: 'stom',
}) })
if (sa) { if (sa) {
@ -244,87 +244,87 @@ export default (part) => {
macro('hd', { macro('hd', {
from: points.grainlineBottom, from: points.grainlineBottom,
to: points.floorIn, to: points.floorIn,
y: points.floorIn.y - 15 y: points.floorIn.y - 15,
}) })
macro('hd', { macro('hd', {
from: points.floorOut, from: points.floorOut,
to: points.grainlineBottom, to: points.grainlineBottom,
y: points.floorIn.y - 15 y: points.floorIn.y - 15,
}) })
macro('hd', { macro('hd', {
from: points.floorOut, from: points.floorOut,
to: points.floorIn, to: points.floorIn,
y: points.floorIn.y - 30 y: points.floorIn.y - 30,
}) })
let y = points.styleWaistIn.y - sa let y = points.styleWaistIn.y - sa
macro('hd', { macro('hd', {
from: points.grainlineFrom, from: points.grainlineFrom,
to: points.flyTop, to: points.flyTop,
y: y - 15 y: y - 15,
}) })
macro('hd', { macro('hd', {
from: points.grainlineFrom, from: points.grainlineFrom,
to: points.styleWaistIn, to: points.styleWaistIn,
y: y - 30 y: y - 30,
}) })
macro('hd', { macro('hd', {
from: points.grainlineFrom, from: points.grainlineFrom,
to: points.flyBottom, to: points.flyBottom,
y: y - 45 y: y - 45,
}) })
macro('hd', { macro('hd', {
from: points.grainlineFrom, from: points.grainlineFrom,
to: points.flyExtensionBottom, to: points.flyExtensionBottom,
y: y - 60 y: y - 60,
}) })
macro('hd', { macro('hd', {
from: points.grainlineFrom, from: points.grainlineFrom,
to: points.fork, to: points.fork,
y: y - 75 y: y - 75,
}) })
macro('hd', { macro('hd', {
from: points.pocketFacingTop, from: points.pocketFacingTop,
to: points.grainlineFrom, to: points.grainlineFrom,
y: y - 15 y: y - 15,
}) })
macro('hd', { macro('hd', {
from: points.slantTop, from: points.slantTop,
to: points.grainlineFrom, to: points.grainlineFrom,
y: y - 30 y: y - 30,
}) })
macro('hd', { macro('hd', {
from: points.slantBottomNotch, from: points.slantBottomNotch,
to: points.grainlineFrom, to: points.grainlineFrom,
y: y - 45 y: y - 45,
}) })
let x = points.fork.x + sa let x = points.fork.x + sa
macro('vd', { macro('vd', {
from: points.floorIn, from: points.floorIn,
to: points.fork, to: points.fork,
x: x + 15 x: x + 15,
}) })
macro('vd', { macro('vd', {
from: points.fork, from: points.fork,
to: points.flyExtensionBottom, to: points.flyExtensionBottom,
x: x + 15 x: x + 15,
}) })
macro('vd', { macro('vd', {
from: points.fork, from: points.fork,
to: points.flyBottom, to: points.flyBottom,
x: x + 30 x: x + 30,
}) })
macro('vd', { macro('vd', {
from: points.fork, from: points.fork,
to: points.slantTop, to: points.slantTop,
x: x + 45 x: x + 45,
}) })
macro('vd', { macro('vd', {
from: points.fork, from: points.fork,
to: points.styleWaistIn, to: points.styleWaistIn,
x: x + 60 x: x + 60,
}) })
} }
} }

View file

@ -14,7 +14,7 @@ export default (part) => {
snippets, snippets,
Snippet, Snippet,
sa, sa,
units units,
} = part.shorthand() } = part.shorthand()
if (options.waistbandCurve == 0) { if (options.waistbandCurve == 0) {
@ -96,8 +96,8 @@ export default (part) => {
'ssLeftBottom', 'ssLeftBottom',
'ssRightBottom', 'ssRightBottom',
'ssLeftTop', 'ssLeftTop',
'ssRightTop' 'ssRightTop',
] ],
}) })
points.titleAnchor = points.cfLeftTop.shiftFractionTowards(points.ssLeftBottom, 0.5) points.titleAnchor = points.cfLeftTop.shiftFractionTowards(points.ssLeftBottom, 0.5)
@ -105,12 +105,12 @@ export default (part) => {
at: points.titleAnchor, at: points.titleAnchor,
nr: 11, nr: 11,
title: 'waistband', title: 'waistband',
rotation: 90 rotation: 90,
}) })
macro('grainline', { macro('grainline', {
from: points.cbTop, from: points.cbTop,
to: points.cbBottom to: points.cbBottom,
}) })
paths.cf = new Path() paths.cf = new Path()
@ -152,129 +152,129 @@ export default (part) => {
macro('hd', { macro('hd', {
from: points.edgeRightBottom, from: points.edgeRightBottom,
to: points.cfLeftBottom, to: points.cfLeftBottom,
y: points.edgeRightBottom.y - sa - 30 y: points.edgeRightBottom.y - sa - 30,
}) })
macro('vd', { macro('vd', {
from: points.edgeRightBottom, from: points.edgeRightBottom,
to: points.cfLeftBottom, to: points.cfLeftBottom,
x: points.cfLeftBottom.x + sa + 30 x: points.cfLeftBottom.x + sa + 30,
}) })
macro('hd', { macro('hd', {
from: points.edgeRightBottom, from: points.edgeRightBottom,
to: points.ssRightBottom, to: points.ssRightBottom,
y: points.edgeRightBottom.y - sa - 15 y: points.edgeRightBottom.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.edgeRightBottom, from: points.edgeRightBottom,
to: points.ssRightBottom, to: points.ssRightBottom,
x: points.ssRightBottom.x + sa + 15 x: points.ssRightBottom.x + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.ssRightBottom, from: points.ssRightBottom,
to: points.cbBottom, to: points.cbBottom,
y: points.ssRightBottom.y - sa - 15 y: points.ssRightBottom.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.ssRightBottom, from: points.ssRightBottom,
to: points.cbBottom, to: points.cbBottom,
x: points.cbBottom.x + sa + 15 x: points.cbBottom.x + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.cbBottom, from: points.cbBottom,
to: points.ssLeftBottom, to: points.ssLeftBottom,
y: points.cbBottom.y - sa - 15 y: points.cbBottom.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.cbBottom, from: points.cbBottom,
to: points.ssLeftBottom, to: points.ssLeftBottom,
x: points.ssLeftBottom.x + sa + 15 x: points.ssLeftBottom.x + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.ssLeftBottom, from: points.ssLeftBottom,
to: points.cfLeftBottom, to: points.cfLeftBottom,
y: points.ssLeftBottom.y - sa - 15 y: points.ssLeftBottom.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.ssLeftBottom, from: points.ssLeftBottom,
to: points.cfLeftBottom, to: points.cfLeftBottom,
x: points.cfLeftBottom.x + sa + 15 x: points.cfLeftBottom.x + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.cfLeftTop, from: points.cfLeftTop,
to: points.cfLeftBottom, to: points.cfLeftBottom,
y: points.cfLeftTop.y + sa + 15 y: points.cfLeftTop.y + sa + 15,
}) })
macro('hd', { macro('hd', {
from: points.edgeRightBottom, from: points.edgeRightBottom,
to: points.edgeRightTop, to: points.edgeRightTop,
y: points.edgeRightBottom.y - sa - 15 y: points.edgeRightBottom.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.edgeRightBottom, from: points.edgeRightBottom,
to: points.edgeRightTop, to: points.edgeRightTop,
x: points.edgeRightTop.x - sa - 15 x: points.edgeRightTop.x - sa - 15,
}) })
// TOP OF WAISTBAND // TOP OF WAISTBAND
macro('hd', { macro('hd', {
from: points.edgeRightTop, from: points.edgeRightTop,
to: points.cfLeftTop, to: points.cfLeftTop,
y: points.edgeRightTop.y + sa + 30 y: points.edgeRightTop.y + sa + 30,
}) })
macro('vd', { macro('vd', {
from: points.edgeRightTop, from: points.edgeRightTop,
to: points.cfLeftTop, to: points.cfLeftTop,
x: points.edgeRightTop.x - sa - 30 x: points.edgeRightTop.x - sa - 30,
}) })
macro('hd', { macro('hd', {
from: points.edgeRightTop, from: points.edgeRightTop,
to: points.ssRightTop, to: points.ssRightTop,
y: points.edgeRightTop.y + sa + 15 y: points.edgeRightTop.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.edgeRightTop, from: points.edgeRightTop,
to: points.ssRightTop, to: points.ssRightTop,
x: points.edgeRightTop.x - sa - 15 x: points.edgeRightTop.x - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.ssRightTop, from: points.ssRightTop,
to: points.cbTop, to: points.cbTop,
y: points.ssRightTop.y + sa + 15 y: points.ssRightTop.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.ssRightTop, from: points.ssRightTop,
to: points.cbTop, to: points.cbTop,
x: points.ssRightBottom.x - sa - 15 x: points.ssRightBottom.x - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.cbTop, from: points.cbTop,
to: points.ssLeftTop, to: points.ssLeftTop,
y: points.cbTop.y + sa + 15 y: points.cbTop.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.cbTop, from: points.cbTop,
to: points.ssLeftTop, to: points.ssLeftTop,
x: points.cbTop.x - sa - 15 x: points.cbTop.x - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.ssLeftTop, from: points.ssLeftTop,
to: points.cfLeftTop, to: points.cfLeftTop,
y: points.ssLeftTop.y + sa + 15 y: points.ssLeftTop.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.ssLeftTop, from: points.ssLeftTop,
to: points.cfLeftTop, to: points.cfLeftTop,
x: points.ssLeftTop.x - sa - 15 x: points.ssLeftTop.x - sa - 15,
}) })
} }
} }

View file

@ -12,7 +12,7 @@ export default (part) => {
macro, macro,
snippets, snippets,
Snippet, Snippet,
sa sa,
} = part.shorthand() } = part.shorthand()
if (options.waistbandCurve > 0) { if (options.waistbandCurve > 0) {
@ -49,7 +49,7 @@ export default (part) => {
if (complete) { if (complete) {
macro('sprinkle', { macro('sprinkle', {
snippet: 'notch', snippet: 'notch',
on: ['cfRight', 'cfLeft', 'rsRight', 'rsLeft', 'cbRight', 'cbLeft', 'lsRight', 'lsLeft'] on: ['cfRight', 'cfLeft', 'rsRight', 'rsLeft', 'cbRight', 'cbLeft', 'lsRight', 'lsLeft'],
}) })
points.titleAnchor = points.top.shiftFractionTowards(points.bottom, 0.4) points.titleAnchor = points.top.shiftFractionTowards(points.bottom, 0.4)
points.logoAnchor = points.top.shiftFractionTowards(points.bottom, 0.6) points.logoAnchor = points.top.shiftFractionTowards(points.bottom, 0.6)
@ -57,11 +57,11 @@ export default (part) => {
at: points.titleAnchor, at: points.titleAnchor,
nr: 11, nr: 11,
title: 'waistband', title: 'waistband',
rotation: 90 rotation: 90,
}) })
macro('grainline', { macro('grainline', {
from: points.rsLeft.shift(90, 30), from: points.rsLeft.shift(90, 30),
to: points.rsRight.shift(90, 30) to: points.rsRight.shift(90, 30),
}) })
paths.cf = new Path() paths.cf = new Path()
.move(points.cfLeft) .move(points.cfLeft)
@ -120,12 +120,12 @@ export default (part) => {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + sa + 15 y: points.bottomLeft.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.bottomRight.x + sa + 15 x: points.bottomRight.x + sa + 15,
}) })
} }
} }

View file

@ -13,5 +13,5 @@ export default [
'withGist', 'withGist',
'withLanguage', 'withLanguage',
'withStorage', 'withStorage',
'Workbench' 'Workbench',
] ]

View file

@ -6,6 +6,6 @@ export default function Hooks() {
postSample: [], postSample: [],
preRender: [], preRender: [],
postRender: [], postRender: [],
insertText: [] insertText: [],
} }
} }

View file

@ -15,5 +15,5 @@ export default {
Snippet, Snippet,
utils, utils,
patterns: {}, patterns: {},
plugins: {} plugins: {},
} }

View file

@ -189,7 +189,7 @@ Part.prototype.shorthand = function () {
complete, complete,
paperless, paperless,
events: this.context.events, events: this.context.events,
raise: this.context.raise raise: this.context.raise,
} }
if (this.context.settings.debug) { if (this.context.settings.debug) {
@ -241,7 +241,7 @@ Part.prototype.shorthand = function () {
self.context.raise.warning(`Could not set \`name\` property on \`points.${name}\``) self.context.raise.warning(`Could not set \`name\` property on \`points.${name}\``)
} }
return (self.points[name] = value) return (self.points[name] = value)
} },
} }
shorthand.points = new Proxy(this.points || {}, pointsProxy) shorthand.points = new Proxy(this.points || {}, pointsProxy)
// Proxy the paths object // Proxy the paths object
@ -261,7 +261,7 @@ Part.prototype.shorthand = function () {
self.context.raise.warning(`Could not set \`name\` property on \`paths.${name}\``) self.context.raise.warning(`Could not set \`name\` property on \`paths.${name}\``)
} }
return (self.paths[name] = value) return (self.paths[name] = value)
} },
} }
shorthand.paths = new Proxy(this.paths || {}, pathsProxy) shorthand.paths = new Proxy(this.paths || {}, pathsProxy)
// Proxy the snippets object // Proxy the snippets object
@ -289,7 +289,7 @@ Part.prototype.shorthand = function () {
self.context.raise.warning(`Could not set \`name\` property on \`snippets.${name}\``) self.context.raise.warning(`Could not set \`name\` property on \`snippets.${name}\``)
} }
return (self.snippets[name] = value) return (self.snippets[name] = value)
} },
} }
shorthand.snippets = new Proxy(this.snippets || {}, snippetsProxy) shorthand.snippets = new Proxy(this.snippets || {}, snippetsProxy)
// Proxy the measurements object // Proxy the measurements object
@ -301,7 +301,7 @@ Part.prototype.shorthand = function () {
) )
return Reflect.get(...arguments) return Reflect.get(...arguments)
}, },
set: (measurements, name, value) => (self.context.settings.measurements[name] = value) set: (measurements, name, value) => (self.context.settings.measurements[name] = value),
} }
shorthand.measurements = new Proxy(this.context.settings.measurements || {}, measurementsProxy) shorthand.measurements = new Proxy(this.context.settings.measurements || {}, measurementsProxy)
// Proxy the options object // Proxy the options object
@ -311,7 +311,7 @@ Part.prototype.shorthand = function () {
self.context.raise.warning(`Tried to access \`options.${name}\` but it is \`undefined\``) self.context.raise.warning(`Tried to access \`options.${name}\` but it is \`undefined\``)
return Reflect.get(...arguments) return Reflect.get(...arguments)
}, },
set: (options, name, value) => (self.context.settings.options[name] = value) set: (options, name, value) => (self.context.settings.options[name] = value),
} }
shorthand.options = new Proxy(this.context.settings.options || {}, optionsProxy) shorthand.options = new Proxy(this.context.settings.options || {}, optionsProxy)
} else { } else {

View file

@ -8,7 +8,7 @@ import {
pointOnLine, pointOnLine,
pointOnCurve, pointOnCurve,
curveEdge, curveEdge,
round round,
} from './utils' } from './utils'
function Path(debug = false) { function Path(debug = false) {
@ -514,18 +514,18 @@ function lineBoundingBox(line) {
else else
return { return {
topLeft: new Point(from.x, to.y), topLeft: new Point(from.x, to.y),
bottomRight: new Point(to.x, from.y) bottomRight: new Point(to.x, from.y),
} }
} else if (from.x > to.x) { } else if (from.x > to.x) {
if (from.y < to.y) if (from.y < to.y)
return { return {
topLeft: new Point(to.x, from.y), topLeft: new Point(to.x, from.y),
bottomRight: new Point(from.x, to.y) bottomRight: new Point(from.x, to.y),
} }
else else
return { return {
topLeft: new Point(to.x, to.y), topLeft: new Point(to.x, to.y),
bottomRight: new Point(from.x, from.y) bottomRight: new Point(from.x, from.y),
} }
} }
} }
@ -535,7 +535,7 @@ function curveBoundingBox(curve) {
return { return {
topLeft: new Point(bb.x.min, bb.y.min), topLeft: new Point(bb.x.min, bb.y.min),
bottomRight: new Point(bb.x.max, bb.y.max) bottomRight: new Point(bb.x.max, bb.y.max),
} }
} }

View file

@ -16,7 +16,7 @@ export default function Pattern(config = { options: {} }) {
info: [], info: [],
warning: [], warning: [],
error: [], error: [],
debug: [] debug: [],
} }
const events = this.events const events = this.events
this.raise = { this.raise = {
@ -31,7 +31,7 @@ export default function Pattern(config = { options: {} }) {
}, },
debug: function (data) { debug: function (data) {
events.debug.push(data) events.debug.push(data)
} },
} }
this.raise.debug( this.raise.debug(
`New \`@freesewing/${config.name}:${config.version}\` pattern using \`@freesewing/core:${version}\`` `New \`@freesewing/${config.name}:${config.version}\` pattern using \`@freesewing/core:${version}\``
@ -60,7 +60,7 @@ export default function Pattern(config = { options: {} }) {
margin: 2, margin: 2,
layout: true, layout: true,
debug: true, debug: true,
options: {} options: {},
} }
if (typeof this.config.dependencies === 'undefined') this.config.dependencies = {} if (typeof this.config.dependencies === 'undefined') this.config.dependencies = {}
@ -100,7 +100,7 @@ export default function Pattern(config = { options: {} }) {
store: this.store, store: this.store,
macros: this.macros, macros: this.macros,
events: this.events, events: this.events,
raise: this.raise raise: this.raise,
} }
// Part closure // Part closure
@ -130,7 +130,7 @@ Pattern.prototype.apply = function (settings) {
} else if (typeof settings[key] === 'object') { } else if (typeof settings[key] === 'object') {
this.settings[key] = { this.settings[key] = {
...this.settings[key], ...this.settings[key],
...settings[key] ...settings[key],
} }
} else this.settings[key] = settings[key] } else this.settings[key] = settings[key]
} }
@ -172,7 +172,7 @@ Pattern.prototype.draft = function () {
} catch (err) { } catch (err) {
this.raise.error([ this.raise.error([
`Could not inject part \`${this.config.inject[partName]}\` into part \`${partName}\``, `Could not inject part \`${this.config.inject[partName]}\` into part \`${partName}\``,
err err,
]) ])
} }
} }
@ -661,7 +661,7 @@ Pattern.prototype.getRenderProps = function () {
debug: this.events.debug, debug: this.events.debug,
info: this.events.info, info: this.events.info,
warning: this.events.warning, warning: this.events.warning,
error: this.events.error error: this.events.error,
} }
props.parts = {} props.parts = {}
for (let p in this.parts) { for (let p in this.parts) {
@ -674,7 +674,7 @@ Pattern.prototype.getRenderProps = function () {
height: this.parts[p].height, height: this.parts[p].height,
width: this.parts[p].width, width: this.parts[p].width,
bottomRight: this.parts[p].bottomRight, bottomRight: this.parts[p].bottomRight,
topLeft: this.parts[p].topLeft topLeft: this.parts[p].topLeft,
} }
} }
} }

View file

@ -9,13 +9,13 @@ export default function splitCurve(start, cp1, cp2, end, split) {
start: c1.ops[0].to, start: c1.ops[0].to,
cp1: c1.ops[1].cp1, cp1: c1.ops[1].cp1,
cp2: c1.ops[1].cp2, cp2: c1.ops[1].cp2,
end: c1.ops[1].to end: c1.ops[1].to,
}, },
{ {
start: c2.ops[0].to, start: c2.ops[0].to,
cp1: c2.ops[1].cp1, cp1: c2.ops[1].cp1,
cp2: c2.ops[1].cp2, cp2: c2.ops[1].cp2,
end: c2.ops[1].to end: c2.ops[1].to,
} },
] ]
} }

View file

@ -60,7 +60,7 @@ Svg.prototype.render = function (pattern) {
let partSvg = this.renderPart(part) let partSvg = this.renderPart(part)
this.layout[partId] = { this.layout[partId] = {
svg: partSvg, svg: partSvg,
transform: part.attributes.getAsArray('transform') transform: part.attributes.getAsArray('transform'),
} }
this.svg += this.openGroup(`${this.idPrefix}part-${partId}`, part.attributes) this.svg += this.openGroup(`${this.idPrefix}part-${partId}`, part.attributes)
this.svg += partSvg this.svg += partSvg

View file

@ -87,13 +87,13 @@ export function pointOnCurve(start, cp1, cp2, end, check) {
) )
let intersections = curve.intersects({ let intersections = curve.intersects({
p1: { x: check.x - 1, y: check.y }, p1: { x: check.x - 1, y: check.y },
p2: { x: check.x + 1, y: check.y } p2: { x: check.x + 1, y: check.y },
}) })
if (intersections.length === 0) { if (intersections.length === 0) {
// Handle edge case of a curve that's a perfect horizontal line // Handle edge case of a curve that's a perfect horizontal line
intersections = curve.intersects({ intersections = curve.intersects({
p1: { x: check.x, y: check.y - 1 }, p1: { x: check.x, y: check.y - 1 },
p2: { x: check.x, y: check.y + 1 } p2: { x: check.x, y: check.y + 1 },
}) })
} }
@ -110,14 +110,14 @@ export function splitCurve(start, cp1, cp2, end, split) {
start: c1.ops[0].to, start: c1.ops[0].to,
cp1: c1.ops[1].cp1, cp1: c1.ops[1].cp1,
cp2: c1.ops[1].cp2, cp2: c1.ops[1].cp2,
end: c1.ops[1].to end: c1.ops[1].to,
}, },
{ {
start: c2.ops[0].to, start: c2.ops[0].to,
cp1: c2.ops[1].cp1, cp1: c2.ops[1].cp1,
cp2: c2.ops[1].cp2, cp2: c2.ops[1].cp2,
end: c2.ops[1].to end: c2.ops[1].to,
} },
] ]
} }
@ -156,7 +156,7 @@ export function lineIntersectsCurve(start, end, from, cp1, cp2, to) {
) )
let line = { let line = {
p1: { x: start.x, y: start.y }, p1: { x: start.x, y: start.y },
p2: { x: end.x, y: end.y } p2: { x: end.x, y: end.y },
} }
for (let t of bz.intersects(line)) { for (let t of bz.intersects(line)) {
let isect = bz.get(t) let isect = bz.get(t)

View file

@ -12,7 +12,7 @@ export default {
optionGroups: { optionGroups: {
fit: ['fullness', 'waistReduction'], fit: ['fullness', 'waistReduction'],
style: ['waistbandBelowWaist', 'cuffStyle', 'cuffWidth', 'ventLength'], style: ['waistbandBelowWaist', 'cuffStyle', 'cuffWidth', 'ventLength'],
advanced: ['bandBelowKnee', 'kneeToBelow'] advanced: ['bandBelowKnee', 'kneeToBelow'],
}, },
parts: [ parts: [
'frontpoints', 'frontpoints',
@ -22,13 +22,13 @@ export default {
'legband', 'legband',
'legbandkeystone', 'legbandkeystone',
'pocket', 'pocket',
'pocketfacing' 'pocketfacing',
], ],
inject: { inject: {
front: 'frontpoints', front: 'frontpoints',
back: 'frontpoints', back: 'frontpoints',
pocket: 'frontpoints', pocket: 'frontpoints',
pocketfacing: 'frontpoints' pocketfacing: 'frontpoints',
}, },
measurements: [ measurements: [
'waist', 'waist',
@ -38,13 +38,13 @@ export default {
'waistToKnee', 'waistToKnee',
'waistToHips', 'waistToHips',
'waistToFloor', 'waistToFloor',
'knee' 'knee',
], ],
dependencies: { dependencies: {
back: 'front', back: 'front',
legband: ['back', 'front'], legband: ['back', 'front'],
legbandkeystone: ['back', 'front'], legbandkeystone: ['back', 'front'],
waistband: ['back', 'front'] waistband: ['back', 'front'],
}, },
hide: ['frontpoints'], hide: ['frontpoints'],
options: { options: {
@ -68,6 +68,6 @@ export default {
waistReduction: { pct: 1, min: -2, max: 10 }, waistReduction: { pct: 1, min: -2, max: 10 },
cuffWidth: { pct: 0, min: -50, max: 150 }, cuffWidth: { pct: 0, min: -50, max: 150 },
cuffStyle: { dflt: 'elegant', list: ['traditional', 'elegant', 'keystone'] }, cuffStyle: { dflt: 'elegant', list: ['traditional', 'elegant', 'keystone'] },
bandBelowKnee: { pct: 25, min: 15, max: 50 } bandBelowKnee: { pct: 25, min: 15, max: 50 },
} },
} }

View file

@ -184,7 +184,7 @@ export default function (part) {
sa, sa,
store, store,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
let tempP = null let tempP = null
@ -270,7 +270,7 @@ export default function (part) {
macro('title', { macro('title', {
nr: 77, nr: 77,
at: points.title, at: points.title,
title: 'Back' title: 'Back',
}) })
points.__titleNr.attr('data-text-class', 'center') points.__titleNr.attr('data-text-class', 'center')
points.__titleName.attr('data-text-class', 'center') points.__titleName.attr('data-text-class', 'center')
@ -280,7 +280,7 @@ export default function (part) {
let dist = points.p11.dist(points.p4) let dist = points.p11.dist(points.p4)
macro('grainline', { macro('grainline', {
from: points.pA.shift(angle, dist * 0.35), from: points.pA.shift(angle, dist * 0.35),
to: points.pA.shift(angle + 180, dist * 0.35) to: points.pA.shift(angle + 180, dist * 0.35),
}) })
if (sa) { if (sa) {
@ -292,61 +292,61 @@ export default function (part) {
if (paperless) { if (paperless) {
macro('ld', { macro('ld', {
from: points.topOfVent, from: points.topOfVent,
to: points.p11 to: points.p11,
}) })
macro('ld', { macro('ld', {
from: points.p2, from: points.p2,
to: points.p4, to: points.p4,
d: 15 d: 15,
}) })
tempP = paths.sideSeam.intersectsY(points.p3.y)[0] tempP = paths.sideSeam.intersectsY(points.p3.y)[0]
macro('ld', { macro('ld', {
from: points.p5, from: points.p5,
to: tempP to: tempP,
}) })
macro('ld', { macro('ld', {
from: points.p3, from: points.p3,
to: tempP to: tempP,
}) })
macro('hd', { macro('hd', {
from: points.p2, from: points.p2,
to: points.p4, to: points.p4,
y: points.p2.y y: points.p2.y,
}) })
macro('hd', { macro('hd', {
from: points.p10, from: points.p10,
to: points.p11, to: points.p11,
y: points.p10.y - 15 y: points.p10.y - 15,
}) })
macro('vd', { macro('vd', {
from: points.p2, from: points.p2,
to: points.p3, to: points.p3,
x: points.p3.x x: points.p3.x,
}) })
macro('vd', { macro('vd', {
from: points.p2, from: points.p2,
to: points.p4, to: points.p4,
x: points.p2.x x: points.p2.x,
}) })
macro('vd', { macro('vd', {
from: points.p3, from: points.p3,
to: points.p10, to: points.p10,
x: points.p3.x x: points.p3.x,
}) })
macro('ld', { macro('ld', {
from: points.p2, from: points.p2,
to: points.p5, to: points.p5,
d: -15 d: -15,
}) })
macro('ld', { macro('ld', {
from: points.p4, from: points.p4,
to: points.p11, to: points.p11,
d: -15 d: -15,
}) })
macro('ld', { macro('ld', {
from: tempP, from: tempP,
to: points.p4, to: points.p4,
d: 0 d: 0,
}) })
} }

View file

@ -10,7 +10,7 @@ export default function (part) {
sa, sa,
store, store,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
const cc = 0.551915024494 // circle constant const cc = 0.551915024494 // circle constant
@ -147,7 +147,7 @@ export default function (part) {
macro('title', { macro('title', {
nr: 76, nr: 76,
at: points.title, at: points.title,
title: 'Front' title: 'Front',
}) })
points.__titleNr.attr('data-text-class', 'center') points.__titleNr.attr('data-text-class', 'center')
points.__titleName.attr('data-text-class', 'center') points.__titleName.attr('data-text-class', 'center')
@ -158,7 +158,7 @@ export default function (part) {
macro('grainline', { macro('grainline', {
from: points.pocketBL.shiftFractionTowards(points.pocketTL, -0.9), from: points.pocketBL.shiftFractionTowards(points.pocketTL, -0.9),
to: points.pocketTL to: points.pocketTL,
}) })
if (sa) { if (sa) {
@ -170,69 +170,69 @@ export default function (part) {
if (paperless) { if (paperless) {
macro('ld', { macro('ld', {
from: points.topOfVent, from: points.topOfVent,
to: points.pJ to: points.pJ,
}) })
macro('hd', { macro('hd', {
from: points.pocketSide, from: points.pocketSide,
to: points.pocketWaist, to: points.pocketWaist,
y: points.pocketWaist.y + 15 y: points.pocketWaist.y + 15,
}) })
macro('hd', { macro('hd', {
from: points.pW, from: points.pW,
to: points.pocketWaist, to: points.pocketWaist,
y: points.pocketWaist.y + 15 y: points.pocketWaist.y + 15,
}) })
macro('hd', { macro('hd', {
from: points.pocketWaist, from: points.pocketWaist,
to: points.flyTop, to: points.flyTop,
y: points.pocketWaist.y + 15 y: points.pocketWaist.y + 15,
}) })
macro('hd', { macro('hd', {
from: points.pAextra, from: points.pAextra,
to: points.pR to: points.pR,
}) })
macro('hd', { macro('hd', {
from: points.pK, from: points.pK,
to: points.pJ, to: points.pJ,
y: points.pJ.y - 15 y: points.pJ.y - 15,
}) })
// Keystone original (see above): // Keystone original (see above):
if (keystone) { if (keystone) {
macro('hd', { macro('hd', {
from: points.pSlitBottom, from: points.pSlitBottom,
to: points.pJ, to: points.pJ,
y: points.pJ.y - 30 y: points.pJ.y - 30,
}) })
macro('vd', { macro('vd', {
from: points.pSlitTop, from: points.pSlitTop,
to: points.pSlitBottom, to: points.pSlitBottom,
x: points.pSlitTop.x + 15 x: points.pSlitTop.x + 15,
}) })
} }
macro('vd', { macro('vd', {
from: points.pocketSide, from: points.pocketSide,
to: points.pocketWaist, to: points.pocketWaist,
x: points.pocketSide.x x: points.pocketSide.x,
}) })
macro('vd', { macro('vd', {
from: points.pW, from: points.pW,
to: points.pR, to: points.pR,
x: points.pR.x x: points.pR.x,
}) })
macro('vd', { macro('vd', {
from: points.pR, from: points.pR,
to: points.pK, to: points.pK,
x: points.pR.x x: points.pR.x,
}) })
macro('vd', { macro('vd', {
from: points.pW, from: points.pW,
to: points.pZ, to: points.pZ,
x: points.pW.x + 15 x: points.pW.x + 15,
}) })
macro('vd', { macro('vd', {
from: points.pJ, from: points.pJ,
to: points.pocketWaist, to: points.pocketWaist,
x: points.pocketWaist.x x: points.pocketWaist.x,
}) })
} }

View file

@ -35,7 +35,7 @@ export default function (part) {
sa, sa,
store, store,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
if (options.cuffStyle == 'keystone') { if (options.cuffStyle == 'keystone') {
@ -138,7 +138,7 @@ export default function (part) {
macro('title', { macro('title', {
nr: 78, nr: 78,
at: points.title, at: points.title,
title: 'LegBand' title: 'LegBand',
}) })
points.__titleNr.attr('data-text-class', 'center') points.__titleNr.attr('data-text-class', 'center')
points.__titleName.attr('data-text-class', 'center') points.__titleName.attr('data-text-class', 'center')
@ -154,34 +154,34 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.pA, from: points.pA,
to: points.pF, to: points.pF,
y: points.pA.y y: points.pA.y,
}) })
if (traditional) { if (traditional) {
macro('hd', { macro('hd', {
from: points.pB, from: points.pB,
to: points.pC, to: points.pC,
y: points.pB.y y: points.pB.y,
}) })
} }
macro('ld', { macro('ld', {
from: points.pD, from: points.pD,
to: points.pC, to: points.pC,
d: +sa + 15 d: +sa + 15,
}) })
macro('ld', { macro('ld', {
from: points.pA, from: points.pA,
to: points.pAout, to: points.pAout,
d: +sa + 15 d: +sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.pB, from: points.pB,
to: points.pA, to: points.pA,
x: points.pA.x - sa - 15 x: points.pA.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.pC, from: points.pC,
to: points.pB, to: points.pB,
x: points.pC.x - (traditional ? 0 : sa + 15) x: points.pC.x - (traditional ? 0 : sa + 15),
}) })
} }

View file

@ -12,7 +12,7 @@ export default function (part) {
sa, sa,
store, store,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
if (options.cuffStyle != 'keystone') { if (options.cuffStyle != 'keystone') {
@ -107,7 +107,7 @@ export default function (part) {
macro('title', { macro('title', {
nr: 78, nr: 78,
at: points.title, at: points.title,
title: 'LegBand' title: 'LegBand',
}) })
if (sa) { if (sa) {
@ -120,57 +120,57 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.pCout, from: points.pCout,
to: points.pF, to: points.pF,
y: points.pA.y - sa - 15 y: points.pA.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.pF, from: points.pF,
to: points.pE, to: points.pE,
y: points.pA.y - sa - 15 y: points.pA.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.pE, from: points.pE,
to: points.pA, to: points.pA,
y: points.pA.y - sa - 15 y: points.pA.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.pHout, from: points.pHout,
to: points.pG, to: points.pG,
y: points.pG.y + sa + 15 y: points.pG.y + sa + 15,
}) })
macro('ld', { macro('ld', {
from: points.pC, from: points.pC,
to: points.pB1, to: points.pB1,
d: 15 d: 15,
}) })
macro('ld', { macro('ld', {
from: points.pB1, from: points.pB1,
to: points.pB2, to: points.pB2,
d: 15 d: 15,
}) })
macro('ld', { macro('ld', {
from: points.pB2, from: points.pB2,
to: points.pB3, to: points.pB3,
d: 15 d: 15,
}) })
macro('ld', { macro('ld', {
from: points.pB3, from: points.pB3,
to: points.pH, to: points.pH,
d: 15 d: 15,
}) })
macro('ld', { macro('ld', {
from: points.pA, from: points.pA,
to: points.pG, to: points.pG,
d: 15 + sa d: 15 + sa,
}) })
macro('vd', { macro('vd', {
from: points.pE, from: points.pE,
to: points.pJ, to: points.pJ,
x: points.pJ.x - 15 x: points.pJ.x - 15,
}) })
macro('vd', { macro('vd', {
from: points.pF, from: points.pF,
to: points.pA, to: points.pA,
x: points.pF.x - 15 x: points.pF.x - 15,
}) })
} }

View file

@ -9,7 +9,7 @@ export default function (part) {
sa, sa,
store, store,
paperless, paperless,
macro macro,
} = part.shorthand() } = part.shorthand()
let halfInch = store.get('halfInch') let halfInch = store.get('halfInch')
@ -77,7 +77,7 @@ export default function (part) {
macro('title', { macro('title', {
nr: 2, nr: 2,
at: points.title, at: points.title,
title: 'Pocket' title: 'Pocket',
}) })
points.__titleNr.attr('data-text-class', 'center') points.__titleNr.attr('data-text-class', 'center')
points.__titleName.attr('data-text-class', 'center') points.__titleName.attr('data-text-class', 'center')
@ -93,62 +93,62 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.mpocketFacingBR, from: points.mpocketFacingBR,
to: points.mpocketWaist, to: points.mpocketWaist,
y: points.pU.y - sa - 15 y: points.pU.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.mpocketWaist, from: points.mpocketWaist,
to: points.pocketTL, to: points.pocketTL,
y: points.pU.y - sa - 15 y: points.pU.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.pocketTL, from: points.pocketTL,
to: points.pocketWaist, to: points.pocketWaist,
y: points.pU.y - sa - 15 y: points.pU.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.pocketWaist, from: points.pocketWaist,
to: points.pU, to: points.pU,
y: points.pU.y - sa - 15 y: points.pU.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.pU, from: points.pU,
to: points.pocketFacingBR, to: points.pocketFacingBR,
y: points.pU.y - sa - 15 y: points.pU.y - sa - 15,
}) })
macro('hd', { macro('hd', {
from: points.pocketWaist, from: points.pocketWaist,
to: points.pocketFacingTL, to: points.pocketFacingTL,
y: points.pU.y - sa - 15 y: points.pU.y - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.pU, from: points.pU,
to: points.pocketSide, to: points.pocketSide,
x: points.pocketSide.x + sa + 15 x: points.pocketSide.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.pocketTL, from: points.pocketTL,
to: points.pocketBL, to: points.pocketBL,
x: points.pocketTL.x + 15 x: points.pocketTL.x + 15,
}) })
macro('vd', { macro('vd', {
from: points.pocketSide, from: points.pocketSide,
to: points.mpocketWaist, to: points.mpocketWaist,
x: points.pocketSide.x + sa + 15 x: points.pocketSide.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.pocketSide, from: points.pocketSide,
to: points.pocketFacingBR, to: points.pocketFacingBR,
x: points.pocketSide.x + sa + 15 x: points.pocketSide.x + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.mpocketWaist, from: points.mpocketWaist,
to: points.mpocketSide, to: points.mpocketSide,
x: points.mpocketSide.x - sa - 15 x: points.mpocketSide.x - sa - 15,
}) })
macro('vd', { macro('vd', {
from: points.mpocketSide, from: points.mpocketSide,
to: points.mpocketFacingBR, to: points.mpocketFacingBR,
x: points.mpocketSide.x - sa - 15 x: points.mpocketSide.x - sa - 15,
}) })
} }

Some files were not shown because too many files have changed in this diff Show more