aboutsummaryrefslogtreecommitdiffstats
path: root/src/layout.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout.js')
-rw-r--r--src/layout.js48
1 files changed, 0 insertions, 48 deletions
diff --git a/src/layout.js b/src/layout.js
deleted file mode 100644
index c9c2a4d..0000000
--- a/src/layout.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import Viz from './viz.es';
-
-const toNumber = (i) => Number(i);
-const gv = new Viz({ workerURL: 'lib/lite.render.js' });
-
-export default class Layout {
- constructor() {
- this.src = 'digraph { node [shape="rectangle"];\n';
- }
-
- addNode(id, width, height) {
- this.src += ` "${id}" [fixedsize=true; width=${width / 72}; height=${height / 72}];\n`;
- }
-
- addLink(from, to) {
- this.src += ` "${from}" -> "${to}";\n`;
- }
-
- async render() {
- this.src += '}';
-
- const info = await gv.renderJSONObject(this.src, { format: 'json0' });
- info.objects ||= [];
- info.edges ||= [];
- const [width, height] = info.bb.split(',').map(toNumber).slice(2);
-
- const positions = {};
- for (const object of info.objects) {
- const [x, y] = object.pos.split(',').map(toNumber);
- positions[object.name] = [ x, height - y ];
- }
-
- const links = info.edges.map((edge) => {
- const pos = edge.pos.slice(2);
- return pos.split(' ').map(p => {
- const [x, y] = p.split(',');
- return [toNumber(x), height - toNumber(y)];
- });
-
- });
-
- return {
- width, height,
- positions,
- links,
- };
- }
-}