From 6f4ed05f5c6ae1fe6d629bfbcb279548fe7f10ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gaute=20Fl=C3=A6gstad?= Date: Wed, 24 Sep 2025 13:34:20 +0200 Subject: [PATCH] fix(#5): :bug: better display of distance measurement --- src/measurementsPanel.js | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/measurementsPanel.js b/src/measurementsPanel.js index 5c76af7..88a55ea 100644 --- a/src/measurementsPanel.js +++ b/src/measurementsPanel.js @@ -34,11 +34,6 @@ export function initMeasurementsPanel(viewer){ needsRender = true; } - function markDirty(m){ - const entry = state.get(m.uuid); - if(entry){ entry.dirty = true; needsRender = true; } - } - function collectAttributes(point){ if(!point) return []; const attrs = []; @@ -66,22 +61,28 @@ export function initMeasurementsPanel(viewer){ card.className='mcard'; let body = ''; - for(const pt of points){ - const vec = pt.position || pt; - body += ``; - const attrs = collectAttributes(pt); - for(const [k,v] of attrs){ - body += ``; - } - } - if(points.length>1){ + if(points.length>0){ let total=0; - for(let i=0;i`; + const isDistance = points.length>1; + for(let i=0;i`; + if(!isDistance){ + const attrs = collectAttributes(pt); + for(const [k,v] of attrs){ + body += ``; + } + } + if(i < points.length -1){ + const seg = distance(points[i], points[i+1]); + total += seg; + body += ``; + } + } + if(points.length>1){ + body += ``; } - body += ``; } body += '
${formatNumber(vec.x)}, ${formatNumber(vec.y)}, ${formatNumber(vec.z)}
${k}: ${v}
${formatNumber(seg)}
${formatNumber(vec.x)}, ${formatNumber(vec.y)}, ${formatNumber(vec.z)}
${k}: ${v}
${formatNumber(seg)} m
${formatNumber(total)} m
${formatNumber(total)}
'; card.innerHTML = `