From 134e3bce4e1da59bd9aaa7aab768df13b2778ca6 Mon Sep 17 00:00:00 2001 From: "D. Berge" Date: Fri, 8 Aug 2025 12:20:04 +0200 Subject: [PATCH] Add client-side support for type 3 bundles (final data) --- .../source/src/lib/deck.gl/DougalSequenceLayer.js | 12 ++++++++++++ lib/www/client/source/src/views/MapLayersMixin.vue | 12 ++++++++++++ lib/www/client/source/src/views/MapTooltipsMixin.vue | 9 +++++++++ 3 files changed, 33 insertions(+) diff --git a/lib/www/client/source/src/lib/deck.gl/DougalSequenceLayer.js b/lib/www/client/source/src/lib/deck.gl/DougalSequenceLayer.js index 1bd0aa5..f899f38 100644 --- a/lib/www/client/source/src/lib/deck.gl/DougalSequenceLayer.js +++ b/lib/www/client/source/src/lib/deck.gl/DougalSequenceLayer.js @@ -81,8 +81,20 @@ class DougalSequenceLayer extends ScatterplotLayer { nofire: d.value20.value[index] >> 4, autofire: d.value20.value[index] & 0xf }; + } else if (d.udv == 3) { + info.object = { + udv: d.udv, + i: d.value0.value[index], + j: d.value1.value[index], + ts: Number(d.value2.value[index]), + εi: d.value3.value[index] / 100, + εj: d.value4.value[index] / 100, + co_i: d.value5.value[index] / 100, + co_j: d.value6.value[index] / 100, + } } else { console.warn(`Unknown udv value ${d.udv}. No picking info`); + info.object = {}; } console.log(`Picked sequence ${info.object.i}, point ${info.object.j}, udv ${info.object.udv}`); } else { diff --git a/lib/www/client/source/src/views/MapLayersMixin.vue b/lib/www/client/source/src/views/MapLayersMixin.vue index d47c38b..9b3ebf1 100644 --- a/lib/www/client/source/src/views/MapLayersMixin.vue +++ b/lib/www/client/source/src/views/MapLayersMixin.vue @@ -472,6 +472,18 @@ export default { }); }, + finalSequencesPointsLayer (options = {}) { + + return new DougalSequenceLayer({ + id: 'seqfp', + data: this.makeDataFromBinary(this.sequenceBinaryDataFinal), + getRadius: 2, + getFillColor: [220, 120, 0, 200], + pickable: true, + ...options + }); + }, + heatmapLayer(options = {}) { const { positions, values } = this.sequenceBinaryData; if (!positions?.length || !values?.length) { diff --git a/lib/www/client/source/src/views/MapTooltipsMixin.vue b/lib/www/client/source/src/views/MapTooltipsMixin.vue index bf2d018..eb800fc 100644 --- a/lib/www/client/source/src/views/MapTooltipsMixin.vue +++ b/lib/www/client/source/src/views/MapTooltipsMixin.vue @@ -139,6 +139,15 @@ export default { html += `F: ${p.fill_μ} ms ±${p.fill_σ} ms (R=${p.fill_R})
\n`; html += `W: ${p.delay_μ} ms ±${p.delay_σ} ms (R=${p.delay_R})
\n`; + return {html, style: this.tooltipDefaultStyle}; + } else if (p.udv == 3) { + // A final points record + + html += `S${p.i.toString().padStart(3, "0")} ${p.j} (final)
\n`; + html += `${new Date(Number(p.ts)).toISOString()}
\n`; + html += `Δi: ${p.εj.toFixed(2)} m / Δj: ${p.εi.toFixed(2)} m (final−preplot)
\n`; + html += `δi: ${p.co_j.toFixed(2)} m / δj: ${p.co_i.toFixed(2)} m (final−raw)
\n`; + return {html, style: this.tooltipDefaultStyle}; } }