in packages/maker.js/src/core/chain.ts [401:454]
function swapBezierPathsWithSeeds(beziers: IWalkModel[], swap: boolean) {
const tempKey = 'tempPaths';
const tempLayerKey = 'tempLayer';
beziers.forEach(wm => {
var b = wm.childModel as models.BezierCurve;
if (swap) {
//set layer prior to looking for seeds by layer
if (wm.layer != undefined && wm.layer !== '') {
b[tempLayerKey] = (b as IModel).layer;
(b as IModel).layer = wm.layer;
}
//use seeds as path, hide the arc paths from findChains()
var bezierPartsByLayer = models.BezierCurve.getBezierSeeds(b, { byLayers: true });
for (var layer in bezierPartsByLayer) {
var bezierSeeds = bezierPartsByLayer[layer];
if (bezierSeeds.length > 0) {
b[tempKey] = b.paths;
var newPaths: IPathMap = {};
bezierSeeds.forEach(function (seed, i) {
seed.layer = layer;
newPaths['seed_' + i] = seed;
});
b.paths = newPaths;
}
}
} else {
//revert the above
if (tempKey in b) {
b.paths = b[tempKey];
delete b[tempKey];
}
if (tempLayerKey in b) {
if (b[tempLayerKey] == undefined) {
delete (b as IModel).layer;
} else {
(b as IModel).layer = b[tempLayerKey];
}
delete b[tempLayerKey];
}
}
});
}