diff --git a/packages/benjamin/src/bow1.js b/packages/benjamin/src/bow1.js
index 4365259800a..1a04d02873c 100644
--- a/packages/benjamin/src/bow1.js
+++ b/packages/benjamin/src/bow1.js
@@ -1,15 +1,5 @@
export default function(part) {
- let {
- Point,
- points,
- Path,
- paths,
- complete,
- macro,
- sa,
- store,
- paperless
- } = part.shorthand()
+ let { Point, points, Path, paths, complete, macro, sa, store, paperless } = part.shorthand()
points.bandBottomLeft = points.bandBottomLeft.shift(0, 0)
points.bandTopLeft = points.bandBottomLeft.flipY()
@@ -49,7 +39,7 @@ export default function(part) {
at: points.titleAnchor,
nr: 1,
title: 'bowTie',
- scale: (store.get('tipWidth')/75)
+ scale: store.get('tipWidth') / 75
})
points.scaleboxAnchor = points.bandTopLeft.shift(30, 80)
macro('scalebox', { at: points.scaleboxAnchor })
diff --git a/packages/benjamin/src/bow2.js b/packages/benjamin/src/bow2.js
index 393769d5948..26bf9122bfd 100644
--- a/packages/benjamin/src/bow2.js
+++ b/packages/benjamin/src/bow2.js
@@ -55,7 +55,7 @@ export default function(part) {
at: points.titleAnchor,
nr: 2,
title: 'bowTie',
- scale: (store.get('tipWidth')/75)
+ scale: store.get('tipWidth') / 75
})
}
diff --git a/packages/benjamin/src/bow3.js b/packages/benjamin/src/bow3.js
index 2152c339930..475b5cfcd27 100644
--- a/packages/benjamin/src/bow3.js
+++ b/packages/benjamin/src/bow3.js
@@ -55,7 +55,7 @@ export default function(part) {
at: points.titleAnchor,
nr: 3,
title: 'bowTie',
- scale: (store.get('tipWidth')/75)
+ scale: store.get('tipWidth') / 75
})
}
diff --git a/packages/penelope/example/src/App.test.js b/packages/penelope/example/src/App.test.js
index 23c181f0276..4bf19359ea4 100644
--- a/packages/penelope/example/src/App.test.js
+++ b/packages/penelope/example/src/App.test.js
@@ -1,9 +1,9 @@
-import React from "react";
-import ReactDOM from "react-dom";
-import App from "./App";
+import React from 'react'
+import ReactDOM from 'react-dom'
+import App from './App'
-it("renders without crashing", () => {
- const div = document.createElement("div");
- ReactDOM.render(, div);
- ReactDOM.unmountComponentAtNode(div);
-});
+it('renders without crashing', () => {
+ const div = document.createElement('div')
+ ReactDOM.render(, div)
+ ReactDOM.unmountComponentAtNode(div)
+})
diff --git a/packages/penelope/src/index.js b/packages/penelope/src/index.js
index d25192d695b..e308d781e13 100644
--- a/packages/penelope/src/index.js
+++ b/packages/penelope/src/index.js
@@ -1,16 +1,16 @@
-import freesewing from "@freesewing/core";
-import plugins from "@freesewing/plugin-bundle";
-import config from "../config";
-import draftFront from "./front";
-import draftBack from "./back";
-import draftWaistband from "./waistband";
+import freesewing from '@freesewing/core'
+import plugins from '@freesewing/plugin-bundle'
+import config from '../config'
+import draftFront from './front'
+import draftBack from './back'
+import draftWaistband from './waistband'
// Create new design
-const Pattern = new freesewing.Design(config, plugins);
+const Pattern = new freesewing.Design(config, plugins)
// Attach the draft methods to the prototype
-Pattern.prototype.draftFront = draftFront;
-Pattern.prototype.draftBack = draftBack;
-Pattern.prototype.draftWaistband = draftWaistband;
+Pattern.prototype.draftFront = draftFront
+Pattern.prototype.draftBack = draftBack
+Pattern.prototype.draftWaistband = draftWaistband
-export default Pattern;
+export default Pattern
diff --git a/packages/penelope/src/utils.js b/packages/penelope/src/utils.js
index ce79aa57ecf..4badda88c82 100644
--- a/packages/penelope/src/utils.js
+++ b/packages/penelope/src/utils.js
@@ -14,7 +14,7 @@ function dartCalcFront(options, seatWaistDiff, nrOfDarts) {
4) /
nrOfDarts) *
(0.5 + options.dartToSideSeamFactor)
- );
+ )
}
function dartCalcBack(options, seatWaistDiff, nrOfDarts) {
@@ -31,18 +31,18 @@ function dartCalcBack(options, seatWaistDiff, nrOfDarts) {
options.dartBackControl3) /
nrOfDarts) *
(0.5 + options.dartToSideSeamFactor)
- );
+ )
}
function dartCalc(options, seat, seatEase, waist, waistEase) {
- seat += seatEase;
- waist += waistEase;
- let seatWaistDiff = Math.max(seat - waist, 0);
- options.seatWaistDiff = seatWaistDiff;
+ seat += seatEase
+ waist += waistEase
+ let seatWaistDiff = Math.max(seat - waist, 0)
+ options.seatWaistDiff = seatWaistDiff
- let nrOfDarts = options.nrOfDarts;
+ let nrOfDarts = options.nrOfDarts
- let frontDartSize = dartCalcFront(options, seatWaistDiff, nrOfDarts);
+ let frontDartSize = dartCalcFront(options, seatWaistDiff, nrOfDarts)
/*
console.log({
@@ -54,13 +54,13 @@ function dartCalc(options, seat, seatEase, waist, waistEase) {
// If the front darts are too small and we have more than one, remove one.
if (frontDartSize <= options.dartMinimumWidth * nrOfDarts && nrOfDarts > 1) {
- nrOfDarts--;
- frontDartSize = dartCalcFront(options, seatWaistDiff, nrOfDarts);
+ nrOfDarts--
+ frontDartSize = dartCalcFront(options, seatWaistDiff, nrOfDarts)
}
// See if the dart created by the side seam becomes too small:
if (seatWaistDiff / 4 - frontDartSize < options.dartSideMinimum) {
- frontDartSize = 0;
+ frontDartSize = 0
}
// if( seatWaistDiff/4 -frontDartSize < options.dartSideMinimum || frontDartSize < options.dartMinimumWidth *nrOfDarts ) {
// nrOfDarts = 1;
@@ -74,12 +74,12 @@ function dartCalc(options, seat, seatEase, waist, waistEase) {
});
*/
- let backDartSize = dartCalcBack(options, seatWaistDiff, nrOfDarts);
+ let backDartSize = dartCalcBack(options, seatWaistDiff, nrOfDarts)
// If the back darts are too small and we have more than one, remove one.
if (backDartSize < options.dartMinimumWidth * nrOfDarts && nrOfDarts > 1) {
- nrOfDarts = 1;
- frontDartSize = dartCalcFront(options, seatWaistDiff, nrOfDarts);
- backDartSize = dartCalcBack(options, seatWaistDiff, nrOfDarts);
+ nrOfDarts = 1
+ frontDartSize = dartCalcFront(options, seatWaistDiff, nrOfDarts)
+ backDartSize = dartCalcBack(options, seatWaistDiff, nrOfDarts)
}
/*
@@ -90,9 +90,9 @@ function dartCalc(options, seat, seatEase, waist, waistEase) {
});
*/
- options.frontDartSize = frontDartSize;
- options.backDartSize = backDartSize;
- options.nrOfDarts = nrOfDarts;
+ options.frontDartSize = frontDartSize
+ options.backDartSize = backDartSize
+ options.nrOfDarts = nrOfDarts
}
/**
@@ -107,53 +107,47 @@ function dartCalc(options, seat, seatEase, waist, waistEase) {
* @return Object with three path attributes; left, dart, right
*/
function addDartToCurve(part, curvePath, distance, dartSize, dartDepth) {
- let dartMiddle = curvePath.shiftAlong(distance);
+ let dartMiddle = curvePath.shiftAlong(distance)
- let curvePaths = curvePath.split(dartMiddle);
- let dartLeft = curvePaths[0].reverse().shiftAlong(dartSize / 2);
- let dartRight = curvePaths[1].shiftAlong(dartSize / 2);
+ let curvePaths = curvePath.split(dartMiddle)
+ let dartLeft = curvePaths[0].reverse().shiftAlong(dartSize / 2)
+ let dartRight = curvePaths[1].shiftAlong(dartSize / 2)
- let distanceFactor = 0.15;
+ let distanceFactor = 0.15
let leftCPdistance = Math.min(
curvePaths[0].length() * distanceFactor,
curvePaths[0].ops[1].to.dist(curvePaths[0].ops[1].cp2)
- );
+ )
let rightCPdistance = Math.min(
curvePaths[1].length() * distanceFactor,
curvePaths[1].ops[0].to.dist(curvePaths[1].ops[1].cp1)
- );
+ )
- let dartBottom = dartMiddle.shift(dartLeft.angle(dartRight) - 90, dartDepth);
+ let dartBottom = dartMiddle.shift(dartLeft.angle(dartRight) - 90, dartDepth)
- let leftDartCP = dartLeft.shift(
- dartLeft.angle(dartBottom) - 90,
- leftCPdistance
- );
- let rightDartCP = dartRight.shift(
- dartRight.angle(dartBottom) + 90,
- rightCPdistance
- );
+ let leftDartCP = dartLeft.shift(dartLeft.angle(dartBottom) - 90, leftCPdistance)
+ let rightDartCP = dartRight.shift(dartRight.angle(dartBottom) + 90, rightCPdistance)
let curveLeftOfDart = new part.Path()
.move(curvePaths[0].ops[0].to)
.curve(curvePaths[0].ops[1].cp1, leftDartCP, dartLeft)
- .setRender(false);
+ .setRender(false)
let curveRightOfDart = new part.Path()
.move(dartRight)
.curve(rightDartCP, curvePaths[1].ops[1].cp2, curvePaths[1].ops[1].to)
- .setRender(false);
+ .setRender(false)
let dart = new part.Path()
.move(dartLeft)
.line(dartBottom)
.line(dartRight)
- .setRender(false);
+ .setRender(false)
let curveWithDart = {
left: curveLeftOfDart,
dart: dart,
right: curveRightOfDart
- };
+ }
/*
part.points.dartMiddle = dartMiddle ;
@@ -162,7 +156,7 @@ function addDartToCurve(part, curvePath, distance, dartSize, dartDepth) {
part.points.dartBottom = dartBottom ;
*/
- return curveWithDart;
+ return curveWithDart
}
-export { addDartToCurve, dartCalc };
+export { addDartToCurve, dartCalc }
diff --git a/packages/waralee/example/src/App.test.js b/packages/waralee/example/src/App.test.js
index 23c181f0276..4bf19359ea4 100644
--- a/packages/waralee/example/src/App.test.js
+++ b/packages/waralee/example/src/App.test.js
@@ -1,9 +1,9 @@
-import React from "react";
-import ReactDOM from "react-dom";
-import App from "./App";
+import React from 'react'
+import ReactDOM from 'react-dom'
+import App from './App'
-it("renders without crashing", () => {
- const div = document.createElement("div");
- ReactDOM.render(, div);
- ReactDOM.unmountComponentAtNode(div);
-});
+it('renders without crashing', () => {
+ const div = document.createElement('div')
+ ReactDOM.render(, div)
+ ReactDOM.unmountComponentAtNode(div)
+})
diff --git a/packages/waralee/src/index.js b/packages/waralee/src/index.js
index 15af34364a7..c406026e7e1 100644
--- a/packages/waralee/src/index.js
+++ b/packages/waralee/src/index.js
@@ -1,24 +1,24 @@
-import freesewing from "@freesewing/core";
-import plugins from "@freesewing/plugin-bundle";
-import config from "../config";
-import draftPantsproto from "./pantsproto";
-import draftPants from "./pants";
-import draftCutout from "./cutout";
-import draftPocket from "./pocket";
-import draftBackPocket from "./backpocket";
-import draftFacings from "./facings";
-import draftMini from "./mini";
+import freesewing from '@freesewing/core'
+import plugins from '@freesewing/plugin-bundle'
+import config from '../config'
+import draftPantsproto from './pantsproto'
+import draftPants from './pants'
+import draftCutout from './cutout'
+import draftPocket from './pocket'
+import draftBackPocket from './backpocket'
+import draftFacings from './facings'
+import draftMini from './mini'
// Create new design
-const Pattern = new freesewing.Design(config, plugins);
+const Pattern = new freesewing.Design(config, plugins)
// Attach the draft methods to the prototype
-Pattern.prototype.draftPantsproto = draftPantsproto;
-Pattern.prototype.draftPants = draftPants;
-Pattern.prototype.draftCutout = draftCutout;
-Pattern.prototype.draftPocket = draftPocket;
-Pattern.prototype.draftBackPocket = draftBackPocket;
-Pattern.prototype.draftFacings = draftFacings;
-Pattern.prototype.draftMini = draftMini;
+Pattern.prototype.draftPantsproto = draftPantsproto
+Pattern.prototype.draftPants = draftPants
+Pattern.prototype.draftCutout = draftCutout
+Pattern.prototype.draftPocket = draftPocket
+Pattern.prototype.draftBackPocket = draftBackPocket
+Pattern.prototype.draftFacings = draftFacings
+Pattern.prototype.draftMini = draftMini
-export default Pattern;
+export default Pattern
diff --git a/packages/waralee/src/mini.js b/packages/waralee/src/mini.js
index 49f8e48f3a6..4f7258e136d 100644
--- a/packages/waralee/src/mini.js
+++ b/packages/waralee/src/mini.js
@@ -1,158 +1,149 @@
-// This is an idea to keep the printing to a minimum. The whole patterns is rather large.
-// To keep you from printing it completely, you could print this part in paperless mode
-// and only have a single sheet with all the dimensions on it.
-
-export default function(part) {
- let {
- options,
- /*measurements,
- Point,
- Path,*/
- points,
- paths,
- Snippet,
- snippets,
- complete,
- sa,
- paperless,
- macro
- } = part.shorthand();
-
- let mini = options.minimizer;
-
- for( var p in points ) {
- points[p].x = points[p].x /mini;
- points[p].y = points[p].y /mini;
- }
-
-
- paths.waistFoldBack = paths.waistBack
- .offset(-1 * options.waistBand/mini)
- .attr("class", "fabric stroke-sm");
- paths.waistFoldFront = paths.waistFront
- .offset(-1 * options.waistBand/mini)
- .attr("class", "fabric stroke-sm");
-
- paths.frontFold = paths.front
- .offset(-1 * options.hem/mini)
- .attr("class", "fabric stroke-sm");
- paths.legFold = paths.leg
- .offset(-1 * options.hem/mini)
- .attr("class", "fabric stroke-sm");
- paths.backFold = paths.back
- .offset(-1 * options.hem/mini)
- .attr("class", "fabric stroke-sm");
-
-
-
- // Complete?
- if (complete) {
- points.logo = points.fWaistFront.shift(270, 400);
- snippets.logo = new Snippet("logo", points.logo);
- points.text = points.logo
- .shift(-90, 50)
- .attr("data-text", "hello")
- .attr("data-text-class", "center");
-
- if (sa) {
- paths.sa = paths.seam.offset(sa).attr("class", "fabric sa");
- }
- }
-
- // Paperless?
- if (paperless) {
- macro("hd", {
- from: points.fWaistSide,
- to: points.mWaist,
- y: points.fWaistSide.y,
- text: part.units(points.fWaistSide.dist(points.mWaist)*mini)
- });
- /*
- macro("hd", {
- from: points.fWaistFrontOverlap,
- to: points.mWaist,
- y: points.fWaistSide.y - sa - 15
- });
- macro("hd", {
- from: points.mWaist,
- to: points.bWaistSide,
- y: points.bWaistSide.y
- });
- macro("hd", {
- from: points.mWaist,
- to: points.bWaistBack,
- y: points.bWaistSide.y - sa - 15
- });
- macro("hd", {
- from: points.mWaist,
- to: points.bWaistBackOverlap,
- y: points.bWaistSide.y - sa - 30
- });
- macro("vd", {
- from: points.mWaist,
- to: points.mHip,
- x: points.mWaist.x
- });
- macro("vd", {
- from: points.bWaistSide,
- to: points.bWaistBack,
- x: points.bWaistSide.x + 15
- });
- macro("vd", {
- from: points.bWaistBackOverlap,
- to: points.bLegBackOverlap,
- x: points.bLegBackOverlap.x - 30
- });
-
- if (options.frontPocket) {
- macro("vd", {
- from: points.fWaistSide,
- to: points.frontPocketTop,
- x: points.frontPocketTop.x
- });
- macro("vd", {
- from: points.fWaistSide,
- to: points.frontPocketBottom,
- x: points.frontPocketBottom.x
- });
- macro("hd", {
- from: points.frontPocketTop,
- to: points.fWaistSide,
- y: points.frontPocketTop.y
- });
- macro("hd", {
- from: points.frontPocketBottom,
- to: points.fWaistSide,
- y: points.frontPocketBottom.y
- });
- }
- if (options.backPocket) {
- macro("vd", {
- from: points.bWaistSide,
- to: points.backPocketLeft,
- x: points.backPocketLeft.x
- });
- macro("vd", {
- from: points.bWaistSide,
- to: points.backPocketRight,
- x: points.backPocketRight.x
- });
- macro("hd", {
- from: points.bWaistSide,
- to: points.backPocketLeft,
- y: points.backPocketLeft.y
- });
- macro("hd", {
- from: points.bWaistSide,
- to: points.backPocketRight,
- y: points.backPocketRight.y
- });
- }
- */
- }
-
- // keep this secret for now:
- part.render = false;
-
- return part;
-}
+// This is an idea to keep the printing to a minimum. The whole patterns is rather large.
+// To keep you from printing it completely, you could print this part in paperless mode
+// and only have a single sheet with all the dimensions on it.
+
+export default function(part) {
+ let {
+ options,
+ /*measurements,
+ Point,
+ Path,*/
+ points,
+ paths,
+ Snippet,
+ snippets,
+ complete,
+ sa,
+ paperless,
+ macro
+ } = part.shorthand()
+
+ let mini = options.minimizer
+
+ for (var p in points) {
+ points[p].x = points[p].x / mini
+ points[p].y = points[p].y / mini
+ }
+
+ paths.waistFoldBack = paths.waistBack
+ .offset((-1 * options.waistBand) / mini)
+ .attr('class', 'fabric stroke-sm')
+ paths.waistFoldFront = paths.waistFront
+ .offset((-1 * options.waistBand) / mini)
+ .attr('class', 'fabric stroke-sm')
+
+ paths.frontFold = paths.front.offset((-1 * options.hem) / mini).attr('class', 'fabric stroke-sm')
+ paths.legFold = paths.leg.offset((-1 * options.hem) / mini).attr('class', 'fabric stroke-sm')
+ paths.backFold = paths.back.offset((-1 * options.hem) / mini).attr('class', 'fabric stroke-sm')
+
+ // Complete?
+ if (complete) {
+ points.logo = points.fWaistFront.shift(270, 400)
+ snippets.logo = new Snippet('logo', points.logo)
+ points.text = points.logo
+ .shift(-90, 50)
+ .attr('data-text', 'hello')
+ .attr('data-text-class', 'center')
+
+ if (sa) {
+ paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
+ }
+ }
+
+ // Paperless?
+ if (paperless) {
+ macro('hd', {
+ from: points.fWaistSide,
+ to: points.mWaist,
+ y: points.fWaistSide.y,
+ text: part.units(points.fWaistSide.dist(points.mWaist) * mini)
+ })
+ /*
+ macro("hd", {
+ from: points.fWaistFrontOverlap,
+ to: points.mWaist,
+ y: points.fWaistSide.y - sa - 15
+ });
+ macro("hd", {
+ from: points.mWaist,
+ to: points.bWaistSide,
+ y: points.bWaistSide.y
+ });
+ macro("hd", {
+ from: points.mWaist,
+ to: points.bWaistBack,
+ y: points.bWaistSide.y - sa - 15
+ });
+ macro("hd", {
+ from: points.mWaist,
+ to: points.bWaistBackOverlap,
+ y: points.bWaistSide.y - sa - 30
+ });
+ macro("vd", {
+ from: points.mWaist,
+ to: points.mHip,
+ x: points.mWaist.x
+ });
+ macro("vd", {
+ from: points.bWaistSide,
+ to: points.bWaistBack,
+ x: points.bWaistSide.x + 15
+ });
+ macro("vd", {
+ from: points.bWaistBackOverlap,
+ to: points.bLegBackOverlap,
+ x: points.bLegBackOverlap.x - 30
+ });
+
+ if (options.frontPocket) {
+ macro("vd", {
+ from: points.fWaistSide,
+ to: points.frontPocketTop,
+ x: points.frontPocketTop.x
+ });
+ macro("vd", {
+ from: points.fWaistSide,
+ to: points.frontPocketBottom,
+ x: points.frontPocketBottom.x
+ });
+ macro("hd", {
+ from: points.frontPocketTop,
+ to: points.fWaistSide,
+ y: points.frontPocketTop.y
+ });
+ macro("hd", {
+ from: points.frontPocketBottom,
+ to: points.fWaistSide,
+ y: points.frontPocketBottom.y
+ });
+ }
+ if (options.backPocket) {
+ macro("vd", {
+ from: points.bWaistSide,
+ to: points.backPocketLeft,
+ x: points.backPocketLeft.x
+ });
+ macro("vd", {
+ from: points.bWaistSide,
+ to: points.backPocketRight,
+ x: points.backPocketRight.x
+ });
+ macro("hd", {
+ from: points.bWaistSide,
+ to: points.backPocketLeft,
+ y: points.backPocketLeft.y
+ });
+ macro("hd", {
+ from: points.bWaistSide,
+ to: points.backPocketRight,
+ y: points.backPocketRight.y
+ });
+ }
+ */
+ }
+
+ // keep this secret for now:
+ part.render = false
+
+ return part
+}
diff --git a/packages/waralee/src/util.js b/packages/waralee/src/util.js
index 54418e0cb76..d8ad428b8af 100644
--- a/packages/waralee/src/util.js
+++ b/packages/waralee/src/util.js
@@ -1,35 +1,37 @@
-function CreateCrotchPoints(part) {
- let { options, measurements, points } = part.shorthand();
-
- let seatDepth = measurements.seatDepth + (measurements.seatDepth *options.waistRaise );
- let circumference = measurements.seatCircumference;
- let circumference4 = circumference / 4;
-
- points.mHip = points.mWaist.shift(270, seatDepth);
-
- points.fWaistSide = points.mWaist
- .shift(180, options.crotchFront * circumference4)
- .shift( 90, options.waistBand );
- points.fWaistCrotchCP = points.fWaistSide.shift(
- 270,
- seatDepth * options.crotchFactorFrontVer +options.waistBand
- );
- points.fHipCrotchCP = points.mHip
- .shift(180,options.crotchFront * circumference4 * options.crotchFactorFrontHor);
-
- points.fHipSide = points.mHip
- .shift(180, options.crotchFront * circumference4 );
-
- points.bWaistSide = points.mWaist
- .shift( 0, options.crotchBack * circumference4)
- .shift(90, options.waistBand )
- .shift(90, options.backRaise * seatDepth);
- points.bWaistCrotchCP = points.bWaistSide
- .shift(270, seatDepth * options.crotchFactorBackVer );
- points.bHipCrotchCP = points.mHip
- .shift(0,options.crotchBack * circumference4 * options.crotchFactorBackHor);
-
- points.bHipSide = points.mHip.shift(0, options.crotchBack * circumference4 );
-}
-
-export { CreateCrotchPoints };
+function CreateCrotchPoints(part) {
+ let { options, measurements, points } = part.shorthand()
+
+ let seatDepth = measurements.seatDepth + measurements.seatDepth * options.waistRaise
+ let circumference = measurements.seatCircumference
+ let circumference4 = circumference / 4
+
+ points.mHip = points.mWaist.shift(270, seatDepth)
+
+ points.fWaistSide = points.mWaist
+ .shift(180, options.crotchFront * circumference4)
+ .shift(90, options.waistBand)
+ points.fWaistCrotchCP = points.fWaistSide.shift(
+ 270,
+ seatDepth * options.crotchFactorFrontVer + options.waistBand
+ )
+ points.fHipCrotchCP = points.mHip.shift(
+ 180,
+ options.crotchFront * circumference4 * options.crotchFactorFrontHor
+ )
+
+ points.fHipSide = points.mHip.shift(180, options.crotchFront * circumference4)
+
+ points.bWaistSide = points.mWaist
+ .shift(0, options.crotchBack * circumference4)
+ .shift(90, options.waistBand)
+ .shift(90, options.backRaise * seatDepth)
+ points.bWaistCrotchCP = points.bWaistSide.shift(270, seatDepth * options.crotchFactorBackVer)
+ points.bHipCrotchCP = points.mHip.shift(
+ 0,
+ options.crotchBack * circumference4 * options.crotchFactorBackHor
+ )
+
+ points.bHipSide = points.mHip.shift(0, options.crotchBack * circumference4)
+}
+
+export { CreateCrotchPoints }