1
0
Fork 0

sparkles: New examples for freesewing v0.9.0

This commit is contained in:
Joost De Cock 2018-08-21 16:33:47 +02:00
parent bb5d192b29
commit bba03b46e5
8 changed files with 231 additions and 1 deletions

View file

@ -45,7 +45,7 @@
]
},
"dependencies": {
"freesewing": "^0.8.3",
"freesewing": "^0.9.0",
"@freesewing/plugin-bundle": "0.0.1"
},
"devDependencies": {

View file

@ -32,11 +32,17 @@ import pathReverse from "./path.reverse";
import pathShiftAlong from "./path.shiftalong";
import pathShiftFractionAlong from "./path.shiftfractionalong";
import pathEdge from "./path.edge";
import pathCrossesX from "./path.crossesx";
import pathCrossesY from "./path.crossesy";
import pathIntersects from "./path.intersects";
import pathDivide from "./path.divide";
import utilsLinesCross from "./utils.linescross";
import utilsBeamsCross from "./utils.beamscross";
import utilsBeamCrossesX from "./utils.beamcrossesx";
import utilsBeamCrossesY from "./utils.beamcrossesy";
import utilsCurveCrossesLine from "./utils.curvecrossesline";
import utilsCurveCrossesCurve from "./utils.curvecrossescurve";
import settingsSa from "./settings.sa";
import macroGrainline from "./macro.grainline";
@ -74,11 +80,17 @@ pattern.draft = function() {
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.pathCrossesX = this.draftPathCrossesX(new pattern.Part());
this.parts.pathCrossesY = this.draftPathCrossesY(new pattern.Part());
this.parts.pathIntersects = this.draftPathIntersects(new pattern.Part());
this.parts.pathDivide = this.draftPathDivide(new pattern.Part());
this.parts.utilsLinesCross = this.draftUtilsLinesCross(new pattern.Part());
this.parts.utilsBeamsCross = this.draftUtilsBeamsCross(new pattern.Part());
this.parts.utilsBeamCrossesX = this.draftUtilsBeamCrossesX(new pattern.Part());
this.parts.utilsBeamCrossesY = this.draftUtilsBeamCrossesY(new pattern.Part());
this.parts.utilsCurveCrossesLine = this.draftUtilsCurveCrossesLine(new pattern.Part());
this.parts.utilsCurveCrossesCurve = this.draftUtilsCurveCrossesCurve(new pattern.Part());
this.parts.settingsSa = this.draftSettingsSa(new pattern.Part());
this.parts.macroGrainline = this.draftMacroGrainline(new pattern.Part());
@ -113,11 +125,17 @@ 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.draftPathCrossesX = part => pathCrossesX.draft(part);
pattern.draftPathCrossesY = part => pathCrossesY.draft(part);
pattern.draftPathIntersects = part => pathIntersects.draft(part);
pattern.draftPathDivide = part => pathDivide.draft(part);
pattern.draftUtilsLinesCross = part => utilsLinesCross.draft(part);
pattern.draftUtilsBeamsCross = part => utilsBeamsCross.draft(part);
pattern.draftUtilsBeamCrossesX = part => utilsBeamCrossesX.draft(part);
pattern.draftUtilsBeamCrossesY = part => utilsBeamCrossesY.draft(part);
pattern.draftUtilsCurveCrossesLine = part => utilsCurveCrossesLine.draft(part);
pattern.draftUtilsCurveCrossesCurve = part => utilsCurveCrossesCurve.draft(part);
pattern.draftSettingsSa = part => settingsSa.draft(part);
pattern.draftMacroGrainline = part => macroGrainline.draft(part);

View file

@ -0,0 +1,34 @@
import freesewing from "freesewing";
var pathCrossesX = {
draft: function(part) {
// prettier-ignore
let {Point, points, Path, paths, Snippet, snippets, macro} = part.shorthand();
points.A = new Point(95, 50);
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(50, 130);
points.DCp1 = new Point(150, 30);
points.top = new Point(60,-10);
points.bot = new Point(60,140);
paths.line = new Path()
.move(points.top)
.line(points.bot)
.attr('class', 'lining dashed');
paths.example = new Path()
.move(points.A)
.line(points.B)
.curve(points.BCp2, points.CCp1, points.C)
.curve(points.DCp1, points.DCp1, points.D);
for (let p of paths.example.crossesX(60)) snippets[part.getUid()] = new Snippet('x', p);
return part;
}
};
export default pathCrossesX;

View file

@ -0,0 +1,33 @@
import freesewing from "freesewing";
var pathCrossesY = {
draft: function(part) {
// prettier-ignore
let {Point, points, Path, paths, Snippet, snippets, macro} = part.shorthand();
points.A = new Point(55, 40);
points.B = new Point(10, 70);
points.BCp2 = new Point(40, 20);
points.C = new Point(90, 60);
points.CCp1 = new Point(50, -30);
points.D = new Point(50, 80);
points.DCp1 = new Point(140, 50);
points.top = new Point(10, 58);
points.bot = new Point(130, 58);
paths.line = new Path()
.move(points.top)
.line(points.bot)
.attr('class', 'lining dashed');
paths.example = new Path()
.move(points.A)
.line(points.B)
.curve(points.BCp2, points.CCp1, points.C)
.curve(points.DCp1, points.DCp1, points.D);
for (let p of paths.example.crossesY(58)) snippets[part.getUid()] = new Snippet('x', p);
return part;
}
};
export default pathCrossesY;

View file

@ -0,0 +1,33 @@
import freesewing from "freesewing";
var pathDivide = {
draft: function(part) {
// prettier-ignore
let {Point, points, Path, paths, Snippet, snippets, macro} = part.shorthand();
points.A = new Point(55, 40);
points.B = new Point(10, 70);
points.BCp2 = new Point(40, 20);
points.C = new Point(90, 60);
points.CCp1 = new Point(50, -30);
points.D = new Point(50, 80);
points.DCp1 = new Point(140, 50);
paths.example = new Path()
.move(points.A)
.line(points.B)
.curve(points.BCp2, points.CCp1, points.C)
.curve(points.DCp1, points.DCp1, points.D)
.close();
let i = 1;
for(let p of paths.example.divide()) {
paths[i] = p.attr('style', `stroke-width: 4; stroke-opacity: 0.5; stroke: hsl(${i*70}, 100%, 50%)`);
i++;
}
return part;
}
};
export default pathDivide;

View file

@ -0,0 +1,41 @@
import freesewing from "freesewing";
var pathIntersects = {
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(50, 130);
points.DCp1 = new Point(150, 30);
points._A = new Point(55, 40);
points._B = new Point(0, 55);
points._BCp2 = new Point(40, -20);
points._C = new Point(90, 40);
points._CCp1 = new Point(50, -30);
points._D = new Point(40, 120);
points._DCp1 = new Point(180, 40);
paths.example1 = new Path()
.move(points.A)
.line(points.B)
.curve(points.BCp2, points.CCp1, points.C)
.curve(points.DCp1, points.DCp1, points.D);
paths.example2 = new Path()
.move(points._A)
.line(points._B)
.curve(points._BCp2, points._CCp1, points._C)
.curve(points._DCp1, points._DCp1, points._D);
for (let p of paths.example1.intersects(paths.example2)) snippets[part.getUid()] = new Snippet('x', p);
return part;
}
};
export default pathIntersects;

View file

@ -0,0 +1,38 @@
import freesewing from "freesewing";
var utilsCurveCrossesCurve = {
draft: function(part) {
// prettier-ignore
let {debug, Point, points, Path, paths, Snippet, snippets, utils} = part.shorthand();
points.A = new Point(10, 10);
points.Acp = new Point(310, 40);
points.B = new Point(110, 70);
points.Bcp = new Point(-210, 40);
points.C = new Point(20, -5);
points.Ccp = new Point(60, 300);
points.D = new Point (100, 85);
points.Dcp = new Point (70, -220);
paths.curveA = new Path()
.move(points.A)
.curve(points.Acp, points.Bcp, points.B);
paths.curveB = new Path()
.move(points.C)
.curve(points.Ccp, points.Dcp, points.D);
for (let p of utils.curveCrossesCurve(
points.A,
points.Acp,
points.Bcp,
points.B,
points.C,
points.Ccp,
points.Dcp,
points.D)) snippets[part.getUid()] = new Snippet('x', p);
return part;
}
};
export default utilsCurveCrossesCurve;

View file

@ -0,0 +1,33 @@
import freesewing from "freesewing";
var utilsCurveCrossesLine = {
draft: function(part) {
// prettier-ignore
let {debug, Point, points, Path, paths, Snippet, snippets, utils} = part.shorthand();
points.A = new Point(10, 10);
points.Acp = new Point(310, 40);
points.B = new Point(110, 70);
points.Bcp = new Point(-210, 40);
points.E = new Point(20, -5);
points.D = new Point (100, 85);
paths.curve = new Path()
.move(points.A)
.curve(points.Acp, points.Bcp, points.B);
paths.line = new Path()
.move(points.E)
.line(points.D);
for (let p of freesewing.utils.curveCrossesLine(
points.A,
points.Acp,
points.Bcp,
points.B,
points.E,
points.D)) snippets[part.getUid()] = new Snippet('x', p);
return part;
}
};
export default utilsCurveCrossesLine;