sparkles: New examples for freesewing v0.9.0
This commit is contained in:
parent
bb5d192b29
commit
bba03b46e5
8 changed files with 231 additions and 1 deletions
|
@ -45,7 +45,7 @@
|
|||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"freesewing": "^0.8.3",
|
||||
"freesewing": "^0.9.0",
|
||||
"@freesewing/plugin-bundle": "0.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
@ -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);
|
||||
|
|
34
packages/examples/src/path.crossesx.js
Normal file
34
packages/examples/src/path.crossesx.js
Normal 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;
|
33
packages/examples/src/path.crossesy.js
Normal file
33
packages/examples/src/path.crossesy.js
Normal 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;
|
33
packages/examples/src/path.divide.js
Normal file
33
packages/examples/src/path.divide.js
Normal 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;
|
41
packages/examples/src/path.intersects.js
Normal file
41
packages/examples/src/path.intersects.js
Normal 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;
|
38
packages/examples/src/utils.curvecrossescurve.js
Normal file
38
packages/examples/src/utils.curvecrossescurve.js
Normal 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;
|
33
packages/examples/src/utils.curvecrossesline.js
Normal file
33
packages/examples/src/utils.curvecrossesline.js
Normal 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;
|
Loading…
Add table
Add a link
Reference in a new issue