From 1257469adeb388947d36732d0f920b329da85958 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Fri, 16 Apr 2021 19:11:18 +0200 Subject: [PATCH] feat(examples): Added more examples --- config/dependencies.yaml | 5 +++++ packages/examples/config/index.js | 2 ++ packages/examples/src/index.js | 18 ++++++++++++++--- packages/examples/src/plugin_bartack.js | 25 ++++++++++++++++++++++++ packages/examples/src/plugin_mirror.js | 26 +++++++++++++++++++++++++ 5 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 packages/examples/src/plugin_bartack.js create mode 100644 packages/examples/src/plugin_mirror.js diff --git a/config/dependencies.yaml b/config/dependencies.yaml index df9a8633e3d..e935b9e8fea 100644 --- a/config/dependencies.yaml +++ b/config/dependencies.yaml @@ -125,6 +125,11 @@ create-freesewing-pattern: diana: peer: '@freesewing/brian': *freesewing +example: + peer: + '@freesewing/plugin-mirror': *freesewing + '@freesewing/plugin-bartack': *freesewing + '@freesewing/plugin-buttons': *freesewing gatsby-remark-jargon: _: 'remark-jargon': *freesewing diff --git a/packages/examples/config/index.js b/packages/examples/config/index.js index ba3a25a39ba..7eb0ed96382 100644 --- a/packages/examples/config/index.js +++ b/packages/examples/config/index.js @@ -43,11 +43,13 @@ export default { 'path_start', 'path_translate', 'path_trim', + 'plugin_bartack', 'plugin_buttons', 'plugin_cutonfold', 'plugin_dimension', 'plugin_grainline', 'plugin_logo', + 'plugin_mirror', 'plugin_round', 'plugin_scalebox', 'plugin_sprinkle', diff --git a/packages/examples/src/index.js b/packages/examples/src/index.js index 946d0704cbc..7b26df337c8 100644 --- a/packages/examples/src/index.js +++ b/packages/examples/src/index.js @@ -1,5 +1,8 @@ import freesewing from '@freesewing/core' -import plugins from '@freesewing/plugin-bundle' +import pluginBundle from '@freesewing/plugin-bundle' +import buttonsPlugin from '@freesewing/plugin-buttons' +import mirrorPlugin from '@freesewing/plugin-mirror' +import bartackPlugin from '@freesewing/plugin-bartack' import config from '../config/' // Path API import draftPath_move from './path_move' @@ -28,11 +31,13 @@ import draftPath_start from './path_start' import draftPath_translate from './path_translate' import draftPath_trim from './path_trim' // Plugins -import draftPlugin_cutonfold from './plugin_cutonfold' +import draftPlugin_bartack from './plugin_bartack' import draftPlugin_buttons from './plugin_buttons' +import draftPlugin_cutonfold from './plugin_cutonfold' import draftPlugin_dimension from './plugin_dimension' import draftPlugin_grainline from './plugin_grainline' import draftPlugin_logo from './plugin_logo' +import draftPlugin_mirror from './plugin_mirror' import draftPlugin_round from './plugin_round' import draftPlugin_sprinkle from './plugin_sprinkle' import draftPlugin_scalebox from './plugin_scalebox' @@ -88,7 +93,12 @@ import draftDocs_overview from './docs_overview' import draftDocs_coords from './docs_coords' // Create design -const Pattern = new freesewing.Design(config, plugins) +const Pattern = new freesewing.Design(config, [ + pluginBundle, + buttonsPlugin, + mirrorPlugin, + bartackPlugin +]) // Attach draft methods to prototype let methods = { @@ -117,11 +127,13 @@ let methods = { draftPath_start, draftPath_translate, draftPath_trim, + draftPlugin_bartack, draftPlugin_buttons, draftPlugin_cutonfold, draftPlugin_dimension, draftPlugin_grainline, draftPlugin_logo, + draftPlugin_mirror, draftPlugin_round, draftPlugin_scalebox, draftPlugin_sprinkle, diff --git a/packages/examples/src/plugin_bartack.js b/packages/examples/src/plugin_bartack.js new file mode 100644 index 00000000000..a71181aa22d --- /dev/null +++ b/packages/examples/src/plugin_bartack.js @@ -0,0 +1,25 @@ +import { box } from './shared' + +export default (part) => { + let { Point, Path, points, paths, macro } = part.shorthand() + + points.a = new Point(15, 15) + points.b = new Point(20, 20) + points.c = new Point(30, 20) + points.d = new Point(35, 15) + points.e = new Point(20, 10) + points.f = new Point(30, 10) + + paths.a = new Path().move(points.a).curve(points.b, points.c, points.d).setRender(false) + + macro('bartackAlong', { + path: paths.a + }) + + macro('sprinkle', { + snippet: 'notch', + on: ['e', 'f'] + }) + + return box(part, 60, 30) +} diff --git a/packages/examples/src/plugin_mirror.js b/packages/examples/src/plugin_mirror.js new file mode 100644 index 00000000000..885ff92b0da --- /dev/null +++ b/packages/examples/src/plugin_mirror.js @@ -0,0 +1,26 @@ +import { box } from './shared' + +export default (part) => { + let { Point, Path, points, paths, macro } = part.shorthand() + + points.a = new Point(5, 5) + points.b = new Point(45, 30) + points.c = new Point(5, 30) + points.d = new Point(45, 5) + points.mid = new Point(25, 15) + + paths.a = new Path().move(points.a).curve(points.b, points.c, points.d) + + macro('mirror', { + mirror: [points.b, points.d], + points: [points.mid], + paths: [paths.a] + }) + + macro('sprinkle', { + snippet: 'notch', + on: ['mid', 'mirroredMid'] + }) + + return box(part, 100, 40) +}