From 045e41d29348c07f7d89dbed358ed3f1a5e0f8f6 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Wed, 16 Jun 2021 18:57:41 +0200 Subject: [PATCH] wip(simon): Ported Brian's s3 options to yoke --- packages/simon/config/index.js | 5 +++++ packages/simon/src/back.js | 2 +- packages/simon/src/buttonholeplacket.js | 2 +- packages/simon/src/buttonplacket.js | 2 +- packages/simon/src/yoke.js | 27 ++++++++++++------------- 5 files changed, 21 insertions(+), 17 deletions(-) diff --git a/packages/simon/config/index.js b/packages/simon/config/index.js index 53fb716ec25..ec3f51fd5f4 100644 --- a/packages/simon/config/index.js +++ b/packages/simon/config/index.js @@ -23,6 +23,8 @@ export default { ], style: [ 'splitYoke', + 's3Collar', + 's3Armhole', 'hemStyle', 'hemCurve', 'boxPleat', @@ -217,6 +219,9 @@ export default { lengthBonus: { pct: 25, min: -4, max: 60 }, shoulderEase: { pct: 2, min: 0, max: 15 }, shoulderSlopeReduction: { pct: 0, min: 0, max: 8 }, + // s3 is short for Shoulder Seam Shift + s3Collar: { pct: 0, min: -100, max: 100 }, + s3Armhole: { pct: 0, min: -100, max: 100 }, sleevecapEase: { pct: 0, min: 0, max: 3 }, sleevecapTopFactorX: { pct: 50, min: 25, max: 75 }, sleevecapTopFactorY: { pct: 100, min: 35, max: 165 }, diff --git a/packages/simon/src/back.js b/packages/simon/src/back.js index 820c8bd7106..e1da66acbab 100644 --- a/packages/simon/src/back.js +++ b/packages/simon/src/back.js @@ -1,7 +1,6 @@ import { calculateReduction } from './shared' export default (part) => { - part.paths = {} // Removes paperless dimensions from brian let { store, measurements, @@ -237,6 +236,7 @@ export default (part) => { // Paperless? if (paperless) { + macro('rmad') // Removes paperless dimensions from brian if (store.get('backDarts')) { macro('vd', { from: points.dartBottom, diff --git a/packages/simon/src/buttonholeplacket.js b/packages/simon/src/buttonholeplacket.js index 64a1481d1ea..ef3d2a9e6da 100644 --- a/packages/simon/src/buttonholeplacket.js +++ b/packages/simon/src/buttonholeplacket.js @@ -23,7 +23,7 @@ export default (part) => { return part } - for (let id of Object.keys(part.paths)) delete part.paths[id] + for (let id in paths) delete part.paths[id] let width = options.buttonholePlacketWidth let fold = options.buttonholePlacketFoldWidth diff --git a/packages/simon/src/buttonplacket.js b/packages/simon/src/buttonplacket.js index 836febd12df..5cdbcab9f08 100644 --- a/packages/simon/src/buttonplacket.js +++ b/packages/simon/src/buttonplacket.js @@ -23,7 +23,7 @@ export default (part) => { return part } - for (let id of Object.keys(part.paths)) { + for (let id in paths) { if (id !== 'seam') delete part.paths[id] } macro('flip') diff --git a/packages/simon/src/yoke.js b/packages/simon/src/yoke.js index 238e41f3259..7680adba4d5 100644 --- a/packages/simon/src/yoke.js +++ b/packages/simon/src/yoke.js @@ -13,7 +13,9 @@ export default (part) => { options, } = part.shorthand() - for (let id of Object.keys(part.paths)) delete part.paths[id] + for (let id in paths) { + if (['backCollar', 'backArmhole'].indexOf(id) === -1) delete part.paths[id] + } // Cut off at yoke points.cbYoke = new Point(0, points.armholePitch.y) @@ -22,19 +24,18 @@ export default (part) => { paths.saBase = new Path() .move(points.cbYoke) .line(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) if (options.splitYoke) paths.saBase = paths.saBase.line(points.cbYoke).close() else { - for (let p of ['neckCp2', 'neck', 'shoulder', 'shoulderCp1', 'armholePitchCp2', 'armholePitch']) - points['_' + p] = points[p].flipX() - paths.saBase - ._curve(points._neckCp2, points._neck) - .line(points._shoulder) - .curve(points._shoulderCp1, points._armholePitchCp2, points._armholePitch) - .line(points.cbYoke) - .close() + macro('mirror', { + mirror: [points.cbNeck,points.cbYoke], + paths: [paths.saBase], + clone: true + }) + paths.saBase = paths.saBase.join(paths.mirroredSaBase.reverse()) + paths.mirroredSaBase.setRender(false) } paths.seam = paths.saBase.clone() paths.saBase.render = false @@ -62,8 +63,6 @@ export default (part) => { from: points.grainlineFrom, to: points.grainlineTo, }) - snippets.sleeveNotchA = new Snippet('bnotch', points.armholePitch) - snippets.sleeveNotchB = new Snippet('bnotch', points._armholePitch) } if (sa) {