function swapBezierPathsWithSeeds()

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];
                }

            }
        });
    }