diff --git a/libs/shared/lib/graph-layout/graphology-layouts.ts b/libs/shared/lib/graph-layout/graphology-layouts.ts index aaa820c4f186588ca0c81252441b3d91de1d5844..67419cbb7b80d399a9810a954cdf0054d2b7127d 100644 --- a/libs/shared/lib/graph-layout/graphology-layouts.ts +++ b/libs/shared/lib/graph-layout/graphology-layouts.ts @@ -198,21 +198,27 @@ export class GraphologyForceAtlas2Webworker extends GraphologyLayout { const sensibleSettings = forceAtlas2.inferSettings(graph); - const layout = new FA2Layout(graph, { - settings: { - ...this.defaultLayoutSettings, - ...sensibleSettings, - adjustSizes: graph.order < 300 ? true : false, + let settings = { + ...this.defaultLayoutSettings, + ...sensibleSettings, + adjustSizes: graph.order < 300 ? true : false + }; + + if (graph.order > 5000) { + settings = { + ...settings, barnesHutOptimize: true, - barnesHutTheta: 1, + barnesHutTheta: 0.75, slowDown: 0.75 - }, - }); + }; + } + + const layout = new FA2Layout(graph, { settings }); layout.start(); - // stop the layout after 5 seconds + // stop the layout after 10 seconds setTimeout(() => { layout.stop(); - }, 5000); + }, 10000); } }