1
0
Fork 0

feat(plugintest): Added plugin-mirror

This commit is contained in:
Joost De Cock 2022-01-18 14:12:36 +01:00
parent 303176f513
commit 8d83eedd6b
3 changed files with 81 additions and 6 deletions

View file

@ -40,6 +40,7 @@ export default {
flip: [ 'flipAxis' ], flip: [ 'flipAxis' ],
gore: [ 'goreRadius', 'goreGoreNumber', 'goreExtraLength' ], gore: [ 'goreRadius', 'goreGoreNumber', 'goreExtraLength' ],
logo: [ 'logoScale', 'logoRotate' ], logo: [ 'logoScale', 'logoRotate' ],
mirror: [ 'mirrorLine', 'mirrorClone' ],
}, },
measurements: [], measurements: [],
parts: [ parts: [
@ -54,7 +55,7 @@ export default {
'i18n', 'i18n',
'logo', 'logo',
'measurements', 'measurements',
//'mirror', 'mirror',
//'notches', //'notches',
//'round', //'round',
//'scalebox', //'scalebox',
@ -67,7 +68,7 @@ export default {
], ],
options: { options: {
plugin: { plugin: {
dflt: 'measurements', dflt: 'mirror',
list: [ list: [
'all', 'all',
'banner', 'banner',
@ -125,6 +126,9 @@ export default {
// Logo options // Logo options
logoScale: { pct: 100, min: 10, max: 200 }, logoScale: { pct: 100, min: 10, max: 200 },
logoRotate: { deg: 0, min: -360, max: 360 }, logoRotate: { deg: 0, min: -360, max: 360 },
// Mirror options
mirrorLine: { dflt: 'a', list: ['a', 'b', 'none' ] },
mirrorClone: { bool: true },
} }
} }

View file

@ -13,7 +13,7 @@ import grainline from '@freesewing/plugin-grainline'
//import i18n from '@freesewing/plugin-i18n' //import i18n from '@freesewing/plugin-i18n'
import logo from '@freesewing/plugin-logo' import logo from '@freesewing/plugin-logo'
import measurements from '@freesewing/plugin-measurements' import measurements from '@freesewing/plugin-measurements'
//import mirror from '@freesewing/plugin-mirror' import mirror from '@freesewing/plugin-mirror'
//import notches from '@freesewing/plugin-notches' //import notches from '@freesewing/plugin-notches'
//import round from '@freesewing/plugin-round' //import round from '@freesewing/plugin-round'
//import scalebox from '@freesewing/plugin-scalebox' //import scalebox from '@freesewing/plugin-scalebox'
@ -35,7 +35,7 @@ import draftGrainline from './plugin-grainline'
import draftI18n from './plugin-i18n' import draftI18n from './plugin-i18n'
import draftLogo from './plugin-logo' import draftLogo from './plugin-logo'
import draftMeasurements from './plugin-measurements' import draftMeasurements from './plugin-measurements'
//import draftMirror from './plugin-mirror' import draftMirror from './plugin-mirror'
//import draftNotches from './plugin-notches' //import draftNotches from './plugin-notches'
//import draftRound from './plugin-round' //import draftRound from './plugin-round'
//import draftScalebox from './plugin-scalebox' //import draftScalebox from './plugin-scalebox'
@ -63,7 +63,7 @@ const plugins = [
// i18n, // i18n,
logo, logo,
measurements, measurements,
// mirror, mirror,
// notches, // notches,
// round, // round,
// scalebox, // scalebox,
@ -87,7 +87,7 @@ const methods = {
draftI18n, draftI18n,
draftLogo, draftLogo,
draftMeasurements, draftMeasurements,
// draftMirror, draftMirror,
// draftNotches, // draftNotches,
// draftRound, // draftRound,
// draftScalebox, // draftScalebox,

View file

@ -0,0 +1,71 @@
const draftDimension = part => {
const { points, Point, paths, Path, snippets, Snippet, options, macro } = part.shorthand()
if (['mirror', 'all'].indexOf(options.plugin) !== -1) {
points.mirrorA = new Point(0,0)
points.mirrorB = new Point(70,30)
points.mirrorC = new Point(0,50)
points.mirrorD = new Point(30,-30)
paths.mirrorA = new Path()
.move(points.mirrorA)
.line(points.mirrorB)
.attr("class", "dashed note")
.attr('data-text', 'Mirror A')
.attr('data-text-class', 'right')
paths.mirrorB = new Path()
.move(points.mirrorC)
.line(points.mirrorD)
.attr("class", "dashed note")
.attr('data-text', 'Mirror B')
.attr('data-text-class', 'right')
points.b1 = new Point(10,10).attr('data-text', 1)
points.h2 = new Point(20,10).attr('data-text', 2)
points.h3 = new Point(30,10).attr('data-text', 3)
points.v2 = new Point(10,20).attr('data-text', 2)
points.v3 = new Point(10,30).attr('data-text', 3)
points.a = new Point(10,0)
points.b = new Point(30,30)
points.c = new Point(50,50)
points.d = new Point(12,34)
points.e = new Point(54,34)
snippets.a = new Snippet('button', points.b)
paths.a = new Path()
.move(points.a)
.line(points.b)
paths.b = new Path()
.move(points.e)
.curve(points.a, points.d, points.c)
if (options.mirrorLine !== 'none') {
macro('mirror', {
mirror: options.mirrorLine === 'a'
? [points.mirrorA, points.mirrorB]
: [points.mirrorC, points.mirrorD],
points: [
points.b1,
points.h2,
points.h3,
points.v2,
points.v3,
points.a,
points.b,
points.c,
points.d,
points.e,
],
paths: [paths.a, paths.b],
clone: options.mirrorClone,
})
}
}
return part
}
export default draftDimension