diff --git a/packages/examples/index.html b/packages/examples/index.html index fb273f568f9..ec1f26805f8 100644 --- a/packages/examples/index.html +++ b/packages/examples/index.html @@ -3,7 +3,7 @@ Examples - + @@ -30,7 +30,7 @@ // Some default settings pattern.settings.sa = 10; pattern.settings.units = 'metric'; -pattern.settings.only = 'utilsBeamCrossesY'; +pattern.settings.only = 'pathEdge'; //pattern.on('preRender', function(next) { // this.style += 'g { border: 1px solid red; background: red;}'; // next(); diff --git a/packages/examples/src/index.js b/packages/examples/src/index.js index 1cf39b40975..33791e62270 100644 --- a/packages/examples/src/index.js +++ b/packages/examples/src/index.js @@ -31,6 +31,7 @@ import pathJoin from "./path.join"; import pathReverse from "./path.reverse"; import pathShiftAlong from "./path.shiftalong"; import pathShiftFractionAlong from "./path.shiftfractionalong"; +import pathEdge from "./path.edge"; import utilsLinesCross from "./utils.linescross"; import utilsBeamsCross from "./utils.beamscross"; @@ -72,6 +73,7 @@ pattern.draft = function() { this.parts.pathReverse = this.draftPathReverse(new pattern.Part()); this.parts.pathShiftAlong = this.draftPathShiftAlong(new pattern.Part()); this.parts.pathShiftFractionAlong = this.draftPathShiftFractionAlong(new pattern.Part()); + this.parts.pathEdge = this.draftPathEdge(new pattern.Part()); this.parts.utilsLinesCross = this.draftUtilsLinesCross(new pattern.Part()); this.parts.utilsBeamsCross = this.draftUtilsBeamsCross(new pattern.Part()); @@ -110,6 +112,7 @@ pattern.draftPathJoin = part => pathJoin.draft(part); pattern.draftPathReverse = part => pathReverse.draft(part); pattern.draftPathShiftAlong = part => pathShiftAlong.draft(part); pattern.draftPathShiftFractionAlong = part => pathShiftFractionAlong.draft(part); +pattern.draftPathEdge = part => pathEdge.draft(part); pattern.draftUtilsLinesCross = part => utilsLinesCross.draft(part); pattern.draftUtilsBeamsCross = part => utilsBeamsCross.draft(part); diff --git a/packages/examples/src/path.edge.js b/packages/examples/src/path.edge.js new file mode 100644 index 00000000000..96b78c6ea0e --- /dev/null +++ b/packages/examples/src/path.edge.js @@ -0,0 +1,36 @@ +import freesewing from "freesewing"; + +var pathEdge = { + 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); + points.D = new Point(-60, 90); + points.E = new Point(90, 190); + + paths.example = new Path() + .move(points.A) + .line(points.B) + .curve(points.BCp2, points.CCp1, points.C) + .curve(points.E, points.D, points.A) + .close(); + + snippets.a = new Snippet('x', paths.example.edge('topLeft')); + snippets.b = new Snippet('x', paths.example.edge('topRight')); + snippets.c = new Snippet('x', paths.example.edge('bottomLeft')); + snippets.d = new Snippet('x', paths.example.edge('bottomRight')); + snippets.e = new Snippet('x', paths.example.edge('top')); + snippets.f = new Snippet('x', paths.example.edge('left')); + snippets.g = new Snippet('x', paths.example.edge('bottom')); + snippets.h = new Snippet('x', paths.example.edge('right')); + + return part; + } +}; + +export default pathEdge;