Updated calculateIterations for ipsepcola layout

This commit is contained in:
shubham-mermaid
2025-06-10 10:07:36 +05:30
parent 3a8952ebe0
commit cfd25ed33e

View File

@@ -33,19 +33,7 @@ export async function render(data4Layout: LayoutData, svg: SVG): Promise<void> {
// assign initial coordinates
assignInitialPositions(100, 130, data4Layout);
const nodesCount = data4Layout.nodes.length;
const edgesCount = data4Layout.edges.length;
const groupNodes = data4Layout.nodes.filter((node) => {
if (node.isGroup) {
return node;
}
});
let iteration = nodesCount + edgesCount;
if (groupNodes.length > 0) {
iteration = iteration * 5;
}
const iteration = calculateIterations(data4Layout);
applyCola(
{
@@ -81,3 +69,21 @@ function sortGroupNodesToEnd(nodes: Node[]): Node[] {
return [...nonGroupNodes, ...groupNodes];
}
function calculateIterations(data4Layout: LayoutData) {
const nodesCount = data4Layout.nodes.length;
const edgesCount = data4Layout.edges.length;
const groupNodes = data4Layout.nodes.filter((node) => {
if (node.isGroup) {
return node;
}
});
let iteration = nodesCount + edgesCount;
if (groupNodes.length > 0) {
iteration = iteration * 5;
}
return iteration;
}