diff --git a/packages/examples/index.html b/packages/examples/index.html index c153dbdd8d9..98cda6cc9a2 100644 --- a/packages/examples/index.html +++ b/packages/examples/index.html @@ -3,7 +3,7 @@ Examples - + @@ -30,6 +30,13 @@ // Some default settings pattern.settings.sa = 10; pattern.settings.units = 'metric'; +pattern.settings.only = 'macroGrainline'; +console.log('need1', pattern.needs('pointShift')); +console.log('need2', pattern.needs('pointShiftTowards')); +pattern.on('preRender', function(next) { + this.style += 'svg { background: yellow;}'; + next(); +}); //pattern.sampleOption('chestEase'); //pattern.sampleMeasurement('chestCircumference'); diff --git a/packages/examples/src/index.js b/packages/examples/src/index.js index 92749b75e97..af1f21e73d9 100644 --- a/packages/examples/src/index.js +++ b/packages/examples/src/index.js @@ -37,6 +37,9 @@ import utilsBeamsCross from "./utils.beamscross"; import utilsBeamCrossesX from "./utils.beamcrossesx"; import utilsBeamCrossesY from "./utils.beamcrossesy"; +import settingsSa from "./settings.sa"; +import macroGrainline from "./macro.grainline"; + var pattern = new freesewing.Pattern({ version: version, ...config }).with( pluginBundle ); @@ -75,6 +78,8 @@ pattern.draft = function() { this.parts.utilsBeamCrossesX = this.draftUtilsBeamCrossesX(new pattern.Part()); this.parts.utilsbeamCrossesY = this.draftUtilsBeamCrossesY(new pattern.Part()); + this.parts.settingsSa = this.draftSettingsSa(new pattern.Part()); + this.parts.macroGrainline = this.draftMacroGrainline(new pattern.Part()); return pattern; }; @@ -111,6 +116,9 @@ pattern.draftUtilsBeamsCross = part => utilsBeamsCross.draft(part); pattern.draftUtilsBeamCrossesX = part => utilsBeamCrossesX.draft(part); pattern.draftUtilsBeamCrossesY = part => utilsBeamCrossesY.draft(part); +pattern.draftSettingsSa = part => settingsSa.draft(part); +pattern.draftMacroGrainline = part => macroGrainline.draft(part); + // Add custom snippet pattern.on('preRender', function(next) { this.defs += ` diff --git a/packages/examples/src/macro.grainline.js b/packages/examples/src/macro.grainline.js new file mode 100644 index 00000000000..360320a5a2f --- /dev/null +++ b/packages/examples/src/macro.grainline.js @@ -0,0 +1,19 @@ +import freesewing from "freesewing"; + +var macroGrainline = { + draft: function(part) { + // prettier-ignore + let {Point, points, macro} = part.shorthand(); + + points.grainlineFrom = new Point(10, 10); + points.grainlineTo = new Point(100, 10); + + macro('grainline', { + from: points.grainlineFrom, + to: points.grainlineTo + }); + return part; + } +}; + +export default macroGrainline; diff --git a/packages/examples/src/path.shiftfractionalong.js b/packages/examples/src/path.shiftfractionalong.js index 1375f3f7217..91625dd280e 100644 --- a/packages/examples/src/path.shiftfractionalong.js +++ b/packages/examples/src/path.shiftfractionalong.js @@ -18,7 +18,7 @@ var pathShiftFractionAlong = { .curve(points.BCp2, points.CCp1, points.C); - points.X1 = paths.example.shiftFractionAlong(0.25) + points.X1 = paths.example.shiftFractionAlong(0.2) .attr('data-text', 'Shifted 20% along this path') .attr('data-text-class', 'center'); points.X2 = paths.example.shiftFractionAlong(0.9) diff --git a/packages/examples/src/point.clone.js b/packages/examples/src/point.clone.js index fbdf96f4c73..ea6621eecdf 100644 --- a/packages/examples/src/point.clone.js +++ b/packages/examples/src/point.clone.js @@ -8,7 +8,7 @@ var pointClone = { box(part); - points.A= new Point(50, 25) + points.A= new Point(25, 25) .attr('data-text', 'Point A') .attr('data-text-class', 'text-xl') .attr('data-text-fill-opacity', '0.5'); diff --git a/packages/examples/src/settings.sa.js b/packages/examples/src/settings.sa.js new file mode 100644 index 00000000000..98bbe4fc59a --- /dev/null +++ b/packages/examples/src/settings.sa.js @@ -0,0 +1,30 @@ +import freesewing from "freesewing"; +import { box } from "./shared"; + +var pathOffset = { + draft: function(part) { + // prettier-ignore + let {Point, points, Path, paths, Snippet, snippets, macro} = part.shorthand(); + + points.A = new Point(45, 60); + points.B = new Point(10, 30); + points.BCp2 = new Point(40, 20); + points.C = new Point(90, 30); + points.CCp1 = new Point(50, -30); + + paths.example = new Path() + .move(points.A) + .line(points.B) + .curve(points.BCp2, points.CCp1, points.C) + .line(points.A) + .close() + .attr('class', 'fabric'); + + paths.offset = paths.example.offset(-10) + .attr('class', 'fabric sa'); + + return part; + } +}; + +export default pathOffset;