From a5556dc32ead1acf0c49fc932c7347cbfc7214d4 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sun, 13 Jun 2021 14:31:15 +0200 Subject: [PATCH] feat(carlton): Port brian's s3 options --- packages/carlton/config/index.js | 5 ++++- packages/carlton/src/back.js | 26 ++++++++++++++------------ packages/carlton/src/front.js | 26 ++++++++++++++------------ packages/carlton/src/index.js | 5 +++-- 4 files changed, 35 insertions(+), 27 deletions(-) diff --git a/packages/carlton/config/index.js b/packages/carlton/config/index.js index 26408bdbb66..a930a8f6858 100644 --- a/packages/carlton/config/index.js +++ b/packages/carlton/config/index.js @@ -46,7 +46,7 @@ export default { 'innerPocketDepth', 'innerPocketWeltHeight', ], - style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length'], + style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length', 's3Collar', 's3Armhole'], collar: ['collarHeight', 'collarSpread', 'collarFlare'], }, measurements: [ @@ -155,5 +155,8 @@ export default { collarHeight: { pct: 9.6, min: 8, max: 11 }, collarSpread: { deg: 4, min: 2, max: 6 }, collarFlare: { pct: 20, min: 0, max: 40 }, + // s3 is short for Shoulder Seam Shift + s3Collar: { pct: 0, min: -100, max: 100 }, + s3Armhole: { pct: 0, min: -100, max: 100 }, }, } diff --git a/packages/carlton/src/back.js b/packages/carlton/src/back.js index 2697bfb1068..2470af3b3b9 100644 --- a/packages/carlton/src/back.js +++ b/packages/carlton/src/back.js @@ -59,7 +59,9 @@ export default function (part) { ) // Clean up - for (let i in paths) delete paths[i] + for (let i in paths) { + if (['backArmhole','backCollar'].indexOf(i) === -1) delete paths[i] + } for (let i in snippets) delete snippets[i] // Paths @@ -77,9 +79,9 @@ export default function (part) { .curve_(points.waistCp2, points.armhole) .curve(points.armholeCp2, points.armholeHollowCp1, points.armholeHollow) .curve(points.armholeHollowCp2, points.armholePitchCp1, points.armholePitch) - .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) - .line(points.neck) - .curve_(points.neckCp2, points.cbNeck) + .join(paths.backArmhole) + .line(points.s3CollarSplit) + .join(paths.backCollar) paths.seam = paths.seam1.join(paths.dart).join(paths.seam2).close().attr('class', 'fabric') paths.backStay = new Path() @@ -161,12 +163,12 @@ export default function (part) { }) macro('vd', { from: points.armhole, - to: points.shoulder, + to: points.s3ArmholeSplit, x: points.armhole.x + 30 + sa, }) macro('vd', { from: points.waist, - to: points.shoulder, + to: points.s3ArmholeSplit, x: points.armhole.x + 45 + sa, }) macro('vd', { @@ -186,7 +188,7 @@ export default function (part) { }) macro('vd', { from: points.bpBottom, - to: points.neck, + to: points.s3CollarSplit, x: points.bpTop.x - 30 - sa, }) macro('vd', { @@ -201,23 +203,23 @@ export default function (part) { }) macro('hd', { from: points.cbNeck, - to: points.neck, - y: points.neck.y - 15 - sa, + to: points.s3CollarSplit, + y: points.s3CollarSplit.y - 15 - sa, }) macro('hd', { from: points.cbNeck, to: points.armholePitch, - y: points.neck.y - 30 - sa, + y: points.s3CollarSplit.y - 30 - sa, }) macro('hd', { from: points.cbNeck, to: points.shoulder, - y: points.neck.y - 45 - sa, + y: points.s3CollarSplit.y - 45 - sa, }) macro('hd', { from: points.cbNeck, to: points.armhole, - y: points.neck.y - 60 - sa, + y: points.s3CollarSplit.y - 60 - sa, }) } } diff --git a/packages/carlton/src/front.js b/packages/carlton/src/front.js index 765c4e94c02..0a44d73c7dc 100644 --- a/packages/carlton/src/front.js +++ b/packages/carlton/src/front.js @@ -201,7 +201,9 @@ export default function (part) { ) // Clean up - for (let i in paths) delete paths[i] + for (let i in paths) { + if (['frontArmhole','frontCollar'].indexOf(i) === -1) delete paths[i] + } for (let i in snippets) delete snippets[i] // Paths @@ -212,9 +214,9 @@ export default function (part) { .curve_(points.waistCp2, points.armhole) .curve(points.armholeCp2, points.armholeHollowCp1, points.armholeHollow) .curve(points.armholeHollowCp2, points.armholePitchCp1, points.armholePitch) - .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) - .line(points.neck) - .curve(points.neckCp2Front, points.cfNeckCp1, points.cfNeck) + .join(paths.frontArmhole) + .line(points.s3CollarSplit) + .join(paths.frontCollar) .line(points.collarTip) ._curve(points.lapelStraightEndCp1, points.lapelStraightEnd) .line(points.hemEdge) @@ -398,12 +400,12 @@ export default function (part) { }) macro('vd', { from: points.armhole, - to: points.shoulder, + to: points.s3ArmholeSplit, x: points.armhole.x + sa + 30, }) macro('vd', { from: points.armhole, - to: points.neck, + to: points.s3CollarSplit, x: points.armhole.x + sa + 45, }) macro('vd', { @@ -428,7 +430,7 @@ export default function (part) { }) macro('vd', { from: points.hemEdge, - to: points.neck, + to: points.s3CollarSplit, x: points.rollLineStart.x - sa - 45, }) macro('hd', { @@ -449,22 +451,22 @@ export default function (part) { macro('hd', { from: points.lapelStraightEnd, to: points.neck, - y: points.neck.y - sa - 15, + y: points.s3CollarSplit.y - sa - 15, }) macro('hd', { from: points.lapelStraightEnd, to: points.armholePitch, - y: points.neck.y - sa - 30, + y: points.s3CollarSplit.y - sa - 30, }) macro('hd', { from: points.lapelStraightEnd, - to: points.shoulder, - y: points.neck.y - sa - 45, + to: points.s3ArmholeSplit, + y: points.s3CollarSplit.y - sa - 45, }) macro('hd', { from: points.lapelStraightEnd, to: points.armhole, - y: points.neck.y - sa - 60, + y: points.s3CollarSplit.y - sa - 60, }) } } diff --git a/packages/carlton/src/index.js b/packages/carlton/src/index.js index 9fc056ea835..2001b6eca7e 100644 --- a/packages/carlton/src/index.js +++ b/packages/carlton/src/index.js @@ -1,6 +1,7 @@ import freesewing from '@freesewing/core' import plugins from '@freesewing/plugin-bundle' -import buttons from '@freesewing/plugin-buttons' +import mirrorPlugin from '@freesewing/plugin-mirror' +import buttonsPlugin from '@freesewing/plugin-buttons' import Bent from '@freesewing/bent' import config from '../config' // Parts @@ -23,7 +24,7 @@ import draftInnerPocketBag from './innerpocketbag' import draftInnerPocketTab from './innerpockettab' // Create new design -const Pattern = new freesewing.Design(config, [plugins, buttons]) +const Pattern = new freesewing.Design(config, [plugins, mirrorPlugin, buttonsPlugin]) // Attach draft methods from Bent to prototype Pattern.prototype.draftBentBase = function (part) {