function getGraphDataSets() {
const loadMiserables = function(Graph) {
Graph
.cooldownTicks(200)
.nodeLabel('id')
.nodeAutoColorBy('group')
.jsonUrl('.miserables.json');
};
loadMiserables.description = "Les Miserables data (4062045)";
//
const loadBlocks = function(Graph) {
fetch('.blocks.json').then(r => r.json()).then(data => {
data.nodes.forEach(node => { node.name = `${node.user?node.user+': ':''}${node.description || node.id}` });
Graph
.cooldownTicks(300)
.cooldownTime(20000)
.nodeAutoColorBy('user')
.forceEngine('ngraph')
.graphData(data);
});
};
loadBlocks.description = "Blocks data (afecf1ce04644ad9036ca146d2084895)";
//
const loadD3Dependencies = function(Graph) {
fetch('.d3.csv').then(r => r.text()).then(d3.csvParse).then(data => {
const nodes = [], links = [];
data.forEach(({ size, path }) => {
const levels = path.split('/'),
module = levels.length > 1 ? levels[1] : null,
leaf = levels.pop(),
parent = levels.join('/');
nodes.push({
path,
leaf,
module,
size: +size || 1
});
if (parent) {
links.push({ source: parent, target: path});
}
});
Graph
.cooldownTicks(300)
.nodeRelSize(0.5)
.nodeId('path')
.nodeVal('size')
.nodeLabel('path')
.nodeAutoColorBy('module')
.forceEngine('ngraph')
.graphData({ nodes: nodes, links: links });
});
};
loadD3Dependencies.description = "D3 dependencies data (9a8124ccde3a4e9625bc413b48f14b30)";
const tunnel = function(Graph) {
const perimeter = 12, length = 30;
const getId = (col, row) => `${col},${row}`;
let nodes = [], links = [];
for (let colIdx=0; colIdx0) {
links.push({ source: getId(colIdx, rowIdx-1), target: id });
}
// Link horizontally
links.push({ source: getId((colIdx || perimeter) - 1, rowIdx), target: id });
}
}
Graph
.cooldownTicks(300)
.forceEngine('ngraph')
.graphData({ nodes: nodes, links: links });
};
tunnel.description = "fabric data for a cylindrical tunnel shape";
//
return [loadMiserables, loadBlocks, loadD3Dependencies, tunnel];
}