
* fix.. speed_limit error... * draw tpms settings. * fix.. traffic light stopping only.. * fix.. waze cam * fix.. waze... * add setting (Enable comma connect ) * auto detect LFA2 * fix.. cruisespeed1 * vff2 driving model. * fix.. * agnos 12.3 * fix.. * ff * ff * test * ff * fix.. drawTurnInfo.. * Update drive_helpers.py * fix.. support eng voice eng sounds fix settings... english fix.. mph.. fix.. roadlimit speed bug.. * new vff model.. 250608 * fix soundd.. * fix safe exit speed.. * fix.. sounds. * fix.. radar timeStep.. * KerryGold model * Update drive_helpers.py * fix.. model. * fix.. * fix.. * Revert "fix.." This reverts commit b09ec459afb855c533d47fd7e8a1a6b1a09466e7. * Revert "fix.." This reverts commit 290bec6b83a4554ca232d531a911edccf94a2156. * fix esim * add more acc table. 10kph * kg update.. * fix cruisebutton mode3 * test atc..cond. * fix.. canfd * fix.. angle control limit
29 lines
1.2 KiB
JavaScript
29 lines
1.2 KiB
JavaScript
const NODE_PADDING = 10;
|
|
const LINE_HEIGHT = 14;
|
|
const canvas = new OffscreenCanvas(0, 0);
|
|
const ctx = canvas.getContext("2d");
|
|
ctx.font = `${LINE_HEIGHT}px sans-serif`;
|
|
|
|
onmessage = (e) => {
|
|
const { graph, additions } = e.data;
|
|
const g = new dagre.graphlib.Graph({ compound: true });
|
|
g.setGraph({ rankdir: "LR" }).setDefaultEdgeLabel(function() { return {}; });
|
|
if (additions.length !== 0) g.setNode("addition", {label:"", style:"fill: rgba(26, 27, 38, 0.5); stroke: none;", padding:0});
|
|
for (const [k, {label, src, color}] of Object.entries(graph)) {
|
|
// adjust node dims by label size + add padding
|
|
let [width, height] = [0, 0];
|
|
for (line of label.split("\n")) {
|
|
width = Math.max(width, ctx.measureText(line).width);
|
|
height += LINE_HEIGHT;
|
|
}
|
|
g.setNode(k, {label, color, width:width+NODE_PADDING*2, height:height+NODE_PADDING*2, padding:NODE_PADDING});
|
|
const edgeCounts = {}
|
|
for (const s of src) edgeCounts[s] = (edgeCounts[s] || 0)+1;
|
|
for (const s of src) g.setEdge(s, k, { label: edgeCounts[s] > 1 ? edgeCounts[s] : null });
|
|
if (additions.includes(parseInt(k))) g.setParent(k, "addition");
|
|
}
|
|
dagre.layout(g);
|
|
postMessage(dagre.graphlib.json.write(g));
|
|
self.close();
|
|
}
|