🚧 First beta for 2.1
This commit is contained in:
parent
155368e3c7
commit
b297dc1b32
12 changed files with 193 additions and 92 deletions
|
@ -24,6 +24,7 @@ Unreleased:
|
||||||
Added a box pleat option to Simon"
|
Added a box pleat option to Simon"
|
||||||
- Added the `backDarts` option to control the inclusion of back darts
|
- Added the `backDarts` option to control the inclusion of back darts
|
||||||
- Added the `backDartsShaping` option to control the amount of shaping by the back darts
|
- Added the `backDartsShaping` option to control the amount of shaping by the back darts
|
||||||
|
- Changed the defaults to slightly reduce the ease and adapt the sleevecap
|
||||||
|
|
||||||
Deprecated:
|
Deprecated:
|
||||||
patterns:
|
patterns:
|
||||||
|
@ -33,10 +34,12 @@ Unreleased:
|
||||||
Fixed:
|
Fixed:
|
||||||
components:
|
components:
|
||||||
- Fixed display of nested option in SampleConfigurator
|
- Fixed display of nested option in SampleConfigurator
|
||||||
|
- Fixed conflicting key values in React components
|
||||||
simon:
|
simon:
|
||||||
- Fixed an issue where the store wasn't properly initialized causing hips and waist ease
|
- Fixed an issue where the store wasn't properly initialized causing hips and waist ease
|
||||||
to be set incorrectly
|
to be set incorrectly
|
||||||
- Added a missing paperless dimension for the waist
|
- Added a missing paperless dimension for the waist
|
||||||
|
- Fixed an issue where the split yoke option was not taken into account correctly
|
||||||
Security:
|
Security:
|
||||||
|
|
||||||
2.0.4:
|
2.0.4:
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
||||||
const DesignPath = props => {
|
const DesignPath = props => {
|
||||||
console.log('design path props', props)
|
|
||||||
let output = []
|
let output = []
|
||||||
let i = 0
|
let i = 0
|
||||||
let from = null
|
let from = null
|
||||||
|
|
|
@ -3,18 +3,17 @@ import PropTypes from 'prop-types'
|
||||||
import patterns from './patterns'
|
import patterns from './patterns'
|
||||||
|
|
||||||
const LineDrawing = props => {
|
const LineDrawing = props => {
|
||||||
return (
|
const attr = {
|
||||||
<svg
|
style: props.style,
|
||||||
style={props.style}
|
className: 'fs linedrawing ' + props.className,
|
||||||
className={'fs linedrawing ' + props.className}
|
xmlns: 'http://www.w3.org/2000/svg',
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
viewBox: '0 0 270 270'
|
||||||
width={props.size}
|
}
|
||||||
height={props.size}
|
if (props.size) {
|
||||||
viewBox="0 0 270 270"
|
attr.width = props.size
|
||||||
>
|
attr.height = props.size
|
||||||
{patterns[props.pattern].map(el => el)}
|
}
|
||||||
</svg>
|
return <svg {...attr}>{patterns[props.pattern].map(el => el)}</svg>
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LineDrawing.propTypes = {
|
LineDrawing.propTypes = {
|
||||||
|
@ -24,10 +23,9 @@ LineDrawing.propTypes = {
|
||||||
}
|
}
|
||||||
|
|
||||||
LineDrawing.defaultProps = {
|
LineDrawing.defaultProps = {
|
||||||
size: 64,
|
size: false,
|
||||||
className: '',
|
className: '',
|
||||||
pattern: 'aaron',
|
pattern: 'aaron',
|
||||||
color: false,
|
|
||||||
style: {}
|
style: {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -290,6 +290,33 @@ const svg = {
|
||||||
d="M 3.1756236,193.95004 H 16.903804 Z m 112.3124864,0 h 13.73619 z m 19.36418,0 h 13.72823 z m 112.31274,0 h 13.73619 z M 158.17531,85.431303 h 79.59289 m -15.05256,24.574867 v 59.78632 m -49.51627,-59.78632 v 59.78632 m -106.261495,8.66723 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37486 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37486 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.2276 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37487 0.749713,0.74971 m -0.749713,0 0.749713,-0.74971 m 0.549941,0.37487 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.20888 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37512 0.749713,0.74997 m -0.749713,0 0.749713,-0.74997 m 0.549941,0.37512 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.20912 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37487 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37487 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.20888 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37486 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37486 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.22761 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37486 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37486 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.209127 a 0.7398389,0.7398389 0 0 1 -0.739839,0.739839 0.7398389,0.7398389 0 0 1 -0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,0.739839 z m -1.114694,-0.374858 0.749713,0.74997 m -0.749713,0 0.749713,-0.74997 m 0.549941,0.374858 a 0.92479867,0.92479867 0 0 1 -0.924799,0.924798 0.92479867,0.92479867 0 0 1 -0.924798,-0.924798 0.92479867,0.92479867 0 0 1 0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924799,0.924799 z m -0.18496,-15.389672 a 0.7398389,0.7398389 0 0 1 -0.739839,0.739839 0.7398389,0.7398389 0 0 1 -0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,-0.739838 0.7398389,0.7398389 0 0 1 0.739839,0.739838 z m -1.114694,-0.375112 0.749713,0.749971 m -0.749713,0 0.749713,-0.749971 m 0.549941,0.375112 a 0.92479867,0.92479867 0 0 1 -0.924799,0.924799 0.92479867,0.92479867 0 0 1 -0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924798,-0.924798 0.92479867,0.92479867 0 0 1 0.924799,0.924798 z m -0.18496,-15.389976 a 0.7398389,0.7398389 0 0 1 -0.739839,0.739839 0.7398389,0.7398389 0 0 1 -0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,0.739839 z m -1.114694,-0.374907 0.749713,0.749816 m -0.749713,0 0.749713,-0.749816 m 0.549941,0.374907 a 0.92479867,0.92479867 0 0 1 -0.924799,0.924799 0.92479867,0.92479867 0 0 1 -0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924799,0.924799 z M 65.448324,61.4141 h 1.687112"
|
d="M 3.1756236,193.95004 H 16.903804 Z m 112.3124864,0 h 13.73619 z m 19.36418,0 h 13.72823 z m 112.31274,0 h 13.73619 z M 158.17531,85.431303 h 79.59289 m -15.05256,24.574867 v 59.78632 m -49.51627,-59.78632 v 59.78632 m -106.261495,8.66723 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37486 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37486 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.2276 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37487 0.749713,0.74971 m -0.749713,0 0.749713,-0.74971 m 0.549941,0.37487 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.20888 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37512 0.749713,0.74997 m -0.749713,0 0.749713,-0.74997 m 0.549941,0.37512 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.20912 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37487 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37487 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.20888 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37486 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37486 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.22761 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37486 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37486 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.209127 a 0.7398389,0.7398389 0 0 1 -0.739839,0.739839 0.7398389,0.7398389 0 0 1 -0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,0.739839 z m -1.114694,-0.374858 0.749713,0.74997 m -0.749713,0 0.749713,-0.74997 m 0.549941,0.374858 a 0.92479867,0.92479867 0 0 1 -0.924799,0.924798 0.92479867,0.92479867 0 0 1 -0.924798,-0.924798 0.92479867,0.92479867 0 0 1 0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924799,0.924799 z m -0.18496,-15.389672 a 0.7398389,0.7398389 0 0 1 -0.739839,0.739839 0.7398389,0.7398389 0 0 1 -0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,-0.739838 0.7398389,0.7398389 0 0 1 0.739839,0.739838 z m -1.114694,-0.375112 0.749713,0.749971 m -0.749713,0 0.749713,-0.749971 m 0.549941,0.375112 a 0.92479867,0.92479867 0 0 1 -0.924799,0.924799 0.92479867,0.92479867 0 0 1 -0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924798,-0.924798 0.92479867,0.92479867 0 0 1 0.924799,0.924798 z m -0.18496,-15.389976 a 0.7398389,0.7398389 0 0 1 -0.739839,0.739839 0.7398389,0.7398389 0 0 1 -0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,0.739839 z m -1.114694,-0.374907 0.749713,0.749816 m -0.749713,0 0.749713,-0.749816 m 0.549941,0.374907 a 0.92479867,0.92479867 0 0 1 -0.924799,0.924799 0.92479867,0.92479867 0 0 1 -0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924799,0.924799 z M 65.448324,61.4141 h 1.687112"
|
||||||
/>
|
/>
|
||||||
],
|
],
|
||||||
|
simone: [
|
||||||
|
<rect className="inside" y="51.853992" x="54.388508" height="14.533224" width="23.769028" />,
|
||||||
|
<path
|
||||||
|
className="primary"
|
||||||
|
d="m 184.56241,54.646523 -27.17558,4.140113 c 0.18743,1.818287 -0.19256,12.804107 -0.19256,20.22717 0,7.385706 -0.55587,13.723097 -2.99269,17.659607 -1.31226,1.949512 3.37191,6.539197 1.6848,6.539197 0,5.69089 2.06222,21.79998 2.06222,44.56226 0,16.17764 -3.00322,29.31816 -3.37807,33.32964 -0.74972,6.636 0,19.6253 0,19.6253 h 8.44069 33.17714 10.87187 25.68309 8.80965 c 0,0 0.75022,-12.93307 0,-19.56907 -0.56203,-4.01148 -3.56217,-20.13725 -3.56217,-36.31438 0,-22.76253 1.87736,-34.94512 1.87736,-40.68685 1.312,0.31272 2.80938,-5.536585 1.68481,-7.486097 -2.43709,-3.93651 -3.18526,-10.273901 -3.18526,-17.659607 0,-7.423063 -0.37486,-18.408883 0,-20.22717 l -27.36814,-4.140113 c -10.09186,-3.699246 -14.3832,-3.196604 -26.43716,0 z M 66.198037,63.363612 h 3.749082 c 0.562285,0 1.312255,-0.05625 1.874541,-0.168711 0.562285,0.112457 1.124827,0.168711 1.87454,0.168711 h 1.687113 V 200.72904 H 31.331734 c -1.311999,0 -8.435151,0 -8.435151,0 0,0 -0.749816,-12.99033 0,-19.62632 0.374882,-4.01148 3.374045,-17.15176 3.374045,-33.32914 0,-22.76228 -2.061969,-38.86648 -2.061969,-44.55738 1.687061,0 -2.999265,-4.592762 -1.687087,-6.542274 2.436877,-3.93651 2.99924,-10.27236 2.99924,-17.658066 0,-7.423063 0.374908,-18.407805 0.187454,-20.226117 l 27.180558,-4.142707 c 0,3.692828 2.624511,8.716576 13.309213,8.716576 z"
|
||||||
|
/>,
|
||||||
|
<path
|
||||||
|
className="primary"
|
||||||
|
d="m 211.76803,48.873751 c -1.21135,-2.371258 -28.04853,-2.056094 -27.62079,0 v 5.826613 c 10.80666,1.151375 19.67408,-0.05382 27.62079,0 z M 64.510925,62.182659 V 200.72904 h 36.553415 c 1.31226,0 8.81016,0 8.81016,0 0,0 0.74997,-12.9341 0,-19.57009 -0.56228,-4.01149 -3.56139,-20.13238 -3.56139,-36.30951 0,-22.76253 1.87454,-34.95051 1.87454,-40.69224 1.312,0.31298 2.81168,-5.533762 1.68711,-7.483274 -2.43708,-3.93651 -3.1868,-10.27236 -3.1868,-17.658066 0,-7.423063 -0.37485,-18.407805 0,-20.226117 L 79.319822,54.647036 c 0,3.599113 -4.686223,6.560867 -14.621212,6.823293 -0.375113,0 0.187429,0.71233 -0.187685,0.71233 z"
|
||||||
|
/>,
|
||||||
|
<path
|
||||||
|
className="primary"
|
||||||
|
d="m 78.757537,49.885739 c 0,-4.480129 -25.681028,-3.20545 -25.681028,0 v 5.417399 c 11.059559,-4.798808 18.557722,-2.755582 25.681028,0 z"
|
||||||
|
/>,
|
||||||
|
<path
|
||||||
|
className="primary"
|
||||||
|
d="m 52.326539,55.659278 1.124827,-6.110962 c 0,3.917767 2.436826,7.666823 11.996958,11.865784 l -4.498795,7.3294 c -4.499052,-4.498872 -8.060705,-9.503852 -8.62299,-13.084222 z m 27.36814,0 -0.937142,-5.661082 c 0,2.305677 -2.249397,7.216943 -11.622101,11.415904 l 3.93651,7.3294 c 4.498795,-4.498872 8.060448,-9.503852 8.622733,-13.084222 z"
|
||||||
|
/>,
|
||||||
|
<path
|
||||||
|
className="primary"
|
||||||
|
d="m 157.61326,58.539359 c -3.60219,0 -8.87496,7.204363 -11.74626,17.41577 -7.98748,28.566911 -13.88672,112.983381 -11.01541,117.838541 0,3.75884 0.10441,8.71851 0.15662,12.16411 h 13.62567 c 0,-3.49798 0,-8.24865 0,-12.00749 2.14043,-5.11602 2.7669,-27.56455 5.95144,-61.44596 0.36546,-9.03148 0.62647,-28.13891 2.50589,-35.541559 1.83593,-7.934383 1.06978,-31.996235 0.52205,-38.423412 z m 80.52312,0 c 3.60222,0 8.87486,7.204363 11.74611,17.41577 7.98753,28.566911 13.83453,110.425371 11.0154,117.838541 0,3.75884 -0.10424,8.71851 -0.15662,12.16411 h -13.62553 c 0,-3.49798 0,-8.24865 0,-12.00749 -1.87942,-9.55345 -2.03604,-27.35556 -5.2729,-61.44596 -0.36536,-9.03148 -1.30507,-28.13891 -3.18448,-35.541559 -1.85529,-8.955739 -0.40978,-32.373582 -0.52198,-38.423412 z m -212.199785,0 c -3.602195,0 -8.874966,7.204363 -11.746267,17.41577 C 6.202849,104.52204 0.30361466,188.93851 3.1749253,193.79367 c 0,3.75884 0.1044104,8.71851 0.1566157,12.16411 h 13.625667 c 0,-3.49798 0,-8.24865 0,-12.00749 2.140432,-5.11602 2.766905,-27.56455 5.951442,-61.44596 0.36546,-9.03148 0.626473,-28.13891 2.505892,-35.541559 5.01163,-8.640192 2.036012,-32.210956 0.522053,-38.423412 z m 80.523115,0 c 3.60222,0 8.87486,7.204363 11.74611,17.41577 7.98753,28.566911 13.83453,110.425371 11.0154,117.838541 0,3.75884 -0.10424,8.71851 -0.15662,12.16411 h -13.62553 c 0,-3.49798 0,-8.24865 0,-12.00749 -1.87942,-9.55345 -2.03604,-27.35556 -5.2729,-61.44596 -0.36536,-9.03148 -1.30506,-28.13891 -3.18448,-35.541559 -5.01179,-8.640192 -2.03604,-32.210956 -0.52198,-38.423412 z"
|
||||||
|
/>,
|
||||||
|
<path
|
||||||
|
className="secondary"
|
||||||
|
d="M 3.1756236,193.95004 H 16.903804 Z m 112.3124864,0 h 13.73619 z m 19.36418,0 h 13.72823 z m 112.31274,0 h 13.73619 z M 158.17531,85.431303 h 79.59289 m -15.05256,24.574867 v 59.78632 m -49.51627,-59.78632 v 59.78632 m -106.261495,8.66723 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37486 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37486 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.2276 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37487 0.749713,0.74971 m -0.749713,0 0.749713,-0.74971 m 0.549941,0.37487 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.20888 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37512 0.749713,0.74997 m -0.749713,0 0.749713,-0.74997 m 0.549941,0.37512 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.20912 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37487 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37487 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.20888 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37486 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37486 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.22761 a 0.7398389,0.7398389 0 0 1 -0.739839,0.73984 0.7398389,0.7398389 0 0 1 -0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,-0.73984 0.7398389,0.7398389 0 0 1 0.739839,0.73984 z m -1.114694,-0.37486 0.749713,0.74972 m -0.749713,0 0.749713,-0.74972 m 0.549941,0.37486 a 0.92479867,0.92479867 0 0 1 -0.924799,0.9248 0.92479867,0.92479867 0 0 1 -0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924798,-0.9248 0.92479867,0.92479867 0 0 1 0.924799,0.9248 z m -0.18496,-14.209127 a 0.7398389,0.7398389 0 0 1 -0.739839,0.739839 0.7398389,0.7398389 0 0 1 -0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,0.739839 z m -1.114694,-0.374858 0.749713,0.74997 m -0.749713,0 0.749713,-0.74997 m 0.549941,0.374858 a 0.92479867,0.92479867 0 0 1 -0.924799,0.924798 0.92479867,0.92479867 0 0 1 -0.924798,-0.924798 0.92479867,0.92479867 0 0 1 0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924799,0.924799 z m -0.18496,-15.389672 a 0.7398389,0.7398389 0 0 1 -0.739839,0.739839 0.7398389,0.7398389 0 0 1 -0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,-0.739838 0.7398389,0.7398389 0 0 1 0.739839,0.739838 z m -1.114694,-0.375112 0.749713,0.749971 m -0.749713,0 0.749713,-0.749971 m 0.549941,0.375112 a 0.92479867,0.92479867 0 0 1 -0.924799,0.924799 0.92479867,0.92479867 0 0 1 -0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924798,-0.924798 0.92479867,0.92479867 0 0 1 0.924799,0.924798 z m -0.18496,-15.389976 a 0.7398389,0.7398389 0 0 1 -0.739839,0.739839 0.7398389,0.7398389 0 0 1 -0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,-0.739839 0.7398389,0.7398389 0 0 1 0.739839,0.739839 z m -1.114694,-0.374907 0.749713,0.749816 m -0.749713,0 0.749713,-0.749816 m 0.549941,0.374907 a 0.92479867,0.92479867 0 0 1 -0.924799,0.924799 0.92479867,0.92479867 0 0 1 -0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924798,-0.924799 0.92479867,0.92479867 0 0 1 0.924799,0.924799 z M 65.448324,61.4141 h 1.687112 M 25,120 l 20,-5 M 88,115 l 20,5"
|
||||||
|
/>
|
||||||
|
],
|
||||||
sven: [
|
sven: [
|
||||||
<path
|
<path
|
||||||
className="inside"
|
className="inside"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
pocket:
|
pocket:
|
||||||
title: Pocket
|
title: Pocket
|
||||||
description: Whether to include a pocket or not
|
description: Whether to include a front pocket or not
|
||||||
|
|
||||||
pocketHeight:
|
pocketHeight:
|
||||||
title: Pocket height
|
title: Pocket height
|
||||||
|
|
|
@ -8,4 +8,12 @@ bustDartLength:
|
||||||
|
|
||||||
contour:
|
contour:
|
||||||
title: Contour
|
title: Contour
|
||||||
description: Controls how fast the extra room for your bust is reduced below the bust line.
|
description: Controls how sharply the extra room for breasts is removed again below the chest
|
||||||
|
|
||||||
|
frontDarts:
|
||||||
|
title: Front darts
|
||||||
|
description: Whether to include front darts or not
|
||||||
|
|
||||||
|
frontDartLength:
|
||||||
|
title: Front dart length
|
||||||
|
description: Controls how close the front dart approaches the bust point
|
||||||
|
|
|
@ -46,6 +46,9 @@ shin:
|
||||||
simon:
|
simon:
|
||||||
description: Simon is a highly adaptable shirt pattern for men.
|
description: Simon is a highly adaptable shirt pattern for men.
|
||||||
title: Simon shirt
|
title: Simon shirt
|
||||||
|
simone:
|
||||||
|
description: Simone is simon, adapted for breasts
|
||||||
|
title: Simone shirt
|
||||||
sven:
|
sven:
|
||||||
description: Sven is a straightforward sweater.
|
description: Sven is a straightforward sweater.
|
||||||
title: Sven sweatshirt
|
title: Sven sweatshirt
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { version } from '../package.json'
|
||||||
export default {
|
export default {
|
||||||
name: 'penelope',
|
name: 'penelope',
|
||||||
version,
|
version,
|
||||||
|
beta: true,
|
||||||
design: 'Wouter Van Wageningen',
|
design: 'Wouter Van Wageningen',
|
||||||
code: 'Wouter Van Wageningen',
|
code: 'Wouter Van Wageningen',
|
||||||
department: 'womenswear',
|
department: 'womenswear',
|
||||||
|
|
|
@ -24,7 +24,7 @@ export default {
|
||||||
}
|
}
|
||||||
let points = this.points
|
let points = this.points
|
||||||
so = {
|
so = {
|
||||||
offset: 50,
|
offset: 15,
|
||||||
margin: 5,
|
margin: 5,
|
||||||
prefix: '',
|
prefix: '',
|
||||||
...so
|
...so
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { version } from '../package.json'
|
||||||
export default {
|
export default {
|
||||||
name: 'simone',
|
name: 'simone',
|
||||||
version,
|
version,
|
||||||
|
beta: true,
|
||||||
design: 'Joost De Cock',
|
design: 'Joost De Cock',
|
||||||
code: 'Joost De Cock',
|
code: 'Joost De Cock',
|
||||||
department: 'womenswear',
|
department: 'womenswear',
|
||||||
|
@ -29,6 +30,7 @@ export default {
|
||||||
'boxPleat',
|
'boxPleat',
|
||||||
'backDarts',
|
'backDarts',
|
||||||
'frontDarts',
|
'frontDarts',
|
||||||
|
'contour',
|
||||||
{
|
{
|
||||||
closure: [
|
closure: [
|
||||||
'extraTopButton',
|
'extraTopButton',
|
||||||
|
@ -190,14 +192,14 @@ export default {
|
||||||
// Counters
|
// Counters
|
||||||
buttons: { count: 7, min: 4, max: 12 },
|
buttons: { count: 7, min: 4, max: 12 },
|
||||||
cuffButtonRows: { count: 1, min: 1, max: 2 },
|
cuffButtonRows: { count: 1, min: 1, max: 2 },
|
||||||
frontDarts: { bool: true },
|
frontDarts: { bool: false },
|
||||||
|
|
||||||
// Angles
|
// Angles
|
||||||
collarAngle: { deg: 85, min: 60, max: 130 },
|
collarAngle: { deg: 85, min: 60, max: 130 },
|
||||||
collarStandBend: { deg: 3, min: 0, max: 5 },
|
collarStandBend: { deg: 3, min: 0, max: 5 },
|
||||||
collarStandCurve: { deg: 2, min: 0, max: 5 },
|
collarStandCurve: { deg: 2, min: 0, max: 5 },
|
||||||
collarFlare: { deg: 4, min: 0, max: 10 },
|
collarFlare: { deg: 4, min: 0, max: 10 },
|
||||||
bustDartAngle: { deg: 20, min: 10, max: 30 },
|
bustDartAngle: { deg: 10, min: 0, max: 20 },
|
||||||
|
|
||||||
// Millimeter
|
// Millimeter
|
||||||
buttonPlacketWidth: { mm: 20, min: 10, max: 30 },
|
buttonPlacketWidth: { mm: 20, min: 10, max: 30 },
|
||||||
|
@ -228,14 +230,14 @@ export default {
|
||||||
lengthBonus: { pct: 25, min: -4, max: 60 },
|
lengthBonus: { pct: 25, min: -4, max: 60 },
|
||||||
shoulderEase: { pct: 2, min: 0, max: 15 },
|
shoulderEase: { pct: 2, min: 0, max: 15 },
|
||||||
shoulderSlopeReduction: { pct: 0, min: 0, max: 8 },
|
shoulderSlopeReduction: { pct: 0, min: 0, max: 8 },
|
||||||
sleevecapEase: { pct: 1, min: 0, max: 10 },
|
sleevecapEase: { pct: 0, min: 0, max: 5 },
|
||||||
sleevecapTopFactorX: { pct: 50, min: 25, max: 75 },
|
sleevecapTopFactorX: { pct: 50, min: 25, max: 75 },
|
||||||
sleevecapTopFactorY: { pct: 100, min: 35, max: 165 },
|
sleevecapTopFactorY: { pct: 100, min: 35, max: 165 },
|
||||||
sleevecapBackFactorX: { pct: 60, min: 35, max: 65 },
|
sleevecapBackFactorX: { pct: 60, min: 35, max: 65 },
|
||||||
sleevecapBackFactorY: { pct: 33, min: 35, max: 65 },
|
sleevecapBackFactorY: { pct: 33, min: 35, max: 65 },
|
||||||
sleevecapFrontFactorX: { pct: 55, min: 35, max: 65 },
|
sleevecapFrontFactorX: { pct: 55, min: 35, max: 65 },
|
||||||
sleevecapFrontFactorY: { pct: 33, min: 35, max: 65 },
|
sleevecapFrontFactorY: { pct: 33, min: 35, max: 65 },
|
||||||
sleevecapQ1Offset: { pct: 3, min: 0, max: 7 },
|
sleevecapQ1Offset: { pct: 5, min: 3, max: 7 },
|
||||||
sleevecapQ2Offset: { pct: 5.5, min: 0, max: 7 },
|
sleevecapQ2Offset: { pct: 5.5, min: 0, max: 7 },
|
||||||
sleevecapQ3Offset: { pct: 4.5, min: 0, max: 7 },
|
sleevecapQ3Offset: { pct: 4.5, min: 0, max: 7 },
|
||||||
sleevecapQ4Offset: { pct: 1, min: 0, max: 7 },
|
sleevecapQ4Offset: { pct: 1, min: 0, max: 7 },
|
||||||
|
@ -254,6 +256,7 @@ export default {
|
||||||
yokeDart: { pct: 0, min: 0, max: 15 },
|
yokeDart: { pct: 0, min: 0, max: 15 },
|
||||||
backDartShaping: { pct: 25, min: 5, max: 75 },
|
backDartShaping: { pct: 25, min: 5, max: 75 },
|
||||||
bustDartLength: { pct: 80, min: 50, max: 90 },
|
bustDartLength: { pct: 80, min: 50, max: 90 },
|
||||||
frontDartLength: { pct: 45, min: 30, max: 60 }
|
frontDartLength: { pct: 45, min: 30, max: 60 },
|
||||||
|
contour: { pct: 50, min: 30, max: 75 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,10 +26,13 @@ export default part => {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* How much room to we need to create to fit the breasts?
|
* How much room to we need to create to fit the breasts?
|
||||||
* Note that measurements.bust is added by the bust plugin
|
* Note that:
|
||||||
* and that we divide by two since we add room on right and left side
|
* - measurements.bust is added by the bust plugin
|
||||||
|
* - we divide by two since we add room on right and left side
|
||||||
|
* - we also add the equivalent chest ease to the extra room we create
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
const FBA = (measurements.bust - measurements.highBust) / 2
|
const FBA = ((1 + options.chestEase) * (measurements.bust - measurements.highBust)) / 2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Locate bust point
|
* Locate bust point
|
||||||
|
@ -41,11 +44,10 @@ export default part => {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Figure out how much do we need to open a dart to create the required FBA room
|
* Figure out how much do we need to open a dart to create the required FBA room
|
||||||
* Obviously, we don't guess, we use maths :)
|
|
||||||
*/
|
*/
|
||||||
let one = points.armholeHollow.dist(points.bust) // We consider this to be 1
|
let one = points.armholePitch.dist(points.bust) // We consider this to be 1
|
||||||
let cosBust = (points.bust.dx(points.armholeHollow) / one) * -1 // Which means this gives us the cos of the bust point
|
let cosBust = (points.bust.dx(points.armholePitch) / one) * -1 // Which means this gives us the cos of the bust point
|
||||||
let cosRot = ((points.bust.dx(points.armholeHollow) - FBA) / one) * -1 // And this gives us the cos of the target
|
let cosRot = ((points.bust.dx(points.armholePitch) - FBA) / one) * -1 // And this gives us the cos of the target
|
||||||
const FBARot = utils.rad2deg(Math.acos(cosBust)) - utils.rad2deg(Math.acos(cosRot)) // Now just acos these and subtract
|
const FBARot = utils.rad2deg(Math.acos(cosBust)) - utils.rad2deg(Math.acos(cosRot)) // Now just acos these and subtract
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -59,11 +61,11 @@ export default part => {
|
||||||
* For this, we'll just rotate it FBARot in the other direction
|
* For this, we'll just rotate it FBARot in the other direction
|
||||||
*/
|
*/
|
||||||
points.realBustPoint = points.bust.clone()
|
points.realBustPoint = points.bust.clone()
|
||||||
points.bust = points.bust.rotate(FBARot * -1, points.armholeHollow)
|
points.bust = points.bust.rotate(FBARot * -1, points.armholePitch)
|
||||||
|
|
||||||
/*
|
//
|
||||||
* Cut to the side seam
|
// Cut to the side seam
|
||||||
*/
|
//
|
||||||
points._dartDirection = points.bust.shift(options.bustDartAngle * -1, measurements.bust / 4)
|
points._dartDirection = points.bust.shift(options.bustDartAngle * -1, measurements.bust / 4)
|
||||||
points.bustSideCut1 = utils.lineIntersectsCurve(
|
points.bustSideCut1 = utils.lineIntersectsCurve(
|
||||||
points.bust,
|
points.bust,
|
||||||
|
@ -74,15 +76,15 @@ export default part => {
|
||||||
points.armhole
|
points.armhole
|
||||||
)
|
)
|
||||||
|
|
||||||
/*
|
//
|
||||||
* Mark bust at waist and hem level
|
// Mark bust at waist and hem level
|
||||||
*/
|
//
|
||||||
points.bustWaist = new Point(points.bust.x, points.waist.y)
|
points.bustWaist = new Point(points.bust.x, points.waist.y)
|
||||||
points.bustHem = new Point(points.bust.x, points.hem.y)
|
points.bustHem = new Point(points.bust.x, points.hem.y)
|
||||||
|
|
||||||
/*
|
//
|
||||||
* Now rotate entire side around armhole hollow to create room for FBA
|
// Now rotate entire side around armhole hollow to create room for FBA
|
||||||
*/
|
//
|
||||||
const rot1 = [
|
const rot1 = [
|
||||||
'bust',
|
'bust',
|
||||||
'bustSideCut1',
|
'bustSideCut1',
|
||||||
|
@ -96,35 +98,42 @@ export default part => {
|
||||||
'waistCp2',
|
'waistCp2',
|
||||||
'armhole',
|
'armhole',
|
||||||
'armholeCp2',
|
'armholeCp2',
|
||||||
'armholeHollowCp1'
|
'armholeHollowCp1',
|
||||||
|
'armholeHollow',
|
||||||
|
'armholeHollowCp2',
|
||||||
|
'armholePitchCp1'
|
||||||
]
|
]
|
||||||
for (let p of rot1) points[`${p}_rot1`] = points[p].rotate(FBARot, points.armholeHollow)
|
for (let p of rot1) points[`${p}_rot1`] = points[p].rotate(FBARot, points.armholePitch)
|
||||||
|
//
|
||||||
|
// Help line to show the initial cut lines and first rotation
|
||||||
|
// Uncomment this if you'd like to understand what's going on
|
||||||
|
//
|
||||||
|
//
|
||||||
/*
|
/*
|
||||||
* Help line to show the initial cut lines and first rotation
|
|
||||||
* Uncomment this if you'd like to understand what's going on
|
|
||||||
paths.fbaCut1 = new Path()
|
paths.fbaCut1 = new Path()
|
||||||
.move(points.armholeHollow)
|
.move(points.armholePitch)
|
||||||
.line(points.bust)
|
.line(points.bust)
|
||||||
.line(points.bustSideCut1)
|
.line(points.bustSideCut1)
|
||||||
.move(points.bust)
|
.move(points.bust)
|
||||||
.line(points.bustHem)
|
.line(points.bustHem)
|
||||||
.attr('class', 'various dashed')
|
.attr('class', 'various dashed')
|
||||||
paths.rot1 = new Path()
|
paths.rot1 = new Path()
|
||||||
.move(points.armholeHollow)
|
.move(points.armholePitch)
|
||||||
.line(points.bust_rot1)
|
.line(points.bust_rot1)
|
||||||
.line(points.bustHem_rot1)
|
.line(points.bustHem_rot1)
|
||||||
.line(points.hem_rot1)
|
.line(points.hem_rot1)
|
||||||
.line(points.hips_rot1)
|
.line(points.hips_rot1)
|
||||||
.curve(points.hipsCp2_rot1, points.waistCp1_rot1, points.waist_rot1)
|
.curve(points.hipsCp2_rot1, points.waistCp1_rot1, points.waist_rot1)
|
||||||
.curve_(points.waistCp2_rot1, points.armhole_rot1)
|
.curve_(points.waistCp2_rot1, points.armhole_rot1)
|
||||||
.curve(points.armholeCp2_rot1, points.armholeHollowCp1_rot1, points.armholeHollow)
|
.curve(points.armholeCp2_rot1, points.armholeHollowCp1_rot1, points.armholeHollow_rot1)
|
||||||
|
.curve(points.armholeHollowCp2_rot1, points.armholePitchCp1_rot1, points.armholePitch)
|
||||||
.close()
|
.close()
|
||||||
.attr('class', 'lining lashed')
|
.attr('class', 'lining lashed')
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
//
|
||||||
* Split the side seam at the dart, and extrac control points from the Path object
|
// Split the side seam at the dart, and extrct control points from the Path object
|
||||||
*/
|
//
|
||||||
const toSplit = new Path()
|
const toSplit = new Path()
|
||||||
.move(points.waist_rot1)
|
.move(points.waist_rot1)
|
||||||
.curve_(points.waistCp2_rot1, points.armhole_rot1)
|
.curve_(points.waistCp2_rot1, points.armhole_rot1)
|
||||||
|
@ -136,10 +145,9 @@ export default part => {
|
||||||
points.belowDartCpTop_rot1 = paths.fbaBelowDart.ops[1].cp2
|
points.belowDartCpTop_rot1 = paths.fbaBelowDart.ops[1].cp2
|
||||||
points.belowDartCpBottom_rot1 = paths.fbaBelowDart.ops[1].cp1
|
points.belowDartCpBottom_rot1 = paths.fbaBelowDart.ops[1].cp1
|
||||||
points.aboveDartCpBottom_rot1 = paths.fbaAboveDart.ops[1].cp1 // (only one CP on this part
|
points.aboveDartCpBottom_rot1 = paths.fbaAboveDart.ops[1].cp1 // (only one CP on this part
|
||||||
|
//
|
||||||
/*
|
// Now rotate the bottom part around the (rotated) bust point so it's straight again
|
||||||
* Now rotate the bottom part around the (rotated) bust point so it's straight again
|
//
|
||||||
*/
|
|
||||||
const rot2 = [
|
const rot2 = [
|
||||||
'bust',
|
'bust',
|
||||||
'bustSideCut1',
|
'bustSideCut1',
|
||||||
|
@ -154,15 +162,20 @@ export default part => {
|
||||||
'armhole',
|
'armhole',
|
||||||
'armholeCp2',
|
'armholeCp2',
|
||||||
'armholeHollowCp1',
|
'armholeHollowCp1',
|
||||||
|
'armholeHollow',
|
||||||
|
'armholeHollowCp2',
|
||||||
|
'armholePitchCp1',
|
||||||
'belowDartCpTop',
|
'belowDartCpTop',
|
||||||
'belowDartCpBottom'
|
'belowDartCpBottom'
|
||||||
]
|
]
|
||||||
for (let p of rot2)
|
for (let p of rot2)
|
||||||
points[`${p}_rot2`] = points[`${p}_rot1`].rotate(FBARot * -1, points.bust_rot1)
|
points[`${p}_rot2`] = points[`${p}_rot1`].rotate(FBARot * -1, points.bust_rot1)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Help line to show the second rotation
|
||||||
|
// Uncomment this if you'd like to understand what's going on
|
||||||
|
//
|
||||||
/*
|
/*
|
||||||
* Help line to show the second rotation
|
|
||||||
* Uncomment this if you'd like to understand what's going on
|
|
||||||
paths.fbaCut2 = new Path()
|
paths.fbaCut2 = new Path()
|
||||||
.move(points.bust_rot2)
|
.move(points.bust_rot2)
|
||||||
.line(points.bustHem_rot2)
|
.line(points.bustHem_rot2)
|
||||||
|
@ -173,17 +186,18 @@ export default part => {
|
||||||
.line(points.bust_rot2)
|
.line(points.bust_rot2)
|
||||||
.line(points.bustSideCut1_rot1)
|
.line(points.bustSideCut1_rot1)
|
||||||
.curve_(points.aboveDartCpBottom_rot1, points.armhole_rot1)
|
.curve_(points.aboveDartCpBottom_rot1, points.armhole_rot1)
|
||||||
.curve(points.armholeCp2_rot1, points.armholeHollowCp1_rot1, points.armholeHollow)
|
.curve(points.armholeCp2_rot1, points.armholeHollowCp1_rot1, points.armholeHollow_rot1)
|
||||||
|
.curve(points.armholeHollowCp2_rot1, points.armholePitchCp1_rot1, points.armholePitch)
|
||||||
.line(points.bust_rot2)
|
.line(points.bust_rot2)
|
||||||
.attr('class', 'interfacing lashed')
|
.attr('class', 'interfacing lashed')
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
//
|
||||||
* Bust darts don't actually run entirely up to the bust point but stop a bit short
|
// Bust darts don't actually run entirely up to the bust point but stop a bit short
|
||||||
* How short is controlled by the bustDartLength option
|
// How short is controlled by the bustDartLength option
|
||||||
* First we'll find the middle of the dart, then shift towards the bust point along it
|
// First we'll find the middle of the dart, then shift towards the bust point along it
|
||||||
* for as far as the bustDartLength option tells us to
|
// for as far as the bustDartLength option tells us to
|
||||||
*/
|
//
|
||||||
points.bustDartCenter = points.bustSideCut1_rot2.shiftFractionTowards(
|
points.bustDartCenter = points.bustSideCut1_rot2.shiftFractionTowards(
|
||||||
points.bustSideCut1_rot1,
|
points.bustSideCut1_rot1,
|
||||||
0.5
|
0.5
|
||||||
|
@ -193,46 +207,55 @@ export default part => {
|
||||||
options.bustDartLength
|
options.bustDartLength
|
||||||
)
|
)
|
||||||
|
|
||||||
/*
|
//
|
||||||
* Draw the front dart. Or if we're not adding a front dart, narrow the side from the waist down
|
// Draw the front dart. Or if we're not adding a front dart, narrow the side from the waist down
|
||||||
*/
|
// taking into account the contour option to see how abrupt we should narrow the body below the breasts
|
||||||
|
//
|
||||||
if (options.frontDarts) {
|
if (options.frontDarts) {
|
||||||
let reduce = points.waist.dx(points.waist_rot2)
|
let reduce = points.waist.dx(points.waist_rot2)
|
||||||
points.frontDartTip = points.bustWaist_rot2.shiftFractionTowards(
|
points.frontDartTip = points.bustWaist_rot2.shiftFractionTowards(
|
||||||
points.bust_rot2,
|
points.bust_rot2,
|
||||||
options.frontDartLength
|
options.frontDartLength
|
||||||
)
|
)
|
||||||
points.frontDartWaistRight = points.bustWaist_rot2.shift(0, reduce / 2)
|
points.frontDartRight = new Point(
|
||||||
points.frontDartWaistLeft = points.bustWaist_rot2.shift(180, reduce / 2)
|
points.frontDartTip.x + reduce / 2,
|
||||||
points.frontDartWaistLeftCpTop = points.frontDartWaistLeft.shift(
|
points.hem_rot2.y - points.frontDartTip.dy(points.hem_rot2) * options.contour
|
||||||
90,
|
|
||||||
points.frontDartTip.dy(points.waist_rot2) / 2
|
|
||||||
)
|
)
|
||||||
points.frontDartWaistRightCpTop = points.frontDartWaistRight.shift(
|
points.frontDartLeft = points.frontDartRight.flipX(points.frontDartTip)
|
||||||
|
points.frontDartLeftCp = points.frontDartLeft.shift(
|
||||||
90,
|
90,
|
||||||
points.frontDartTip.dy(points.waist_rot2) / 2
|
points.frontDartTip.dy(points.frontDartLeft) / 2
|
||||||
)
|
)
|
||||||
points.frontDartHemLeft = new Point(points.frontDartWaistLeft.x, points.hem_rot2.y)
|
points.frontDartRightCp = points.frontDartLeftCp.flipX(points.frontDartTip)
|
||||||
points.frontDartHemRight = new Point(points.frontDartWaistRight.x, points.hem_rot2.y)
|
points.frontDartHemLeft = new Point(points.frontDartLeft.x, points.hem_rot2.y)
|
||||||
|
points.frontDartHemRight = new Point(points.frontDartRight.x, points.hem_rot2.y)
|
||||||
paths.frontDart = new Path()
|
paths.frontDart = new Path()
|
||||||
.move(points.frontDartHemRight)
|
.move(points.frontDartHemRight)
|
||||||
.line(points.frontDartWaistRight)
|
.line(points.frontDartRight)
|
||||||
.curve_(points.frontDartWaistRightCpTop, points.frontDartTip)
|
.curve_(points.frontDartRightCp, points.frontDartTip)
|
||||||
._curve(points.frontDartWaistLeftCpTop, points.frontDartWaistLeft)
|
._curve(points.frontDartLeftCp, points.frontDartLeft)
|
||||||
.line(points.frontDartHemLeft)
|
.line(points.frontDartHemLeft)
|
||||||
.attr('class', 'fabric dotted')
|
.attr('class', 'fabric dotted')
|
||||||
} else {
|
} else {
|
||||||
let waistX = points.waist.x
|
let waistDelta = points.waist.dx(points.waist_rot2) * options.contour
|
||||||
let hipsX = points.hips.x
|
let hipsDelta = points.hips.dx(points.hips_rot2)
|
||||||
for (let p of ['waist_rot2', 'waistCp1_rot2', 'belowDartCpBottom_rot2']) points[p].x = waistX
|
for (let p of ['waist_rot2', 'waistCp1_rot2', 'belowDartCpBottom_rot2'])
|
||||||
for (let p of ['hipsCp2_rot2', 'hips_rot2', 'hem_rot2']) points[p].x = hipsX
|
points[p] = points[p].shift(180, waistDelta)
|
||||||
|
for (let p of ['hipsCp2_rot2', 'hips_rot2', 'hem_rot2'])
|
||||||
|
points[p] = points[p].shift(180, hipsDelta)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
//
|
||||||
* Now overwrite the points that need to be adapted, and re-create the seam path.
|
// Now overwrite the points that need to be adapted
|
||||||
* After that, we'll let Simon take it from here
|
//
|
||||||
*/
|
let clone1 = [
|
||||||
let clone1 = ['armhole', 'armholeCp2', 'armholeHollowCp1']
|
'armhole',
|
||||||
|
'armholeCp2',
|
||||||
|
'armholeHollowCp1',
|
||||||
|
'armholeHollow',
|
||||||
|
'armholeHollowCp2',
|
||||||
|
'armholePitchCp1'
|
||||||
|
]
|
||||||
for (let p of clone1) points[p] = points[`${p}_rot1`].clone()
|
for (let p of clone1) points[p] = points[`${p}_rot1`].clone()
|
||||||
let clone2 = ['hem', 'hips', 'hipsCp2', 'waistCp1', 'waist']
|
let clone2 = ['hem', 'hips', 'hipsCp2', 'waistCp1', 'waist']
|
||||||
for (let p of clone2) points[p] = points[`${p}_rot2`].clone()
|
for (let p of clone2) points[p] = points[`${p}_rot2`].clone()
|
||||||
|
@ -242,10 +265,45 @@ export default part => {
|
||||||
points.dartBottom = points.bustSideCut1_rot2.clone()
|
points.dartBottom = points.bustSideCut1_rot2.clone()
|
||||||
points.dartTop = points.bustSideCut1_rot1.clone()
|
points.dartTop = points.bustSideCut1_rot1.clone()
|
||||||
points.dartTopCp = points.aboveDartCpBottom_rot1.clone()
|
points.dartTopCp = points.aboveDartCpBottom_rot1.clone()
|
||||||
|
points.cfArmhole = new Point(0, points.armhole.y)
|
||||||
|
points.cfWaist = new Point(0, points.waist.y)
|
||||||
|
points.cfHips = new Point(0, points.hips.y)
|
||||||
|
|
||||||
/*
|
//
|
||||||
* Recreate the base paths, and let Simon take it from here
|
// Smooth out the armhole to avoid a kink where we rotated
|
||||||
*/
|
// Note that this will ever so slightly shorten the armhole.
|
||||||
|
// But that will just end up being sleevecap ease
|
||||||
|
//
|
||||||
|
points.armholePitch = points.armholePitchCp1_rot1.shiftTowards(
|
||||||
|
points.armholePitchCp2,
|
||||||
|
points.armholePitch.dist(points.armholePitchCp1_rot1)
|
||||||
|
)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Put the snippets in the right place
|
||||||
|
//
|
||||||
|
for (let s in snippets) delete snippets[s]
|
||||||
|
macro('sprinkle', {
|
||||||
|
snippet: 'notch',
|
||||||
|
on: [
|
||||||
|
'armhole',
|
||||||
|
'armholePitch',
|
||||||
|
'cfArmhole',
|
||||||
|
'cfWaist',
|
||||||
|
'cfHem',
|
||||||
|
'hips',
|
||||||
|
'waist',
|
||||||
|
'bust_rot2',
|
||||||
|
'neck',
|
||||||
|
'shoulder'
|
||||||
|
]
|
||||||
|
})
|
||||||
|
points.logo = new Point(points.armhole.x / 2, points.armhole.y)
|
||||||
|
snippets.logo = new Snippet('logo', points.logo)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Now recreate the paths and let Simon take it from here
|
||||||
|
//
|
||||||
paths.saBaseFromHips = new Path()
|
paths.saBaseFromHips = new Path()
|
||||||
.move(points.hips)
|
.move(points.hips)
|
||||||
.curve(points.hipsCp2, points.waistCp1, points.waist)
|
.curve(points.hipsCp2, points.waistCp1, points.waist)
|
||||||
|
@ -265,8 +323,8 @@ export default part => {
|
||||||
case 'baseball':
|
case 'baseball':
|
||||||
points.bballStart = points.cfHem.shiftFractionTowards(points.hem, 0.5)
|
points.bballStart = points.cfHem.shiftFractionTowards(points.hem, 0.5)
|
||||||
// Don't let front dart fall into curved part of hem
|
// Don't let front dart fall into curved part of hem
|
||||||
if (options.frontDarts && points.bballStart.x > points.frontDartWaistRight.x) {
|
if (options.frontDarts && points.bballStart.x > points.frontDartRight.x) {
|
||||||
points.bballStart.x = points.frontDartWaistRight.x
|
points.bballStart.x = points.frontDartRight.x
|
||||||
}
|
}
|
||||||
points.bballEnd = points.hem.shiftFractionTowards(points.hips, options.hemCurve)
|
points.bballEnd = points.hem.shiftFractionTowards(points.hips, options.hemCurve)
|
||||||
points.bballCp1 = points.bballStart.shiftFractionTowards(points.hem, 0.5)
|
points.bballCp1 = points.bballStart.shiftFractionTowards(points.hem, 0.5)
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { version } from '../package.json'
|
||||||
export default {
|
export default {
|
||||||
name: 'waralee',
|
name: 'waralee',
|
||||||
version,
|
version,
|
||||||
|
beta: true,
|
||||||
design: 'Wouter Van Wageningen',
|
design: 'Wouter Van Wageningen',
|
||||||
code: 'Wouter Van Wageningen',
|
code: 'Wouter Van Wageningen',
|
||||||
department: 'menswear',
|
department: 'menswear',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue