diff --git a/packages/huey/config/index.js b/packages/huey/config/index.js index 39caf966be5..f865caa98df 100644 --- a/packages/huey/config/index.js +++ b/packages/huey/config/index.js @@ -31,6 +31,8 @@ export default { 'hoodClosure', 'hoodDepth', 'hoodAngle', + 's3Collar', + 's3Armhole', ], advanced: [ 'acrossBackFactor', @@ -116,6 +118,9 @@ export default { frontArmholeDeeper: { pct: 0.5, min: 0, max: 1.5 }, lengthBonus: { pct: 10, min: 5, max: 15 }, shoulderEase: { pct: 0.5, min: -2, max: 6 }, + // s3 is short for Shoulder Seam Shift + s3Collar: { pct: 0, min: -100, max: 100 }, + s3Armhole: { pct: 0, min: -100, max: 100 }, sleeveLengthBonus: { pct: 1, min: 0, max: 10 }, sleevecapEase: { pct: 0, min: 0, max: 10 }, sleevecapTopFactorX: { pct: 50, min: 25, max: 75 }, diff --git a/packages/huey/src/back.js b/packages/huey/src/back.js index d3e67ab9b5b..58cb8ecbf37 100644 --- a/packages/huey/src/back.js +++ b/packages/huey/src/back.js @@ -16,7 +16,9 @@ export default function (part) { } = part.shorthand() // Clear paths from Brian - for (let p of Object.keys(paths)) delete paths[p] + for (let i in paths) { + if (['backArmhole','backCollar'].indexOf(i) === -1) delete paths[i] + } // Shorten body to take ribbing into account if (options.ribbing) { @@ -42,9 +44,9 @@ export default function (part) { .curve_(points.hemCp2, 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) .attr('class', 'note stroke-xxl') paths.hemBase = new Path().move(points.cbHem).line(points.hem).attr('class', 'note stroke-xxl') paths.saBase.render = false diff --git a/packages/huey/src/front.js b/packages/huey/src/front.js index 6921745c90b..420ad1a925f 100644 --- a/packages/huey/src/front.js +++ b/packages/huey/src/front.js @@ -16,7 +16,9 @@ export default function (part) { } = part.shorthand() // Clear paths from Brian - for (let p of Object.keys(paths)) delete paths[p] + for (let i in paths) { + if (['frontArmhole','frontCollar'].indexOf(i) === -1) delete paths[i] + } // Shorten body to take ribbing into account if (options.ribbing) { @@ -61,9 +63,9 @@ export default function (part) { .curve_(points.hemCp2, 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.cfNeckCp1, points.cfNeck) + .join(paths.frontArmhole) + .line(points.s3CollarSplit) + .join(paths.frontCollar) .line(points.cfHem) .attr('class', 'note stroke-xxl') paths.hemBase = new Path().move(points.cfHem).line(points.hem).attr('class', 'note stroke-xxl')