diff --git a/plugins/plugin-cutonfold/src/index.mjs b/plugins/plugin-cutonfold/src/index.mjs index 57f82de85df..615d13bd927 100644 --- a/plugins/plugin-cutonfold/src/index.mjs +++ b/plugins/plugin-cutonfold/src/index.mjs @@ -19,14 +19,17 @@ export const plugin = { }, macros: { cutonfold: function (so) { - const { points, complete } = this.shorthand() + const { points, complete, setCutOnFold, setGrain } = this.shorthand() if (so === false) { delete this.points.cutonfoldFrom delete this.points.cutonfoldTo delete this.points.cutonfoldVia1 delete this.points.cutonfoldVia2 delete this.paths.cutonfold - this.setCutOnFold(false) // Restore default + // setCutOnFold relies on plugin-cutlist + if (typeof setCutOnFold === 'function') { + setCutOnFold(false) // Restore default + } return true } so = { @@ -35,8 +38,10 @@ export const plugin = { prefix: '', ...so, } - this.setCutOnFold(so.from, so.to) - if (so.grainline) this.setGrain(so.from.angle(so.to)) + if (typeof setCutOnFold === 'function') { + setCutOnFold(so.from, so.to) + if (so.grainline) setGrain(so.from.angle(so.to)) + } if (complete) { points['cutonfoldFrom' + so.prefix] = so.from.shiftFractionTowards(so.to, so.margin / 100) points['cutonfoldTo' + so.prefix] = so.to.shiftFractionTowards(so.from, so.margin / 100) diff --git a/plugins/plugin-grainline/src/index.mjs b/plugins/plugin-grainline/src/index.mjs index 2a5790f7167..e1f1a3d7008 100644 --- a/plugins/plugin-grainline/src/index.mjs +++ b/plugins/plugin-grainline/src/index.mjs @@ -31,8 +31,11 @@ export const plugin = { ...dflts, ...so, } - const { points, complete } = this.shorthand() - this.setGrain(so.from.angle(so.to)) + const { points, complete, setGrain } = this.shorthand() + // setGrain relies on plugin-cutlist + if (typeof setGrain === 'function') { + setGrain(so.from.angle(so.to)) + } if (complete) { points.grainlineFrom = so.from.shiftFractionTowards(so.to, 0.05) points.grainlineTo = so.to.shiftFractionTowards(so.from, 0.05) diff --git a/plugins/plugin-grainline/tests/plugin.test.mjs b/plugins/plugin-grainline/tests/plugin.test.mjs index 992c837fb37..bed29a4b057 100644 --- a/plugins/plugin-grainline/tests/plugin.test.mjs +++ b/plugins/plugin-grainline/tests/plugin.test.mjs @@ -1,12 +1,13 @@ import chai from 'chai' -import { round, Pattern } from '@freesewing/core' +import { round, Design } from '@freesewing/core' import { plugin } from './dist/index.mjs' const expect = chai.expect describe('Grainline Plugin Tests', () => { it('Should run the default grainline macro', () => { - const pattern = new Pattern().use(plugin) + const Pattern = new Design({ plugins: [ plugin ]}) + const pattern = new Pattern() pattern.parts.test = new pattern.Part() pattern.parts.test.points.from = new pattern.Point(10, 20) pattern.parts.test.points.to = new pattern.Point(10, 230)