Skip to content

Commit 7090694

Browse files
committed
move edgeIndex and dummyNum to static variables
1 parent bc19f2d commit 7090694

File tree

2 files changed

+44
-42
lines changed

2 files changed

+44
-42
lines changed

built/elkGraph.js

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,38 @@ var _ = require("lodash");
44
var ElkModel;
55
(function (ElkModel) {
66
ElkModel.wireNameLookup = {};
7+
ElkModel.dummyNum = 0;
8+
ElkModel.edgeIndex = 0;
79
})(ElkModel = exports.ElkModel || (exports.ElkModel = {}));
810
function buildElkGraph(module) {
911
var children = module.getNodes().map(function (n) {
1012
return n.buildElkChild();
1113
});
12-
var i = 0;
13-
var dummies = 0;
14+
ElkModel.edgeIndex = 0;
15+
ElkModel.dummyNum = 0;
1416
var edges = _.flatMap(module.getWires(), function (w) {
1517
// at least one driver and at least one rider and no laterals
1618
if (w.drivers.length > 0 && w.riders.length > 0 && w.laterals.length === 0) {
1719
var ret = [];
18-
i = route(w.drivers, w.riders, i, ret);
20+
route(w.drivers, w.riders, ret);
1921
return ret;
2022
// at least one driver or rider and at least one lateral
2123
}
2224
else if (w.drivers.concat(w.riders).length > 0 && w.laterals.length > 0) {
2325
var ret = [];
24-
i = route(w.drivers, w.laterals, i, ret);
25-
i = route(w.laterals, w.riders, i, ret);
26+
route(w.drivers, w.laterals, ret);
27+
route(w.laterals, w.riders, ret);
2628
return ret;
2729
// at least two drivers and no riders
2830
}
2931
else if (w.riders.length === 0 && w.drivers.length > 1) {
3032
// create a dummy node and add it to children
31-
var dummyId_1 = addDummy(children, dummies);
32-
dummies += 1;
33+
var dummyId_1 = addDummy(children);
34+
ElkModel.dummyNum += 1;
3335
var dummyEdges = w.drivers.map(function (driver) {
3436
var sourceParentKey = driver.parentNode.Key;
35-
var id = 'e' + String(i);
36-
i += 1;
37+
var id = 'e' + String(ElkModel.edgeIndex);
38+
ElkModel.edgeIndex += 1;
3739
var d = {
3840
id: id,
3941
source: sourceParentKey,
@@ -49,12 +51,12 @@ function buildElkGraph(module) {
4951
}
5052
else if (w.riders.length > 1 && w.drivers.length === 0) {
5153
// create a dummy node and add it to children
52-
var dummyId_2 = addDummy(children, dummies);
53-
dummies += 1;
54+
var dummyId_2 = addDummy(children);
55+
ElkModel.dummyNum += 1;
5456
var dummyEdges = w.riders.map(function (rider) {
5557
var sourceParentKey = rider.parentNode.Key;
56-
var id = 'e' + String(i);
57-
i += 1;
58+
var id = 'e' + String(ElkModel.edgeIndex);
59+
ElkModel.edgeIndex += 1;
5860
var edge = {
5961
id: id,
6062
source: dummyId_2,
@@ -72,8 +74,8 @@ function buildElkGraph(module) {
7274
var sourceParentKey_1 = source_1.parentNode.Key;
7375
var lateralEdges = w.laterals.slice(1).map(function (lateral) {
7476
var lateralParentKey = lateral.parentNode.Key;
75-
var id = 'e' + String(i);
76-
i += 1;
77+
var id = 'e' + String(ElkModel.edgeIndex);
78+
ElkModel.edgeIndex += 1;
7779
var edge = {
7880
id: id,
7981
source: sourceParentKey_1,
@@ -96,8 +98,8 @@ function buildElkGraph(module) {
9698
};
9799
}
98100
exports.buildElkGraph = buildElkGraph;
99-
function addDummy(children, dummyNum) {
100-
var dummyId = '$d_' + String(dummyNum);
101+
function addDummy(children) {
102+
var dummyId = '$d_' + String(ElkModel.dummyNum);
101103
var child = {
102104
id: dummyId,
103105
width: 0,
@@ -112,14 +114,14 @@ function addDummy(children, dummyNum) {
112114
children.push(child);
113115
return dummyId;
114116
}
115-
function route(sourcePorts, targetPorts, edgeIndex, edges) {
117+
function route(sourcePorts, targetPorts, edges) {
116118
var newEdges = (_.flatMap(sourcePorts, function (sourcePort) {
117119
var sourceParentKey = sourcePort.parentNode.key;
118120
var sourceKey = sourceParentKey + '.' + sourcePort.key;
119121
return targetPorts.map(function (targetPort) {
120122
var targetParentKey = targetPort.parentNode.key;
121123
var targetKey = targetParentKey + '.' + targetPort.key;
122-
var id = 'e' + edgeIndex;
124+
var id = 'e' + ElkModel.edgeIndex;
123125
var edge = {
124126
id: id,
125127
sources: [sourceKey],
@@ -129,10 +131,9 @@ function route(sourcePorts, targetPorts, edgeIndex, edges) {
129131
if (sourcePort.parentNode.type !== '$dff') {
130132
edge.layoutOptions = { 'org.eclipse.elk.layered.priority.direction': 10 };
131133
}
132-
edgeIndex += 1;
134+
ElkModel.edgeIndex += 1;
133135
return edge;
134136
});
135137
}));
136138
edges.push.apply(edges, newEdges);
137-
return edgeIndex;
138139
}

lib/elkGraph.ts

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export namespace ElkModel {
66
[edgeId: string]: string;
77
}
88
export let wireNameLookup: WireNameLookup = {};
9+
export let dummyNum: number = 0;
10+
export let edgeIndex: number = 0;
911

1012
export interface WirePoint {
1113
x: number;
@@ -83,29 +85,29 @@ export function buildElkGraph(module: FlatModule): ElkModel.Graph {
8385
const children: ElkModel.Cell[] = module.getNodes().map((n) => {
8486
return n.buildElkChild();
8587
});
86-
let i: number = 0;
87-
let dummies: number = 0;
88+
ElkModel.edgeIndex = 0;
89+
ElkModel.dummyNum = 0;
8890
const edges: ElkModel.Edge[] = _.flatMap(module.getWires(), (w) => {
8991
// at least one driver and at least one rider and no laterals
9092
if (w.drivers.length > 0 && w.riders.length > 0 && w.laterals.length === 0) {
9193
const ret: ElkModel.Edge[] = [];
92-
i = route(w.drivers, w.riders, i, ret);
94+
route(w.drivers, w.riders, ret);
9395
return ret;
9496
// at least one driver or rider and at least one lateral
9597
} else if (w.drivers.concat(w.riders).length > 0 && w.laterals.length > 0) {
9698
const ret: ElkModel.Edge[] = [];
97-
i = route(w.drivers, w.laterals, i, ret);
98-
i = route(w.laterals, w.riders, i, ret);
99+
route(w.drivers, w.laterals, ret);
100+
route(w.laterals, w.riders, ret);
99101
return ret;
100102
// at least two drivers and no riders
101103
} else if (w.riders.length === 0 && w.drivers.length > 1) {
102104
// create a dummy node and add it to children
103-
const dummyId: string = addDummy(children, dummies);
104-
dummies += 1;
105+
const dummyId: string = addDummy(children);
106+
ElkModel.dummyNum += 1;
105107
const dummyEdges: ElkModel.Edge[] = w.drivers.map((driver) => {
106108
const sourceParentKey: string = driver.parentNode.Key;
107-
const id: string = 'e' + String(i);
108-
i += 1;
109+
const id: string = 'e' + String(ElkModel.edgeIndex);
110+
ElkModel.edgeIndex += 1;
109111
const d: ElkModel.Edge = {
110112
id,
111113
source: sourceParentKey,
@@ -121,12 +123,12 @@ export function buildElkGraph(module: FlatModule): ElkModel.Graph {
121123
// at least one rider and no drivers
122124
} else if (w.riders.length > 1 && w.drivers.length === 0) {
123125
// create a dummy node and add it to children
124-
const dummyId: string = addDummy(children, dummies);
125-
dummies += 1;
126+
const dummyId: string = addDummy(children);
127+
ElkModel.dummyNum += 1;
126128
const dummyEdges: ElkModel.Edge[] = w.riders.map((rider) => {
127129
const sourceParentKey: string = rider.parentNode.Key;
128-
const id: string = 'e' + String(i);
129-
i += 1;
130+
const id: string = 'e' + String(ElkModel.edgeIndex);
131+
ElkModel.edgeIndex += 1;
130132
const edge: ElkModel.Edge = {
131133
id,
132134
source: dummyId,
@@ -143,8 +145,8 @@ export function buildElkGraph(module: FlatModule): ElkModel.Graph {
143145
const sourceParentKey: string = source.parentNode.Key;
144146
const lateralEdges: ElkModel.Edge[] = w.laterals.slice(1).map((lateral) => {
145147
const lateralParentKey: string = lateral.parentNode.Key;
146-
const id: string = 'e' + String(i);
147-
i += 1;
148+
const id: string = 'e' + String(ElkModel.edgeIndex);
149+
ElkModel.edgeIndex += 1;
148150
const edge: ElkModel.Edge = {
149151
id,
150152
source: sourceParentKey,
@@ -167,8 +169,8 @@ export function buildElkGraph(module: FlatModule): ElkModel.Graph {
167169
};
168170
}
169171

170-
function addDummy(children: ElkModel.Cell[], dummyNum: number) {
171-
const dummyId: string = '$d_' + String(dummyNum);
172+
function addDummy(children: ElkModel.Cell[]) {
173+
const dummyId: string = '$d_' + String(ElkModel.dummyNum);
172174
const child: ElkModel.Cell = {
173175
id: dummyId,
174176
width: 0,
@@ -184,14 +186,14 @@ function addDummy(children: ElkModel.Cell[], dummyNum: number) {
184186
return dummyId;
185187
}
186188

187-
function route(sourcePorts, targetPorts, edgeIndex: number, edges: ElkModel.Edge[]): number {
189+
function route(sourcePorts, targetPorts, edges: ElkModel.Edge[]) {
188190
const newEdges: ElkModel.Edge[] = (_.flatMap(sourcePorts, (sourcePort) => {
189191
const sourceParentKey: string = sourcePort.parentNode.key;
190192
const sourceKey: string = sourceParentKey + '.' + sourcePort.key;
191193
return targetPorts.map((targetPort) => {
192194
const targetParentKey: string = targetPort.parentNode.key;
193195
const targetKey: string = targetParentKey + '.' + targetPort.key;
194-
const id: string = 'e' + edgeIndex;
196+
const id: string = 'e' + ElkModel.edgeIndex;
195197
const edge: ElkModel.ExtendedEdge = {
196198
id,
197199
sources: [ sourceKey ],
@@ -201,10 +203,9 @@ function route(sourcePorts, targetPorts, edgeIndex: number, edges: ElkModel.Edge
201203
if (sourcePort.parentNode.type !== '$dff') {
202204
edge.layoutOptions = { 'org.eclipse.elk.layered.priority.direction': 10 };
203205
}
204-
edgeIndex += 1;
206+
ElkModel.edgeIndex += 1;
205207
return edge;
206208
});
207209
}));
208210
edges.push.apply(edges, newEdges);
209-
return edgeIndex;
210211
}

0 commit comments

Comments
 (0)