From 1514c98e1a3937709a0d70876fa56ca4f825d6f7 Mon Sep 17 00:00:00 2001 From: franmagn Date: Tue, 28 Oct 2025 18:19:06 +0100 Subject: [PATCH 01/52] refactor(47): :lipstick: remove all unused values from measurement panel pruned the table with all the values related to the point selected, in order to delete all unused and useless attributes while keeping origianl behaviour --- src/MeasurementControl/measurementsPanel.css | 7 ++- src/MeasurementControl/measurementsPanel.js | 46 +++++++++++++++++++- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/src/MeasurementControl/measurementsPanel.css b/src/MeasurementControl/measurementsPanel.css index 96f735f..d5fa999 100644 --- a/src/MeasurementControl/measurementsPanel.css +++ b/src/MeasurementControl/measurementsPanel.css @@ -38,9 +38,14 @@ #measurements_list td { padding: 2px 4px; } -#measurements_list tr:nth-child(even) { +#measurements_list table.measurement_value_table tr.alt-even td { background: #3a454b; } + +/* Fallback: ensure odd rows are neutral unless other row-type rules apply */ +#measurements_list table.measurement_value_table tr.alt-odd td { + background: transparent; +} #measurements_list .coordRow td { background: #2f383d; font-family: monospace; diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index 6b70ac2..28dc3ac 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -231,7 +231,10 @@ export function initMeasurementsPanel(viewer) { function initCoordObserver() { if (!originalPropertiesPanel || coordRoundObserver) return coordRoundObserver = new MutationObserver(() => { - requestAnimationFrame(() => roundCoordinates(originalPropertiesPanel)) + requestAnimationFrame(() => { + roundCoordinates(originalPropertiesPanel) + pruneMeasurementRows(originalPropertiesPanel) + }) }) coordRoundObserver.observe(originalPropertiesPanel, { childList: true, @@ -283,6 +286,47 @@ export function initMeasurementsPanel(viewer) { }) }) } + + // Hide unwanted measurement attribute rows (keep only relevant ones) + function pruneMeasurementRows(rootEl) { + if (!rootEl) rootEl = originalPropertiesPanel + if (!rootEl) return + const tables = rootEl.querySelectorAll('table.measurement_value_table') + if (!tables || tables.length === 0) return + // Labels we want to keep + const keep = new Set(['point source id', 'accepted', 'tvu', 'thu']) + tables.forEach((tbl) => { + // Detect coordinate table (header with th: x y z) and skip pruning for it + const headerRow = tbl.querySelector('tr') + if (headerRow) { + const ths = [...headerRow.querySelectorAll('th')].map((th) => + (th.textContent || '').trim().toLowerCase() + ) + if (ths.length >= 3 && ths[0] === 'x' && ths[1] === 'y' && ths[2] === 'z') { + return + } + } + ;[...tbl.querySelectorAll('tr')].forEach((row) => { + const firstTd = row.querySelector('td') + if (!firstTd) return + const txt = (firstTd.textContent || '').trim().toLowerCase() + if (!keep.has(txt)) { + row.style.display = 'none' + } else { + row.style.display = '' + } + }) + // After hiding rows, reapply alternating classes to visible rows so + // zebra striping remains correct even when some rows are display:none + const visibleRows = [...tbl.querySelectorAll('tr')].filter( + (r) => r.style.display !== 'none' + ) + visibleRows.forEach((r, i) => { + r.classList.remove('alt-even', 'alt-odd') + r.classList.add(i % 2 === 0 ? 'alt-odd' : 'alt-even') + }) + }) + } // Helper to decide if a uuid is a measurement-like object function isMeasurementUUID(uuid) { if (!uuid) return false From d2b1b5857160165a006dfbf547c305592a83edde Mon Sep 17 00:00:00 2001 From: AdrianSolberg Date: Wed, 29 Oct 2025 10:38:00 +0100 Subject: [PATCH 02/52] feat(#15): show compass by default --- src/potreeViewer.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/potreeViewer.js b/src/potreeViewer.js index ad7a0dc..8041580 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -125,6 +125,9 @@ export async function createPotreeViewer( makeGlobeBackgroundOption() + // Show compass + viewer.compass.setVisible(true) + initMeasurementsPanel(viewer) initAnnotationsPanel(viewer) initMiniMap(viewer) From 6f25a4d9498134715aa3eb3dd8d64b69d280647a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Wed, 29 Oct 2025 12:14:51 +0100 Subject: [PATCH 03/52] refactor($48): :lipstick: Made the Accepted filtering more intuitive --- src/AcceptedFiltering/threePanels.css | 16 +++++++++------- src/AcceptedFiltering/threePanels.js | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/AcceptedFiltering/threePanels.css b/src/AcceptedFiltering/threePanels.css index e83b9e6..8dbde01 100644 --- a/src/AcceptedFiltering/threePanels.css +++ b/src/AcceptedFiltering/threePanels.css @@ -128,22 +128,24 @@ align-items: center; margin: 3px 0; font-size: 13px; - color: #ddd; /* visible text */ + color: #ddd; } -/* Color boxes */ +/* Color boxes → now circles */ #accepted_legend .legend-color { - width: 16px; - height: 16px; - border: 1px solid #777; - margin-right: 8px; - border-radius: 2px; + width: 20px; + height: 8px; + border-radius: 4px; /* pill shape */ + margin-left: 6px; } #accepted_legend .legend-color.accepted { background-color: #fff; + border: #0008; + box-shadow: 0 0 4px 1px #fff8; } #accepted_legend .legend-color.not-accepted { background-color: #000; + box-shadow: 0 0 4px 1px #fff8; } diff --git a/src/AcceptedFiltering/threePanels.js b/src/AcceptedFiltering/threePanels.js index 249df0f..e39cf65 100644 --- a/src/AcceptedFiltering/threePanels.js +++ b/src/AcceptedFiltering/threePanels.js @@ -299,12 +299,12 @@ function ensureAcceptedLegend() { legend.style.display = 'none' legend.innerHTML = `
+ Accepted points displayed as:
- Accepted points
+ Not accepted points displayed as:
- Not accepted points
` list.appendChild(legend) From 370755161ef1d9f4551016c84ac96897236c75c8 Mon Sep 17 00:00:00 2001 From: franmagn Date: Wed, 29 Oct 2025 12:21:32 +0100 Subject: [PATCH 04/52] refactor(#47): :lipstick: add Latitude, Longitude and Elevation to the measurement panel --- src/MeasurementControl/measurementsPanel.js | 147 +++++++++++++++++++- 1 file changed, 143 insertions(+), 4 deletions(-) diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index 28dc3ac..1152df6 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -1,3 +1,5 @@ +import { ecef, wgs84 } from '../config.js' + /** * Measurements Panel * Injects a custom Measurements tab section, shows grouped measurement @@ -198,6 +200,8 @@ export function initMeasurementsPanel(viewer) { } requestAnimationFrame(() => { roundCoordinates(originalPropertiesPanel) + insertLatLonRows(originalPropertiesPanel) + pruneMeasurementRows(originalPropertiesPanel) initCoordObserver() }) } @@ -234,6 +238,7 @@ export function initMeasurementsPanel(viewer) { requestAnimationFrame(() => { roundCoordinates(originalPropertiesPanel) pruneMeasurementRows(originalPropertiesPanel) + insertLatLonRows(originalPropertiesPanel) }) }) coordRoundObserver.observe(originalPropertiesPanel, { @@ -294,20 +299,34 @@ export function initMeasurementsPanel(viewer) { const tables = rootEl.querySelectorAll('table.measurement_value_table') if (!tables || tables.length === 0) return // Labels we want to keep - const keep = new Set(['point source id', 'accepted', 'tvu', 'thu']) + const keep = new Set([ + 'point source id', + 'accepted', + 'tvu', + 'thu', + 'latitude', + 'longitude', + 'elevation' + ]) tables.forEach((tbl) => { - // Detect coordinate table (header with th: x y z) and skip pruning for it + // Detect if this table is the coordinates table (header with th: x y z) const headerRow = tbl.querySelector('tr') + let isCoordTable = false if (headerRow) { const ths = [...headerRow.querySelectorAll('th')].map((th) => (th.textContent || '').trim().toLowerCase() ) if (ths.length >= 3 && ths[0] === 'x' && ths[1] === 'y' && ths[2] === 'z') { - return + isCoordTable = true } } + ;[...tbl.querySelectorAll('tr')].forEach((row) => { - const firstTd = row.querySelector('td') + const tds = [...row.querySelectorAll('td')] + // If this is the coordinates table, skip pruning rows that look like + // coordinate rows (they have 3 or more td columns). + if (isCoordTable && tds.length >= 3) return + const firstTd = tds[0] if (!firstTd) return const txt = (firstTd.textContent || '').trim().toLowerCase() if (!keep.has(txt)) { @@ -327,6 +346,126 @@ export function initMeasurementsPanel(viewer) { }) }) } + + // Insert Latitude / Longitude / Elevation rows into the attribute table + function insertLatLonRows(rootEl) { + if (!rootEl) rootEl = originalPropertiesPanel + if (!rootEl) return + const tables = Array.from(rootEl.querySelectorAll('table.measurement_value_table')) + if (!tables.length) return + + // helper to parse numeric strings + const parseNum = (s) => { + if (!s) return null + const cleaned = (s + '').replace(/[^0-9+\-.,]/g, '').replace(/,+/g, '') + return /[-+]?\d*\.?\d+/.test(cleaned) ? Number(cleaned) : null + } + + // Find coord table (header x,y,z) and first data row + let coordTable = null + let coordinateRow = null + for (const tbl of tables) { + const header = tbl.querySelector('tr') + if (!header) continue + const ths = [...header.querySelectorAll('th')].map((t) => (t.textContent || '').trim().toLowerCase()) + if (ths.length >= 3 && ths[0] === 'x' && ths[1] === 'y' && ths[2] === 'z') { + coordTable = tbl + const rows = Array.from(tbl.querySelectorAll('tr')) + for (let i = 0; i < rows.length; i++) { + if (rows[i] === header) { + for (let j = i + 1; j < rows.length; j++) { + const tds = Array.from(rows[j].querySelectorAll('td')) + if (tds.length >= 3) { + const nx = parseNum(tds[0].textContent) + const ny = parseNum(tds[1].textContent) + const nz = parseNum(tds[2].textContent) + if (nx != null && ny != null && nz != null) { + coordinateRow = rows[j] + break + } + } + } + break + } + } + break + } + } + + let x = null, y = null, z = null + if (coordinateRow) { + const tds = Array.from(coordinateRow.querySelectorAll('td')) + x = parseNum(tds[0].textContent) + y = parseNum(tds[1].textContent) + z = parseNum(tds[2].textContent) + } + + // compute lat/lon/elev + let lat = null, lon = null, elev = null + const hasProj4 = (typeof proj4 !== 'undefined') || (typeof window !== 'undefined' && typeof window.proj4 !== 'undefined') + const proj = typeof proj4 !== 'undefined' ? proj4 : (typeof window !== 'undefined' ? window.proj4 : undefined) + if (hasProj4 && typeof ecef !== 'undefined' && typeof wgs84 !== 'undefined' && x != null) { + try { + const res = proj(ecef, wgs84, [x, y, z]) + lon = res[0] + lat = res[1] + elev = res[2] + } catch (_e) {} + } + + // find first attribute-style table + let attrTable = tables.find((t) => Array.from(t.querySelectorAll('tr')).some((r) => r.querySelectorAll('td').length === 2)) || coordTable || tables[0] + + const ids = { lat: 'mp_coord_latitude', lon: 'mp_coord_longitude', elev: 'mp_coord_elevation' } + + const fmt = (v, decimals) => (v == null ? '' : Number(v).toFixed(decimals)) + const latStr = lat != null ? fmt(lat, 4) + '˚' : '' + const lonStr = lon != null ? fmt(lon, 4) + '˚' : '' + const elevStr = elev != null ? fmt(elev, 4) + 'm' : '' + + // Prepare rows (create new ones and update existing ones). We collect + // newly-created rows and insert them as a fragment before the first + // child so they appear at the top in the desired order. + const createRowNode = (id, label, value) => { + const row = document.createElement('tr') + row.id = id + row.className = 'attr-row' + const tdLabel = document.createElement('td') + tdLabel.className = 'property-name' + tdLabel.textContent = label + const tdValue = document.createElement('td') + tdValue.className = 'property-value' + tdValue.textContent = value + row.appendChild(tdLabel) + row.appendChild(tdValue) + return row + } + + const newRows = [] + const entries = [ + { id: ids.lat, label: 'Latitude', value: latStr }, + { id: ids.lon, label: 'Longitude', value: lonStr }, + { id: ids.elev, label: 'Elevation', value: elevStr } + ] + + for (const e of entries) { + const existing = rootEl.querySelector(`#${e.id}`) + if (existing) { + const valTd = existing.querySelector('td:last-child') || existing.querySelectorAll('td')[1] + if (valTd) valTd.textContent = e.value + } else { + newRows.push(createRowNode(e.id, e.label, e.value)) + } + } + + if (newRows.length > 0) { + const tbody = (attrTable.tBodies && attrTable.tBodies[0]) ? attrTable.tBodies[0] : attrTable + const first = tbody.firstElementChild + const frag = document.createDocumentFragment() + for (const r of newRows) frag.appendChild(r) + tbody.insertBefore(frag, first) + } + } // Helper to decide if a uuid is a measurement-like object function isMeasurementUUID(uuid) { if (!uuid) return false From 02fc74b1f69174573a168936d01b41ba9daddcad Mon Sep 17 00:00:00 2001 From: Kleinc Date: Wed, 29 Oct 2025 12:25:35 +0100 Subject: [PATCH 05/52] refactor(#48): :recycle: Make measurements tools more intuitive Write out name of each measurement tool and move measurements and saved positions above appearance --- src/MeasurementControl/measurementsPanel.css | 30 ++++++++++++++ src/MeasurementControl/measurementsPanel.js | 42 +++++++++++++++++++- 2 files changed, 71 insertions(+), 1 deletion(-) diff --git a/src/MeasurementControl/measurementsPanel.css b/src/MeasurementControl/measurementsPanel.css index 96f735f..f22b094 100644 --- a/src/MeasurementControl/measurementsPanel.css +++ b/src/MeasurementControl/measurementsPanel.css @@ -271,3 +271,33 @@ border-top: 1px solid #303a3f; padding-top: 10px; } + +.tool-with-label { + display: flex; + flex-direction: row; + align-items: center; + margin-top: 10px; + cursor: pointer; + border-radius: 4px; +} +.tool-with-label:hover { + box-shadow: 0 0 5px #fff8; +} + +.tool-with-label:hover img { + filter: brightness(1.7); +} + +.tool-with-label:hover .tool-label { + color: #fff; +} + +.tool-label { + font-size: 14px; + margin-top: 2px; + margin-left: 4px; + color: #aaa; + pointer-events: none; +} + + diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index 6b70ac2..9051705 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -29,7 +29,7 @@ export function initMeasurementsPanel(viewer) { panel.appendChild(toolsHostDiv) panel.appendChild(listContainerDiv) // Insert before filters/tools if possible, else append at end - const tools = document.getElementById('menu_tools') + const tools = document.getElementById('menu_appearance') if (tools) { menu.insertBefore(panel, tools) menu.insertBefore(header, panel) @@ -650,6 +650,46 @@ export function initMeasurementsPanel(viewer) { toolsHost.appendChild(existingTools) } + // After tools are moved into `toolsHost` + const toolDescriptions = { + 'angle.png': 'Measure angle', + 'point.svg': 'Add point', + 'distance.svg': 'Measure distance', + 'height.svg': 'Measure height', + 'circle.svg': 'Circle', + 'azimuth.svg': 'Azimuth', + 'area.svg': 'Area', + 'volume.svg': 'Volume', + 'sphere_distances.svg': 'Sphere volume', + 'profile.svg': '2D height profile', + 'reset_tools.svg': 'Remove all' + }; + + const toolIcons = existingTools.querySelectorAll('img'); + toolIcons.forEach(img => { + const src = img.getAttribute('src'); + const file = src.split('/').pop(); // extract icon name + const baseName = file.replace(/\.[^/.]+$/, ''); + + if (toolDescriptions[file]) { + const wrapper = document.createElement('div'); + wrapper.className = 'tool-with-label'; + wrapper.id = `tool-wrapper-${baseName}`; + + wrapper.addEventListener('click', () => img.click()); + + img.parentNode.insertBefore(wrapper, img); + wrapper.appendChild(img); + + const label = document.createElement('span'); + label.className = 'tool-label'; + label.textContent = toolDescriptions[file]; + label.id = `label-${file.replace(/\.[^/.]+$/, '')}`; + wrapper.appendChild(label); + } + }); + + // Move measurement options UI into our tools host if (toolsHost) { const measOptions = document.getElementById('measurement_options_show') From 1aba790259a7e2ac0bdccbf096622c86303012b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Wed, 29 Oct 2025 12:29:42 +0100 Subject: [PATCH 06/52] refactor(#48): :lipstick: Collapsed some panels for a better visual representation --- src/potreeViewer.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/potreeViewer.js b/src/potreeViewer.js index ad7a0dc..1cddfcb 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -58,10 +58,10 @@ export async function createPotreeViewer( viewer.loadGUI(() => { viewer.setLanguage('en') - $('#menu_appearance').next().show() - $('#menu_tools').next().show() - $('#menu_scene').next().show() - $('#menu_filters').next().show() + $('#menu_appearance').next().hide() + $('#menu_tools').next().hide() + $('#menu_scene').next().hide() + $('#menu_filters').next().hide() viewer.toggleSidebar() // Store the last used elevation gradient From 500894b3fd0e95fe926983a901ca82c4af9d7cd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Wed, 29 Oct 2025 12:37:39 +0100 Subject: [PATCH 07/52] refactor(#48): :fire: Remove the menu_filter panel in the sidebar --- src/potreeViewer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/potreeViewer.js b/src/potreeViewer.js index 1cddfcb..86e1d1b 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -61,7 +61,7 @@ export async function createPotreeViewer( $('#menu_appearance').next().hide() $('#menu_tools').next().hide() $('#menu_scene').next().hide() - $('#menu_filters').next().hide() + $('#menu_filters').remove() viewer.toggleSidebar() // Store the last used elevation gradient From c77e6f54ee066be83cd6b58d0bedbfbb2fbf8a42 Mon Sep 17 00:00:00 2001 From: AdrianSolberg Date: Wed, 29 Oct 2025 12:55:02 +0100 Subject: [PATCH 08/52] feat(#50): make menu toggle keyboard accessible --- src/Accessibility/makeMenuTabbable.js | 24 ++++++++++++++++++++++++ src/potreeViewer.js | 3 +++ 2 files changed, 27 insertions(+) create mode 100644 src/Accessibility/makeMenuTabbable.js diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js new file mode 100644 index 0000000..9279af1 --- /dev/null +++ b/src/Accessibility/makeMenuTabbable.js @@ -0,0 +1,24 @@ +/** + * Makes menu tabbable keyboard accessible. + */ +export function makeMenuTabbable() { + makeMenuToggleTabbable(); +} + +/** + * Makes menu toggle tabbable and adds keyboard event listeners. + */ +function makeMenuToggleTabbable() { + const quickButtonsContainer = document.getElementById('potree_quick_buttons'); + if (!quickButtonsContainer) return; + const toggle = quickButtonsContainer.querySelector('.potree_menu_toggle'); + if (toggle) { + toggle.tabIndex = 0; + toggle.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + toggle.click(); + } + }); + } +} \ No newline at end of file diff --git a/src/potreeViewer.js b/src/potreeViewer.js index ad7a0dc..a6f7bf0 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -1,6 +1,7 @@ import { initAnnotationsPanel } from './AnnotationControl/annotationPanel.js' import { initMeasurementsPanel } from './MeasurementControl/measurementsPanel.js' import { initMiniMap } from './MiniMap/miniMap.js' +import { makeMenuTabbable } from './Accessibility/makeMenuTabbable.js' import { initThreePanels, toggleAcceptedLegend @@ -125,6 +126,8 @@ export async function createPotreeViewer( makeGlobeBackgroundOption() + makeMenuTabbable() + initMeasurementsPanel(viewer) initAnnotationsPanel(viewer) initMiniMap(viewer) From 9c0c73d10712f093dff9aa18cfc9d78da5c80235 Mon Sep 17 00:00:00 2001 From: franmagn Date: Wed, 29 Oct 2025 12:55:44 +0100 Subject: [PATCH 09/52] fix(#47): :bug: fix conflict bug with other measurement tools visualization fixed a graphic bug that made not possible to see x,y and z coordinates on other measurement tools sections in the sidebar, and that showed Latitude, Longitude and Elevation in those sections --- src/MeasurementControl/measurementsPanel.js | 107 +++++++++++++++++--- 1 file changed, 94 insertions(+), 13 deletions(-) diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index 1152df6..a64202f 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -8,7 +8,7 @@ import { ecef, wgs84 } from '../config.js' */ export function initMeasurementsPanel(viewer) { // Track last selected measurement label for dynamic data title - const lastSelection = { uuid: null, label: '' } + const lastSelection = { uuid: null, label: '', type: null } // Resolve or create measurements container in Potree menu const existingListContainer = document.getElementById('measurements_list') let targetContainer = existingListContainer @@ -198,6 +198,15 @@ export function initMeasurementsPanel(viewer) { } } } + // Set or remove the mounted marker to run only for + // single-point measurements. + try { + if (lastSelection && lastSelection.type === 'Point') { + originalPropertiesPanel.setAttribute('data-mp-mounted', '1') + } else { + originalPropertiesPanel.removeAttribute('data-mp-mounted') + } + } catch (e) {} requestAnimationFrame(() => { roundCoordinates(originalPropertiesPanel) insertLatLonRows(originalPropertiesPanel) @@ -212,6 +221,7 @@ export function initMeasurementsPanel(viewer) { originalPropertiesPanel, placeholder.nextSibling ) + try { originalPropertiesPanel.removeAttribute('data-mp-mounted') } catch (e) {} } if (targetContainer && targetContainer.children.length === 0) { targetContainer.innerHTML = '' @@ -236,6 +246,11 @@ export function initMeasurementsPanel(viewer) { if (!originalPropertiesPanel || coordRoundObserver) return coordRoundObserver = new MutationObserver(() => { requestAnimationFrame(() => { + // Only run post-processing when the properties panel is mounted into + // our measurements area. + if (!originalPropertiesPanel) return + const mounted = originalPropertiesPanel.getAttribute && originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' + if (!mounted) return roundCoordinates(originalPropertiesPanel) pruneMeasurementRows(originalPropertiesPanel) insertLatLonRows(originalPropertiesPanel) @@ -248,25 +263,43 @@ export function initMeasurementsPanel(viewer) { } function roundCoordinates(rootEl) { + if (!rootEl) rootEl = originalPropertiesPanel if (!rootEl) return + // Only run post-processing when the properties panel is mounted into + // our measurements area. + const mounted = originalPropertiesPanel && originalPropertiesPanel.getAttribute && originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' + if (!mounted) return // Find first table that has a header row with th: x y z const tables = rootEl.querySelectorAll('table.measurement_value_table') let coordTable = null + const looksLikeNumber = (s) => { + if (!s) return false + const cleaned = (s + '').replace(/[^0-9+\-.,eE]/g, '').replace(/,+/g, '') + return /[-+]?\d*\.?\d+(e[-+]?\d+)?/.test(cleaned) + } for (const tbl of tables) { const headerRow = tbl.querySelector('tr') - if (!headerRow) continue - const ths = [...headerRow.querySelectorAll('th')].map((th) => - (th.textContent || '').trim().toLowerCase() - ) - if ( - ths.length >= 3 && - ths[0] === 'x' && - ths[1] === 'y' && - ths[2] === 'z' - ) { - coordTable = tbl - break + let found = false + if (headerRow) { + const ths = [...headerRow.querySelectorAll('th')].map((th) => + (th.textContent || '').trim().toLowerCase() + ) + if (ths.length >= 3 && ths[0] === 'x' && ths[1] === 'y' && ths[2] === 'z') { + coordTable = tbl + break + } + } + // Fallback: detect a row with 3 numeric td cells (some panels use td headers) + const rows = Array.from(tbl.querySelectorAll('tr')) + for (const r of rows) { + const tds = Array.from(r.querySelectorAll('td')) + if (tds.length >= 3 && tds.every((td) => looksLikeNumber(td.textContent))) { + coordTable = tbl + found = true + break + } } + if (found) break } if (!coordTable) return @@ -296,6 +329,10 @@ export function initMeasurementsPanel(viewer) { function pruneMeasurementRows(rootEl) { if (!rootEl) rootEl = originalPropertiesPanel if (!rootEl) return + // Only run post-processing when the properties panel is mounted into + // our measurements area. + const mounted = originalPropertiesPanel && originalPropertiesPanel.getAttribute && originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' + if (!mounted) return const tables = rootEl.querySelectorAll('table.measurement_value_table') if (!tables || tables.length === 0) return // Labels we want to keep @@ -312,6 +349,11 @@ export function initMeasurementsPanel(viewer) { // Detect if this table is the coordinates table (header with th: x y z) const headerRow = tbl.querySelector('tr') let isCoordTable = false + const looksLikeNumber = (s) => { + if (!s) return false + const cleaned = (s + '').replace(/[^0-9+\-.,eE]/g, '').replace(/,+/g, '') + return /[-+]?\d*\.?\d+(e[-+]?\d+)?/.test(cleaned) + } if (headerRow) { const ths = [...headerRow.querySelectorAll('th')].map((th) => (th.textContent || '').trim().toLowerCase() @@ -320,6 +362,16 @@ export function initMeasurementsPanel(viewer) { isCoordTable = true } } + if (!isCoordTable) { + const rows = Array.from(tbl.querySelectorAll('tr')) + for (const r of rows) { + const tds = Array.from(r.querySelectorAll('td')) + if (tds.length >= 3 && tds.every((td) => looksLikeNumber(td.textContent))) { + isCoordTable = true + break + } + } + } ;[...tbl.querySelectorAll('tr')].forEach((row) => { const tds = [...row.querySelectorAll('td')] @@ -351,6 +403,9 @@ export function initMeasurementsPanel(viewer) { function insertLatLonRows(rootEl) { if (!rootEl) rootEl = originalPropertiesPanel if (!rootEl) return + // Only insert Lat/Lon/Elev when the properties panel is explicitly mounted + const mounted = originalPropertiesPanel && originalPropertiesPanel.getAttribute && originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' + if (!mounted) return const tables = Array.from(rootEl.querySelectorAll('table.measurement_value_table')) if (!tables.length) return @@ -390,6 +445,22 @@ export function initMeasurementsPanel(viewer) { } break } + // Fallback: look for a row with 3 numeric tds anywhere in the table + const rows = Array.from(tbl.querySelectorAll('tr')) + for (let j = 0; j < rows.length; j++) { + const tds = Array.from(rows[j].querySelectorAll('td')) + if (tds.length >= 3) { + const nx = parseNum(tds[0].textContent) + const ny = parseNum(tds[1].textContent) + const nz = parseNum(tds[2].textContent) + if (nx != null && ny != null && nz != null) { + coordTable = tbl + coordinateRow = rows[j] + break + } + } + } + if (coordinateRow) break } let x = null, y = null, z = null @@ -489,10 +560,20 @@ export function initMeasurementsPanel(viewer) { if (labelEl) { lastSelection.uuid = uuid lastSelection.label = labelEl.textContent.trim() + // Also store the measurement type (Point/Profile/Area/Height/etc.) + try { + const scene = viewer.scene + const all = [...scene.measurements, ...scene.profiles, ...scene.volumes] + const obj = all.find((o) => o.uuid === uuid) + lastSelection.type = obj ? resolveType(obj) : null + } catch (_e) { + lastSelection.type = null + } } } else { lastSelection.uuid = null lastSelection.label = '' + lastSelection.type = null } } From 090da51d0d189196fb8085be4e987c408df62a6b Mon Sep 17 00:00:00 2001 From: AdrianSolberg Date: Wed, 29 Oct 2025 12:58:37 +0100 Subject: [PATCH 10/52] feat(#50): make minimap keyboard accessible --- src/Accessibility/makeMenuTabbable.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index 9279af1..001a209 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -3,6 +3,7 @@ */ export function makeMenuTabbable() { makeMenuToggleTabbable(); + makeMiniMapTabbable(); } /** @@ -21,4 +22,22 @@ function makeMenuToggleTabbable() { } }); } +} + +/** + * Makes minimap tabbable and adds keyboard event listeners. + */ +function makeMiniMapTabbable() { + const quickButtonsContainer = document.getElementById('potree_quick_buttons'); + if (!quickButtonsContainer) return; + const toggle = quickButtonsContainer.querySelector('#potree_map_toggle'); + if (toggle) { + toggle.tabIndex = 0; + toggle.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + toggle.click(); + } + }); + } } \ No newline at end of file From 8189a4000aaf690f59b950c496743e950c3b24b7 Mon Sep 17 00:00:00 2001 From: AdrianSolberg Date: Wed, 29 Oct 2025 13:02:54 +0100 Subject: [PATCH 11/52] feat(#50): make panels keyboard accessible --- src/Accessibility/makeMenuTabbable.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index 001a209..79502e5 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -2,8 +2,9 @@ * Makes menu tabbable keyboard accessible. */ export function makeMenuTabbable() { - makeMenuToggleTabbable(); - makeMiniMapTabbable(); + makeMenuToggleTabbable() + makeMiniMapTabbable() + makePanelsTabbable() } /** @@ -25,7 +26,7 @@ function makeMenuToggleTabbable() { } /** - * Makes minimap tabbable and adds keyboard event listeners. + * Makes minimap tabbable and keyboard clickable */ function makeMiniMapTabbable() { const quickButtonsContainer = document.getElementById('potree_quick_buttons'); @@ -40,4 +41,23 @@ function makeMiniMapTabbable() { } }); } +} + +/** + * Makes accordion titles tabbable and keyboard clickable + */ +function makePanelsTabbable() { + const menu = document.getElementById('potree_menu'); + if (menu) { + const headers = menu.querySelectorAll('h3'); + headers.forEach((header) => { + header.tabIndex = 0; + header.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + header.click(); + } + }); + }); + } } \ No newline at end of file From ed883b36c35c7f7a9b604d0103eab35b52123a1d Mon Sep 17 00:00:00 2001 From: AdrianSolberg Date: Wed, 29 Oct 2025 13:27:22 +0100 Subject: [PATCH 12/52] feat(#50): make elevation panel keyboard accessible --- src/AcceptedFiltering/threePanels.js | 4 +-- src/Accessibility/makeMenuTabbable.js | 42 +++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/AcceptedFiltering/threePanels.js b/src/AcceptedFiltering/threePanels.js index 249df0f..25de910 100644 --- a/src/AcceptedFiltering/threePanels.js +++ b/src/AcceptedFiltering/threePanels.js @@ -204,11 +204,11 @@ function setUpElevationSlider(hooks) { const update = () => { const low = slider.slider('values', 0) const high = slider.slider('values', 1) - label.textContent = `${low.toFixed(2)} to ${high.toFixed(2)}` + label.textContent = `${Math.round(low)} to ${Math.round(high)}` hooks?.onElevationRangeChange([low, high]) } - slider.slider({ min: -10000, max: 0, values: [-10000, 0] }) + slider.slider({ min: -10000, max: 0, values: [-10000, 0], step: 1 }) slider.off('slide.custom slidestop.custom change.custom') slider.on('slide.custom slidestop.custom change.custom', update) update() diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index 79502e5..b019647 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -5,6 +5,7 @@ export function makeMenuTabbable() { makeMenuToggleTabbable() makeMiniMapTabbable() makePanelsTabbable() + makeElevationControlTabbable() } /** @@ -60,4 +61,45 @@ function makePanelsTabbable() { }); }); } +} + +/** + * Makes elevation control panel tabbable and keyboard clickable + */ +function makeElevationControlTabbable() { + // Make activate elevation control button tabbable and keyboard clickable + const activateButton = document.getElementById('btnDoElevationControl') + if (activateButton) { + activateButton.tabIndex = 0; + activateButton.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + activateButton.click(); + } + }); + } + + // Make gradient clamp, repeat and mirrored repeat buttons tabbable and keyboard clickable + const gradientRadios = document.querySelectorAll('#gradient_repeat_option label'); + gradientRadios.forEach((radio) => { + radio.tabIndex = 0; + radio.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + radio.click(); + } + }); + }); + + // Make gradient schemes tabbable and keyboard clickable + const gradientSpans = document.querySelectorAll('#elevation_gradient_scheme_selection span'); + gradientSpans.forEach((span) => { + span.tabIndex = 0; + span.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + span.click(); + } + }); + }); } \ No newline at end of file From e6c6a30bd11ab5d3bf1a83132f4a1dc1a1c496a5 Mon Sep 17 00:00:00 2001 From: AdrianSolberg Date: Wed, 29 Oct 2025 13:30:05 +0100 Subject: [PATCH 13/52] feat(#50): make accepted filtering keyboard accessible --- src/Accessibility/makeMenuTabbable.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index b019647..7153559 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -6,6 +6,7 @@ export function makeMenuTabbable() { makeMiniMapTabbable() makePanelsTabbable() makeElevationControlTabbable() + makeAcceptedFilteringTabbable() } /** @@ -102,4 +103,20 @@ function makeElevationControlTabbable() { } }); }); +} + +/** + * Makes accepted filtering panel tabbable and keyboard clickable + */ +function makeAcceptedFilteringTabbable() { + const activateButton = document.getElementById('doAcceptedFiltering') + if (activateButton) { + activateButton.tabIndex = 0; + activateButton.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + activateButton.click(); + } + }); + } } \ No newline at end of file From 9e1a69c06cc3ceac8799053a851c10124e907fb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Wed, 29 Oct 2025 13:35:20 +0100 Subject: [PATCH 14/52] feat(#48): :sparkles: Added hide/show button for saved positions --- src/AcceptedFiltering/threePanels.css | 1 + src/AnnotationControl/annotationPanel.css | 81 +++++++++++++-------- src/AnnotationControl/annotationPanel.js | 44 ++++++++++- src/MeasurementControl/measurementsPanel.js | 2 +- 4 files changed, 97 insertions(+), 31 deletions(-) diff --git a/src/AcceptedFiltering/threePanels.css b/src/AcceptedFiltering/threePanels.css index 8dbde01..4acff68 100644 --- a/src/AcceptedFiltering/threePanels.css +++ b/src/AcceptedFiltering/threePanels.css @@ -7,6 +7,7 @@ #btnTHUFilter { display: flex; width: 100%; + justify-content: center; margin: 6px 0 10px; padding: 10px 10px; font-size: 13px; diff --git a/src/AnnotationControl/annotationPanel.css b/src/AnnotationControl/annotationPanel.css index 13a3b2e..484fb8a 100644 --- a/src/AnnotationControl/annotationPanel.css +++ b/src/AnnotationControl/annotationPanel.css @@ -27,8 +27,8 @@ img.button-icon[src$='/annotation.svg'] { padding: 8px; border-radius: 4px; border: 1px solid #404a50; - background: #2f383d; - color: #cfd5d8; + background: #636262; + color: #636262; font-family: inherit; font-size: 12px; line-height: 1.3; @@ -44,10 +44,6 @@ img.button-icon[src$='/annotation.svg'] { margin-top: 6px; } -.annotation-add-button { - margin: 10px 0; -} - .annotation-empty { opacity: 0.6; padding: 10px; @@ -350,37 +346,64 @@ img.button-icon[src$='/annotation.svg'] { flex: 0 0 18px; } + +.pv-menu-list_annotations-panel{ + display: flex; + flex-direction: column; + align-items: center; + overflow: hidden; +} + /* Add button */ .annotation-add-button { - background: linear-gradient(180deg, #f6f6f6 0%, #e9e9e9 100%); - color: #222; - padding: 8px 16px; - min-width: 140px; - height: 38px; display: block; - margin: 12px auto; - border-radius: 6px; + justify-content: center; + width: 80%; + margin: 20px 0 10px; + padding: 10px 10px; font-size: 13px; - font-weight: 700; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset; - border: 1px solid #cfcfcf; - cursor: pointer; - text-align: center; -} -.annotation-add-button .add-label { - color: #222; - font-weight: 700; + font-weight: 500; + background-color: #636262; + color: #ffffff; + border: 1px solid #555; + border-radius: 4px; + cursor: pointer; + transition: + background-color 0.2s ease, + transform 0.1s ease; } + .annotation-add-button:hover { - background: linear-gradient(180deg, #f3f3f3 0%, #e2e2e2 100%); - border-color: #bfbfbf; + background-color: #8f8f8f; } -.annotation-add-button:active { +/* .annotation-add-button:active { transform: translateY(1px); - background: linear-gradient(180deg, #e9e9e9 0%, #dbdbdb 100%); + background: linear-gradient(180deg, #8f8f8f 0%, #8f8f8f 100%); box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.06); +} */ +/* .annotation-add-button:focus { + background-color: #8f8f8f; +} */ + +#labelToggleContainer { margin: 8px 0 6px; padding-left: 4px; } +#labelToggleContainer .labels-legend { font-size: 13px; color: #ddd; margin-bottom: 4px; } + +.toggle-group { + display: flex; + width: 265px; + border: 1px solid black; + border-radius: 4px; + overflow: hidden; } -.annotation-add-button:focus { - outline: 2px solid rgba(100, 100, 100, 0.12); - outline-offset: 2px; +.toggle-group button { + flex: 1; + padding: 6px 15px; + background: #A7A9AA; + color: #3d3c3c; + border: 0; + cursor: pointer; + font-weight: 300; + transition: background .2s; } +.toggle-group button:not(:last-child) { border-right: 1px solid #555; } +.toggle-group button.active { background: #C7C9CA; color: #000; } \ No newline at end of file diff --git a/src/AnnotationControl/annotationPanel.js b/src/AnnotationControl/annotationPanel.js index cffe313..7087f7d 100644 --- a/src/AnnotationControl/annotationPanel.js +++ b/src/AnnotationControl/annotationPanel.js @@ -31,13 +31,14 @@ export function initAnnotationsPanel(viewer) { header.appendChild(headerSpan) const panel = document.createElement('div') - panel.className = 'pv-menu-list annotations-panel' + panel.className = 'pv-menu-list_annotations-panel' const listContainerDiv = document.createElement('div') listContainerDiv.id = 'annotations_list' listContainerDiv.className = 'auto' panel.appendChild(listContainerDiv) + // Insert after measurement panel but before tools, or at end if not found const measurements = document.querySelector('.measurements-panel') if (measurements) { @@ -68,6 +69,47 @@ export function initAnnotationsPanel(viewer) { targetContainer = panel.querySelector('#annotations_list') } } + + // --- Add Show/Hide labels toggle group --- + const panelEl = + targetContainer.closest('.pv-menu-list_annotations-panel') || + targetContainer.parentElement; + + if (!panelEl.querySelector('#labelToggleContainer')) { + const controls = document.createElement('div'); + controls.id = 'labelToggleContainer'; + controls.innerHTML = ` +

Show/Hide saved locations

+
+ + +
+ `; + // Insert before list of annotations + panelEl.insertBefore(controls, targetContainer); + + // show/hide all annotations + const setLabelsVisible = (visible) => { + const cont = document.getElementById('potree_annotation_container'); + if (cont) cont.style.display = visible ? '' : 'none'; + }; + + const showBtn = controls.querySelector('#showLabelsBtn'); + const hideBtn = controls.querySelector('#hideLabelsBtn'); + + showBtn.addEventListener('click', () => { + setLabelsVisible(true); + showBtn.classList.add('active'); + hideBtn.classList.remove('active'); + }); + + hideBtn.addEventListener('click', () => { + setLabelsVisible(false); + hideBtn.classList.add('active'); + showBtn.classList.remove('active'); + }); + } + if (!targetContainer) { console.warn( 'Annotations list container not found and dynamic injection failed' diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index 9051705..d4e9454 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -653,7 +653,7 @@ export function initMeasurementsPanel(viewer) { // After tools are moved into `toolsHost` const toolDescriptions = { 'angle.png': 'Measure angle', - 'point.svg': 'Add point', + 'point.svg': 'Inspect point', 'distance.svg': 'Measure distance', 'height.svg': 'Measure height', 'circle.svg': 'Circle', From 89a736d6f405f7fbb7722fb202d0630429cdebe1 Mon Sep 17 00:00:00 2001 From: AdrianSolberg Date: Wed, 29 Oct 2025 13:36:49 +0100 Subject: [PATCH 15/52] fix(#50): make activate buttons not loose focus on click --- src/Accessibility/makeMenuTabbable.js | 90 ++++++++++++++------------- 1 file changed, 48 insertions(+), 42 deletions(-) diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index 7153559..c969dba 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -13,17 +13,17 @@ export function makeMenuTabbable() { * Makes menu toggle tabbable and adds keyboard event listeners. */ function makeMenuToggleTabbable() { - const quickButtonsContainer = document.getElementById('potree_quick_buttons'); - if (!quickButtonsContainer) return; - const toggle = quickButtonsContainer.querySelector('.potree_menu_toggle'); + const quickButtonsContainer = document.getElementById('potree_quick_buttons') + if (!quickButtonsContainer) return + const toggle = quickButtonsContainer.querySelector('.potree_menu_toggle') if (toggle) { - toggle.tabIndex = 0; + toggle.tabIndex = 0 toggle.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - toggle.click(); + e.preventDefault() + toggle.click() } - }); + }) } } @@ -31,17 +31,17 @@ function makeMenuToggleTabbable() { * Makes minimap tabbable and keyboard clickable */ function makeMiniMapTabbable() { - const quickButtonsContainer = document.getElementById('potree_quick_buttons'); - if (!quickButtonsContainer) return; - const toggle = quickButtonsContainer.querySelector('#potree_map_toggle'); + const quickButtonsContainer = document.getElementById('potree_quick_buttons') + if (!quickButtonsContainer) return + const toggle = quickButtonsContainer.querySelector('#potree_map_toggle') if (toggle) { - toggle.tabIndex = 0; + toggle.tabIndex = 0 toggle.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - toggle.click(); + e.preventDefault() + toggle.click() } - }); + }) } } @@ -49,18 +49,18 @@ function makeMiniMapTabbable() { * Makes accordion titles tabbable and keyboard clickable */ function makePanelsTabbable() { - const menu = document.getElementById('potree_menu'); + const menu = document.getElementById('potree_menu') if (menu) { - const headers = menu.querySelectorAll('h3'); + const headers = menu.querySelectorAll('h3') headers.forEach((header) => { - header.tabIndex = 0; + header.tabIndex = 0 header.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - header.click(); + e.preventDefault() + header.click() } - }); - }); + }) + }) } } @@ -71,38 +71,43 @@ function makeElevationControlTabbable() { // Make activate elevation control button tabbable and keyboard clickable const activateButton = document.getElementById('btnDoElevationControl') if (activateButton) { - activateButton.tabIndex = 0; + activateButton.tabIndex = 0 activateButton.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - activateButton.click(); + e.preventDefault() + activateButton.click() + activateButton.focus() } - }); + }) } // Make gradient clamp, repeat and mirrored repeat buttons tabbable and keyboard clickable - const gradientRadios = document.querySelectorAll('#gradient_repeat_option label'); + const gradientRadios = document.querySelectorAll( + '#gradient_repeat_option label' + ) gradientRadios.forEach((radio) => { - radio.tabIndex = 0; + radio.tabIndex = 0 radio.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - radio.click(); + e.preventDefault() + radio.click() } - }); - }); + }) + }) // Make gradient schemes tabbable and keyboard clickable - const gradientSpans = document.querySelectorAll('#elevation_gradient_scheme_selection span'); + const gradientSpans = document.querySelectorAll( + '#elevation_gradient_scheme_selection span' + ) gradientSpans.forEach((span) => { - span.tabIndex = 0; + span.tabIndex = 0 span.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - span.click(); + e.preventDefault() + span.click() } - }); - }); + }) + }) } /** @@ -111,12 +116,13 @@ function makeElevationControlTabbable() { function makeAcceptedFilteringTabbable() { const activateButton = document.getElementById('doAcceptedFiltering') if (activateButton) { - activateButton.tabIndex = 0; + activateButton.tabIndex = 0 activateButton.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - activateButton.click(); + e.preventDefault() + activateButton.click() + activateButton.focus() } - }); + }) } -} \ No newline at end of file +} From fc1c376ced7ffc06b80ec72b4f7762f5c55427b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Wed, 29 Oct 2025 13:39:45 +0100 Subject: [PATCH 16/52] style: :art: Ran prettier format --- src/AnnotationControl/annotationPanel.css | 29 +++++++--- src/AnnotationControl/annotationPanel.js | 59 ++++++++++---------- src/MeasurementControl/measurementsPanel.css | 8 +-- src/MeasurementControl/measurementsPanel.js | 37 ++++++------ 4 files changed, 70 insertions(+), 63 deletions(-) diff --git a/src/AnnotationControl/annotationPanel.css b/src/AnnotationControl/annotationPanel.css index 484fb8a..d564f91 100644 --- a/src/AnnotationControl/annotationPanel.css +++ b/src/AnnotationControl/annotationPanel.css @@ -346,8 +346,7 @@ img.button-icon[src$='/annotation.svg'] { flex: 0 0 18px; } - -.pv-menu-list_annotations-panel{ +.pv-menu-list_annotations-panel { display: flex; flex-direction: column; align-items: center; @@ -367,7 +366,7 @@ img.button-icon[src$='/annotation.svg'] { color: #ffffff; border: 1px solid #555; border-radius: 4px; - cursor: pointer; + cursor: pointer; transition: background-color 0.2s ease, transform 0.1s ease; @@ -385,8 +384,15 @@ img.button-icon[src$='/annotation.svg'] { background-color: #8f8f8f; } */ -#labelToggleContainer { margin: 8px 0 6px; padding-left: 4px; } -#labelToggleContainer .labels-legend { font-size: 13px; color: #ddd; margin-bottom: 4px; } +#labelToggleContainer { + margin: 8px 0 6px; + padding-left: 4px; +} +#labelToggleContainer .labels-legend { + font-size: 13px; + color: #ddd; + margin-bottom: 4px; +} .toggle-group { display: flex; @@ -398,12 +404,17 @@ img.button-icon[src$='/annotation.svg'] { .toggle-group button { flex: 1; padding: 6px 15px; - background: #A7A9AA; + background: #a7a9aa; color: #3d3c3c; border: 0; cursor: pointer; font-weight: 300; - transition: background .2s; + transition: background 0.2s; +} +.toggle-group button:not(:last-child) { + border-right: 1px solid #555; +} +.toggle-group button.active { + background: #c7c9ca; + color: #000; } -.toggle-group button:not(:last-child) { border-right: 1px solid #555; } -.toggle-group button.active { background: #C7C9CA; color: #000; } \ No newline at end of file diff --git a/src/AnnotationControl/annotationPanel.js b/src/AnnotationControl/annotationPanel.js index 7087f7d..170bd58 100644 --- a/src/AnnotationControl/annotationPanel.js +++ b/src/AnnotationControl/annotationPanel.js @@ -38,7 +38,6 @@ export function initAnnotationsPanel(viewer) { listContainerDiv.className = 'auto' panel.appendChild(listContainerDiv) - // Insert after measurement panel but before tools, or at end if not found const measurements = document.querySelector('.measurements-panel') if (measurements) { @@ -72,42 +71,42 @@ export function initAnnotationsPanel(viewer) { // --- Add Show/Hide labels toggle group --- const panelEl = - targetContainer.closest('.pv-menu-list_annotations-panel') || - targetContainer.parentElement; + targetContainer.closest('.pv-menu-list_annotations-panel') || + targetContainer.parentElement if (!panelEl.querySelector('#labelToggleContainer')) { - const controls = document.createElement('div'); - controls.id = 'labelToggleContainer'; - controls.innerHTML = ` + const controls = document.createElement('div') + controls.id = 'labelToggleContainer' + controls.innerHTML = `

Show/Hide saved locations

- `; - // Insert before list of annotations - panelEl.insertBefore(controls, targetContainer); - - // show/hide all annotations - const setLabelsVisible = (visible) => { - const cont = document.getElementById('potree_annotation_container'); - if (cont) cont.style.display = visible ? '' : 'none'; - }; - - const showBtn = controls.querySelector('#showLabelsBtn'); - const hideBtn = controls.querySelector('#hideLabelsBtn'); - - showBtn.addEventListener('click', () => { - setLabelsVisible(true); - showBtn.classList.add('active'); - hideBtn.classList.remove('active'); - }); - - hideBtn.addEventListener('click', () => { - setLabelsVisible(false); - hideBtn.classList.add('active'); - showBtn.classList.remove('active'); - }); + ` + // Insert before list of annotations + panelEl.insertBefore(controls, targetContainer) + + // show/hide all annotations + const setLabelsVisible = (visible) => { + const cont = document.getElementById('potree_annotation_container') + if (cont) cont.style.display = visible ? '' : 'none' + } + + const showBtn = controls.querySelector('#showLabelsBtn') + const hideBtn = controls.querySelector('#hideLabelsBtn') + + showBtn.addEventListener('click', () => { + setLabelsVisible(true) + showBtn.classList.add('active') + hideBtn.classList.remove('active') + }) + + hideBtn.addEventListener('click', () => { + setLabelsVisible(false) + hideBtn.classList.add('active') + showBtn.classList.remove('active') + }) } if (!targetContainer) { diff --git a/src/MeasurementControl/measurementsPanel.css b/src/MeasurementControl/measurementsPanel.css index f22b094..b931d82 100644 --- a/src/MeasurementControl/measurementsPanel.css +++ b/src/MeasurementControl/measurementsPanel.css @@ -277,7 +277,7 @@ flex-direction: row; align-items: center; margin-top: 10px; - cursor: pointer; + cursor: pointer; border-radius: 4px; } .tool-with-label:hover { @@ -285,7 +285,7 @@ } .tool-with-label:hover img { - filter: brightness(1.7); + filter: brightness(1.7); } .tool-with-label:hover .tool-label { @@ -297,7 +297,5 @@ margin-top: 2px; margin-left: 4px; color: #aaa; - pointer-events: none; + pointer-events: none; } - - diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index d4e9454..3021108 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -663,32 +663,31 @@ export function initMeasurementsPanel(viewer) { 'sphere_distances.svg': 'Sphere volume', 'profile.svg': '2D height profile', 'reset_tools.svg': 'Remove all' - }; + } - const toolIcons = existingTools.querySelectorAll('img'); - toolIcons.forEach(img => { - const src = img.getAttribute('src'); - const file = src.split('/').pop(); // extract icon name - const baseName = file.replace(/\.[^/.]+$/, ''); + const toolIcons = existingTools.querySelectorAll('img') + toolIcons.forEach((img) => { + const src = img.getAttribute('src') + const file = src.split('/').pop() // extract icon name + const baseName = file.replace(/\.[^/.]+$/, '') if (toolDescriptions[file]) { - const wrapper = document.createElement('div'); - wrapper.className = 'tool-with-label'; - wrapper.id = `tool-wrapper-${baseName}`; + const wrapper = document.createElement('div') + wrapper.className = 'tool-with-label' + wrapper.id = `tool-wrapper-${baseName}` - wrapper.addEventListener('click', () => img.click()); + wrapper.addEventListener('click', () => img.click()) - img.parentNode.insertBefore(wrapper, img); - wrapper.appendChild(img); + img.parentNode.insertBefore(wrapper, img) + wrapper.appendChild(img) - const label = document.createElement('span'); - label.className = 'tool-label'; - label.textContent = toolDescriptions[file]; - label.id = `label-${file.replace(/\.[^/.]+$/, '')}`; - wrapper.appendChild(label); + const label = document.createElement('span') + label.className = 'tool-label' + label.textContent = toolDescriptions[file] + label.id = `label-${file.replace(/\.[^/.]+$/, '')}` + wrapper.appendChild(label) } - }); - + }) // Move measurement options UI into our tools host if (toolsHost) { From 1ead61bbe4ffd16a281588d0ea260eaf8749a2c7 Mon Sep 17 00:00:00 2001 From: Kleinc Date: Wed, 29 Oct 2025 14:03:57 +0100 Subject: [PATCH 17/52] style(#48): :lipstick: Fix spacing in elevation control --- src/AcceptedFiltering/threePanels.css | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/AcceptedFiltering/threePanels.css b/src/AcceptedFiltering/threePanels.css index 4acff68..95b812e 100644 --- a/src/AcceptedFiltering/threePanels.css +++ b/src/AcceptedFiltering/threePanels.css @@ -150,3 +150,11 @@ background-color: #000; box-shadow: 0 0 4px 1px #fff8; } + +#gradient_repeat_option fieldset { + margin: 15px 0px 12px 0px !important; +} + +#gradient_repeat_option fieldset legend { + margin: 0px 0px 5px 0px !important; +} From 926a95ba6143809ccffe40037b8f0afca5601df8 Mon Sep 17 00:00:00 2001 From: Alicia Westad Rasmussen Date: Wed, 29 Oct 2025 14:21:08 +0100 Subject: [PATCH 18/52] Co-authored-by: klein2303 --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/README.md b/README.md index 7b38baf..5b80ae5 100644 --- a/README.md +++ b/README.md @@ -63,3 +63,62 @@ Then in a new terminal run the tests: ```bash npm run test ``` + + +## Purpose + +## Functionalities +### Moving the viewpoint +Left click and hold anywhere on the screen, while moving the mouse or use a second finger on the touchpad to dynamically move the viewpoint. By doing this you can tilt and rotate the viewpoint. + +### Zoom +To zoom in and out the user can either: +1. Utilize the scroll wheel on a mouse. +2. Drag two fingers on the touchpad towards each other or away from each other. + +### Move +To move within the application, double click on a point and you will automatically be moved to that point. +If you want to move across larger distances, for example look at a point from a different point cloud, it is recommended to zoom out first and then choose a point closer to where you want to be positioned. +###Coordinates +In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most resent point the user has clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the surface level. + +### Menu Bar +The icon of three vertical lines stacked in the top left corner show and collapses the sidebar where most of the functionalities are located. + +### Minimap +The map icon below the menu bar icon in the top left corner, will show and collapse a minimap. +In the minimap you can zoom using the mouse, touchpad or the icons in the top left corner. +You can move around by clicking and moving the mouse around simultaneously. + +### Points +Points can be saved by clicking on the icon in the image below in the Measurements tab, then clicking on the point in the point cloud. +A point will show up under list of measurements and points in a list. +XYZ values ask Klein +The x y z coordinates at the top are Earth Cantered Earth Fixed(ECEF) coordinates, EPSG 4978. +The data for each point in the table below is: latitude and longitude in degrees, elevation measured from the sea level, point source, accepted status, Total Vertical Uncertainty(TVU) and Total Horizontal Uncertainty(THU). +To delete a point, click on the red x to the right of the point in the List of measurements. +There is added toggle functionality below the list of points to hide and show all point labels on the point cloud, see image below. + +### Annotations +Annotations can be created under the Saved Locations section in the side bar. Click the Add a location button, then click on a point in the point cloud. As you hover over points in the point cloud, there should be an annotation label above the cursor to confirm that you can choose a point now. +The annotation will be added to a list below the add a location button upon creation. +There are three icons on the annotation. The pen icon allows you to rename the annotation, the arrow icon allows you to lerp to the annotation from anywhere on the map and the red x icon will delete the annotation. +When pressing the annotation text on the saved annotation, you can add a description by clicking the pen icon to the right of Annotation Description. The point coordinates and the camera coordinates will be displayed below the annotation description. +There is added toggle functionality below the list of annotations to hide and show all annotation labels on the point cloud, see image below. + +### Compass +Under Tools in the menu bar, there is a compass icon that will display a compass in the top right corner when you press it. Collapse it by clicking once more on the compass icon in the menu bar. + +### Colour scale +There are nine different gradient schemes to choose from under the Elevation Control tab. You change the colour scale for all the point clouds by clicking them. + +### Elevation Control +Elevation control applies gradient based on the elevation of the data points, and can be adjusted on the elevation range slider under the elevation control tab. + +### Height Profile +Under Measurements in the menu bar there is functionality to create a height profile. Click the 2D height profile icon showed in the image below. Now you can click on the desired points in the point cloud. The order you click on the points matter, start with clicking on the first point you want to show up in the diagram, move to the second point and so on. When you have clicked on all the points you want to include, you can right click anywhere in the point cloud to exit this add point mode. Go back to the menu bar, the points will be saved under List of Measurements for the profile you made. Display the height profile by clicking the show 2d profile button at the bottom of the measurements section. If nothing shows up, make sure that your desired profile is selected first under list of measurements and profile, by clicking on it. When you chow the height profile, you can hover over the 2D profile and see a marker in the point cloud move, visualizing where the points are taken from. Collapse the height profile by clicking at the black x in the top right corner of the pop-up window. + +### Filtering for accepted points +Under the Accepted Filter tab in the menu bar there is a button for Activate accepted filter. When pressing this button, all the points in the point clouds will be displayed as either black: for not accepted or white: for accepted. The acceptance data of a point is an attribute that shows whether the point is accepted as part of the seabed. +To display the point cloud with colour again, go to the elevation control tab and press the activate elevation control button. + From b4760062921e2e0b12ae6de41729b9ad3e250ced Mon Sep 17 00:00:00 2001 From: Kleinc Date: Wed, 29 Oct 2025 14:37:18 +0100 Subject: [PATCH 19/52] refactor(#53): :recycle: Change inital target position --- src/potreeViewer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/potreeViewer.js b/src/potreeViewer.js index 8041580..e710bd3 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -136,7 +136,7 @@ export async function createPotreeViewer( // Initialize camera position and target point (manually chosen) viewer.scene.view.setView( [4094989.813, 59057.337, 8363694.681], // Initial camera position - [1500922.651, 510673.03, 5427934.722] // Initial target point + [1821061.22, 266704.21, 6084038.77] // Initial target point ) return viewer From be4bf5f81a30dbfacebe45a99bf96f865004f71c Mon Sep 17 00:00:00 2001 From: Kleinc Date: Wed, 29 Oct 2025 14:45:54 +0100 Subject: [PATCH 20/52] style(#48): :lipstick: Remove unecessary lines and code commented out --- src/AnnotationControl/annotationPanel.css | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/AnnotationControl/annotationPanel.css b/src/AnnotationControl/annotationPanel.css index d564f91..f250dba 100644 --- a/src/AnnotationControl/annotationPanel.css +++ b/src/AnnotationControl/annotationPanel.css @@ -356,7 +356,6 @@ img.button-icon[src$='/annotation.svg'] { /* Add button */ .annotation-add-button { display: block; - justify-content: center; width: 80%; margin: 20px 0 10px; padding: 10px 10px; @@ -375,14 +374,6 @@ img.button-icon[src$='/annotation.svg'] { .annotation-add-button:hover { background-color: #8f8f8f; } -/* .annotation-add-button:active { - transform: translateY(1px); - background: linear-gradient(180deg, #8f8f8f 0%, #8f8f8f 100%); - box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.06); -} */ -/* .annotation-add-button:focus { - background-color: #8f8f8f; -} */ #labelToggleContainer { margin: 8px 0 6px; @@ -411,9 +402,11 @@ img.button-icon[src$='/annotation.svg'] { font-weight: 300; transition: background 0.2s; } + .toggle-group button:not(:last-child) { border-right: 1px solid #555; } + .toggle-group button.active { background: #c7c9ca; color: #000; From d51c4aa642dc71ba2b873ccf409452d1a72dfe6a Mon Sep 17 00:00:00 2001 From: AdrianSolberg Date: Wed, 29 Oct 2025 14:48:40 +0100 Subject: [PATCH 21/52] feat(#50): make appearance panel keyboard accessible --- src/Accessibility/makeMenuTabbable.js | 80 +++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 5 deletions(-) diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index c969dba..7e641da 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -7,6 +7,7 @@ export function makeMenuTabbable() { makePanelsTabbable() makeElevationControlTabbable() makeAcceptedFilteringTabbable() + makeAppearancePanelTabbable() } /** @@ -82,15 +83,15 @@ function makeElevationControlTabbable() { } // Make gradient clamp, repeat and mirrored repeat buttons tabbable and keyboard clickable - const gradientRadios = document.querySelectorAll( + const gradientButtons = document.querySelectorAll( '#gradient_repeat_option label' ) - gradientRadios.forEach((radio) => { - radio.tabIndex = 0 - radio.addEventListener('keydown', (e) => { + gradientButtons.forEach((label) => { + label.tabIndex = 0 + label.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault() - radio.click() + label.click() } }) }) @@ -126,3 +127,72 @@ function makeAcceptedFilteringTabbable() { }) } } + +/** + * Makes appearance panel tabbable and keyboard clickable + */ +function makeAppearancePanelTabbable() { + // Make EDL checkbox tabbable and keyboard clickable + const edlCheckbox = document.getElementById('chkEDLEnabled'); + if (edlCheckbox) { + edlCheckbox.tabIndex = 0 + edlCheckbox.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + edlCheckbox.click(); + } + }); + } + + // Make background buttons tabbable and keyboard clickable + const backgroundButtons = document.querySelectorAll( + '#background_options label' + ) + backgroundButtons.forEach((label) => { + label.tabIndex = 0 + label.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + label.click() + } + }) + }) + + // Make splat quality buttons tabbable and keyboard clickable + const splatQualityButtons = document.querySelectorAll( + '#splat_quality_options label' + ) + splatQualityButtons.forEach((label) => { + label.tabIndex = 0 + label.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + label.click() + } + }) + }) + + // Make box checkbox tabbable and keyboard clickable + const boxCheckbox = document.getElementById('show_bounding_box'); + if (boxCheckbox) { + boxCheckbox.tabIndex = 0 + boxCheckbox.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + boxCheckbox.click(); + } + }); + } + + // Make lock view checkbox tabbable and keyboard clickable + const lockViewCheckBox = document.getElementById('set_freeze'); + if (lockViewCheckBox) { + lockViewCheckBox.tabIndex = 0 + lockViewCheckBox.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + lockViewCheckBox.click(); + } + }); + } +} From a3c4875f465193e6807898900d033dd67aa87c84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Thu, 30 Oct 2025 11:09:15 +0100 Subject: [PATCH 22/52] fix(#46): :bug: Fixed display bug (I think) --- src/AcceptedFiltering/threePanels.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/AcceptedFiltering/threePanels.js b/src/AcceptedFiltering/threePanels.js index 249df0f..0b751ee 100644 --- a/src/AcceptedFiltering/threePanels.js +++ b/src/AcceptedFiltering/threePanels.js @@ -88,7 +88,7 @@ function ensurePanelScaffold(listId) { * @param {'elevation'|'accepted'} key */ function showOnly(key) { - const elevBody = byId('elevation2_list')?.querySelector('.panel-body') + const elevBody = byId('elevation_list')?.querySelector('.panel-body') const accBody = byId('accepted_list_host')?.querySelector('.panel-body') if (elevBody) elevBody.style.display = key === 'elevation' ? '' : 'none' @@ -150,7 +150,7 @@ function selectCloudNode(hooks) { * @param {number} pollEvery * @returns {Promise} */ -async function waitForOrPoll(id, softMs = 1400, pollEvery = 120) { +async function waitForOrPoll(id, softMs = 1400, pollEvery = 10) { const start = performance.now() while (performance.now() - start < softMs) { const el = byId(id) @@ -168,9 +168,9 @@ function createElevationPanel() { insertSection({ headerId: 'menu_elevation', headerText: 'Elevation Control', - listId: 'elevation2_list' + listId: 'elevation_list' }) - ensurePanelScaffold('elevation2_list') + ensurePanelScaffold('elevation_list') } /** @@ -178,7 +178,7 @@ function createElevationPanel() { * @param {{onActivateElevation?:Function}} hooks */ function ensureElevationButton(hooks) { - const { btns } = ensurePanelScaffold('elevation2_list') + const { btns } = ensurePanelScaffold('elevation_list') if (!btns || byId('btnDoElevationControl')) return const btn = document.createElement('button') @@ -219,7 +219,7 @@ function setUpElevationSlider(hooks) { * @returns {boolean} true if moved or already in place */ function moveElevationContainer(hooks) { - const { body } = ensurePanelScaffold('elevation2_list') + const { body } = ensurePanelScaffold('elevation_list') const src = byId('materials.elevation_container') if (!body || !src) return false @@ -228,6 +228,7 @@ function moveElevationContainer(hooks) { setUpElevationSlider(hooks) accordionRefresh() } + src.style.removeProperty('display') return true } @@ -412,7 +413,7 @@ function attachSelfHealing(activeGetter, hooks) { const mode = activeGetter() if (mode === 'elevation') { const src = byId('materials.elevation_container') - const { body } = ensurePanelScaffold('elevation2_list') + const { body } = ensurePanelScaffold('elevation_list') if (src && body && src.parentNode !== body) moveElevationContainer(hooks) } }) From a016ed7ae0c564fb1a19bafaeb99bd030eb4452d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Thu, 30 Oct 2025 12:45:43 +0100 Subject: [PATCH 23/52] refactor(#48): :truck: Updated elevation and acepted code to be more descriptic --- index.html | 2 +- .../threePanels.css => Filter/filter.css} | 48 +++++-------------- .../threePanels.js => Filter/filter.js} | 13 +++-- src/potreeViewer.js | 4 +- 4 files changed, 22 insertions(+), 45 deletions(-) rename src/{AcceptedFiltering/threePanels.css => Filter/filter.css} (75%) rename src/{AcceptedFiltering/threePanels.js => Filter/filter.js} (96%) diff --git a/index.html b/index.html index 2f98510..2c4e868 100644 --- a/index.html +++ b/index.html @@ -39,7 +39,7 @@ href="/src/MeasurementControl/measurementsPanel.css" /> - + diff --git a/src/AcceptedFiltering/threePanels.css b/src/Filter/filter.css similarity index 75% rename from src/AcceptedFiltering/threePanels.css rename to src/Filter/filter.css index e83b9e6..8f7b24c 100644 --- a/src/AcceptedFiltering/threePanels.css +++ b/src/Filter/filter.css @@ -1,10 +1,7 @@ /* ---------- Buttons (shared look) ---------- */ /* Reuse your accepted button style for all four */ #btnDoElevationControl, -#doAcceptedFiltering, -#btnTHU, -#btnTVU, -#btnTHUFilter { +#doAcceptedFiltering { display: flex; width: 100%; margin: 6px 0 10px; @@ -22,55 +19,34 @@ } #btnDoElevationControl:hover, -#doAcceptedFiltering:hover, -#btnTHU:hover, -#btnTVU:hover, -#btnTHUFilter:hover { +#doAcceptedFiltering:hover { background-color: #8f8f8f; } #btnDoElevationControl:active, -#doAcceptedFiltering:active, -#btnTHU:active, -#btnTVU:active, -#btnTHUFilter:active { +#doAcceptedFiltering:active { transform: scale(0.97); background-color: #a8a6a6; } /* Optional: “active mode” outline if you toggle a class via JS */ #btnDoElevationControl.active, -#doAcceptedFiltering.active, -#btnTHU.active, -#btnTVU.active, -#btnTHUFilter:active { +#doAcceptedFiltering.active{ outline: 2px solid #7ba8ff; outline-offset: 1px; } -/* THU/TVU side-by-side */ -#thu_tvu_list .thu-tvu-row { - display: flex; - gap: 6px; -} -#thu_tvu_list .thu-tvu-row > button { - flex: 1 1 50%; - margin: 0; -} - /* ---------- Panels / moved containers ---------- */ /* Keep Potree’s moved subtrees neat and full-width inside our panels */ -#elevation2_list [id='materials.elevation_container'], -#thu_tvu_list [id='materials.extra_container'] { +#elevation_list [id='materials.elevation_container']{ width: 100%; box-sizing: border-box; padding: 6px 8px; /* small breathing room since we moved it out of Appearance */ } /* Slight spacing inside our panel lists (under the button) */ -#elevation2_list, -#accepted_list_host, -#thu_tvu_list { +#elevation_list, +#accepted_list_host{ display: block; padding: 4px 0; } @@ -101,16 +77,14 @@ /* ---------- Accordions / headers (light touch) ---------- */ /* Don’t fight jQuery-UI’s theme. Just small spacing adjustments. */ -#menu_elevation2 + .pv-menu-list, -#menu_accepted + .pv-menu-list, -#menu_thu_tvu + .pv-menu-list { +#menu_elevation + .pv-menu-list, +#menu_accepted + .pv-menu-list{ padding-top: 6px; } /* Optional: header label color alignment with dark UI */ -#menu_elevation2 span, -#menu_accepted span, -#menu_thu_tvu span { +#menu_elevation span, +#menu_accepted span { color: #e6e6e6; font-weight: 600; letter-spacing: 0.2px; diff --git a/src/AcceptedFiltering/threePanels.js b/src/Filter/filter.js similarity index 96% rename from src/AcceptedFiltering/threePanels.js rename to src/Filter/filter.js index 0b751ee..3bbfd08 100644 --- a/src/AcceptedFiltering/threePanels.js +++ b/src/Filter/filter.js @@ -1,7 +1,10 @@ -// Three Potree sidebar sections with buttons + panel bodies: -// • Elevation → moves #materials.elevation_container into our Elevation body -// • Accepted → custom UI fully defined here (no external module) - +/** Two Potree sidebar sections with buttons + panel bodies: + * + * • Elevation → moves #materials.elevation_container into our Elevation body + * Used for controlling the elevation gradient with a slider and altering between different gradient schemes + * • Accepted → custom UI fully defined here (no external module) + * Used for indicating which points/surveys are accepted as the seabed and which are not +*/ const byId = (id) => document.getElementById(id) /** @@ -427,7 +430,7 @@ function attachSelfHealing(activeGetter, hooks) { * @param {object} viewer Potree viewer (not used directly here but available to hooks) * @param {{onActivateElevation?:Function, onActivateAccepted?:Function, selectCloudOnce?:Function, onElevationRangeChange?:Function}} hooks */ -export function initThreePanels(viewer, hooks = {}) { +export function initFilterPanels(viewer, hooks = {}) { // Build sections initElevationControls(hooks) initAcceptedControlsInline(hooks) diff --git a/src/potreeViewer.js b/src/potreeViewer.js index 8041580..bfe1736 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -4,7 +4,7 @@ import { initMiniMap } from './MiniMap/miniMap.js' import { initThreePanels, toggleAcceptedLegend -} from './AcceptedFiltering/threePanels.js' +} from './Filter/filter.js' import { ecef } from './config.js' /** @@ -90,7 +90,7 @@ export async function createPotreeViewer( }) } - initThreePanels(viewer, { + initFilterPanels(viewer, { onActivateElevation: () => { const $ = window.jQuery || window.$ const slider = $ ? $('#sldHeightRange') : null From 02f7d20e6cb399d8b49c122eb42eddb8cfc86b99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Thu, 30 Oct 2025 12:47:45 +0100 Subject: [PATCH 24/52] refactor: :adhesive_bandage: One file name changes --- src/potreeViewer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/potreeViewer.js b/src/potreeViewer.js index bfe1736..876c007 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -2,7 +2,7 @@ import { initAnnotationsPanel } from './AnnotationControl/annotationPanel.js' import { initMeasurementsPanel } from './MeasurementControl/measurementsPanel.js' import { initMiniMap } from './MiniMap/miniMap.js' import { - initThreePanels, + initFilterPanels, toggleAcceptedLegend } from './Filter/filter.js' import { ecef } from './config.js' From 087cefd49075041324c9bbb5f208079ed1865c74 Mon Sep 17 00:00:00 2001 From: franmagn Date: Thu, 30 Oct 2025 12:47:47 +0100 Subject: [PATCH 25/52] feat(#47): add label for each measurement tool placed on the pointcloud on the globe add a simple label with the name of the measured object, taken from the sidebar measurement list. It automatically gets removed once the measured object is removed, and it moves with the moving of the points. --- src/MeasurementControl/measurementsPanel.js | 151 ++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index d8c59c0..e8766bd 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -66,6 +66,22 @@ export function initMeasurementsPanel(viewer) { let listRoot = document.createElement('div') listRoot.id = 'measurement_items' listRoot.className = 'measurement-items-root' + // Overlay container for on-canvas measurement labels (Point #N) + const renderArea = document.getElementById('potree_render_area') + let overlay = null + const overlayMap = new Map() // uuid -> label element + if (renderArea) { + overlay = document.createElement('div') + overlay.id = 'measurement_label_overlay' + overlay.style.position = 'absolute' + overlay.style.left = '0' + overlay.style.top = '0' + overlay.style.width = '100%' + overlay.style.height = '100%' + overlay.style.pointerEvents = 'none' + overlay.style.zIndex = '2000' + renderArea.appendChild(overlay) + } const listDivider = document.createElement('div') listDivider.className = 'divider' const dividerSpan = document.createElement('span') @@ -103,6 +119,113 @@ export function initMeasurementsPanel(viewer) { return indexMap } + // Project a THREE.Vector3 (or [x,y,z]) into screen coords using viewer + function projectToScreen(pos) { + try { + const THREE = window.THREE || globalThis.THREE + let vec3 = null + if (!pos) return null + if (Array.isArray(pos) && pos.length >= 3) vec3 = new THREE.Vector3(pos[0], pos[1], pos[2]) + else if (pos.isVector3) vec3 = pos.clone() + else if (pos.position && pos.position.isVector3) vec3 = pos.position.clone() + else if (pos.x !== undefined && pos.y !== undefined && pos.z !== undefined) vec3 = new THREE.Vector3(pos.x, pos.y, pos.z) + if (!vec3) return null + // choose camera + const cam = (viewer.scene && typeof viewer.scene.getActiveCamera === 'function') ? viewer.scene.getActiveCamera() : (viewer.scene && viewer.scene.camera) || viewer.scene.cameraP || null + if (!cam) return null + vec3.project(cam) + // renderer canvas + const canvas = (viewer && viewer.renderer && viewer.renderer.domElement) || document.querySelector('#potree_render_area canvas') + if (!canvas) return null + const w = canvas.clientWidth || canvas.width + const h = canvas.clientHeight || canvas.height + const x = (vec3.x * 0.5 + 0.5) * w + const y = (-vec3.y * 0.5 + 0.5) * h + // check if behind camera + const visible = vec3.z < 1 + return { x, y, visible } + } catch (e) { + return null + } + } + + // Return a representative 3D position for a measurement-like object. + // For single-point measurements we return that point; for multi-point + // measurements we return the centroid of all point positions. + function getMeasurementRepresentativePosition(o) { + try { + const THREE = window.THREE || globalThis.THREE + if (!o || !o.points || o.points.length === 0) return null + if (o.points.length === 1) { + return o.points[0].position || o.points[0] + } + const v = new THREE.Vector3(0, 0, 0) + let count = 0 + for (const pt of o.points) { + const p = pt.position || pt + if (!p) continue + v.x += p.x + v.y += p.y + v.z += p.z + count++ + } + if (count === 0) return null + v.x /= count + v.y /= count + v.z /= count + return v + } catch (e) { + return null + } + } + + // Create or update an on-canvas label for a measurement object + function createOrUpdateMeasurementCanvasLabel(measurement, labelText) { + if (!overlay || !measurement || !measurement.uuid) return null + let lbl = overlayMap.get(measurement.uuid) + if (!lbl) { + lbl = document.createElement('div') + lbl.className = 'measurement-canvas-label' + lbl.style.position = 'absolute' + lbl.style.transform = 'translate(-50%, -100%)' + lbl.style.pointerEvents = 'none' + lbl.style.color = 'white' + lbl.style.fontWeight = 'bold' + lbl.style.textShadow = '0 0 4px rgba(0,0,0,0.9)' + lbl.style.fontSize = '12px' + overlay.appendChild(lbl) + overlayMap.set(measurement.uuid, lbl) + } + lbl.textContent = labelText || '' + return lbl + } + + function updateOverlayPositions() { + if (!overlay) return + for (const [uuid, el] of overlayMap.entries()) { + try { + const scene = viewer.scene + const all = [...scene.measurements, ...scene.profiles, ...scene.volumes] + const obj = all.find((o) => o.uuid === uuid) + if (!obj) { + el.style.display = 'none' + continue + } + // Get a representative position (centroid or first point) + const rep = getMeasurementRepresentativePosition(obj) + const pos = projectToScreen(rep) + if (!pos || !pos.visible) { + el.style.display = 'none' + } else { + el.style.display = '' + el.style.transform = `translate(${Math.round(pos.x)}px, ${Math.round(pos.y)}px)` + } + } catch (e) { + // ignore + } + } + } + const TYPE_ICONS = { Point: '●', Distance: '﹔', @@ -666,6 +789,13 @@ export function initMeasurementsPanel(viewer) { row.appendChild(labelSpan) row.appendChild(delBtn) body.appendChild(row) + + // If this measurement has one or more points, create/update an overlay + // label so the measurement name is visible on the canvas. We use the + // sidebar label so the on-canvas label matches the list. + if (overlay && m.points && m.points.length > 0) { + createOrUpdateMeasurementCanvasLabel(m, labelSpan.textContent || baseName) + } }) countSpan.textContent = groups.get(type).length }) @@ -693,6 +823,19 @@ export function initMeasurementsPanel(viewer) { showPanelInMeasurements() } } + // Cleanup overlay labels for removed measurements and update positions + try { + // remove overlay labels for uuids that no longer exist + const known = new Set(itemsRaw.map((it) => it.obj.uuid)) + for (const k of Array.from(overlayMap.keys())) { + if (!known.has(k)) { + const el = overlayMap.get(k) + if (el && el.parentElement) el.parentElement.removeChild(el) + overlayMap.delete(k) + } + } + updateOverlayPositions() + } catch (e) {} } rebuildMeasurementList() @@ -814,6 +957,14 @@ export function initMeasurementsPanel(viewer) { } }) + // Update overlay positions when camera moves or window resizes + try { + if (viewer && typeof viewer.addEventListener === 'function') { + viewer.addEventListener('camera_changed', () => requestAnimationFrame(updateOverlayPositions)) + } + } catch (e) {} + window.addEventListener('resize', () => requestAnimationFrame(updateOverlayPositions)) + // Click handling for selection, focus and delete listRoot.addEventListener('click', (e) => { const header = e.target.closest('.m-group-header') From dbc178233a895b3c0dce2e8f4d57b4ec4a534157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Thu, 30 Oct 2025 12:51:20 +0100 Subject: [PATCH 26/52] style: :art: Ran prettier --- src/potreeViewer.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/potreeViewer.js b/src/potreeViewer.js index 876c007..d14378e 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -1,10 +1,7 @@ import { initAnnotationsPanel } from './AnnotationControl/annotationPanel.js' import { initMeasurementsPanel } from './MeasurementControl/measurementsPanel.js' import { initMiniMap } from './MiniMap/miniMap.js' -import { - initFilterPanels, - toggleAcceptedLegend -} from './Filter/filter.js' +import { initFilterPanels, toggleAcceptedLegend } from './Filter/filter.js' import { ecef } from './config.js' /** @@ -85,7 +82,7 @@ export async function createPotreeViewer( // Helper function to update all point clouds for Accepted filtering function updateAllCloudsAccepted(gradientName) { pointclouds.forEach((pc) => { - pc.material.activeAttributeName = 'Accepted' + pc.material.activeAttributeName = 'accepted' pc.material.gradient = Potree.Gradients[gradientName] }) } From 3d90cb340cdb46ac5f094d31fd7944a49bcec326 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Thu, 30 Oct 2025 12:52:01 +0100 Subject: [PATCH 27/52] style(#46): :art: Ran prettier --- src/Filter/filter.css | 8 ++++---- src/Filter/filter.js | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Filter/filter.css b/src/Filter/filter.css index 8f7b24c..be09a06 100644 --- a/src/Filter/filter.css +++ b/src/Filter/filter.css @@ -31,14 +31,14 @@ /* Optional: “active mode” outline if you toggle a class via JS */ #btnDoElevationControl.active, -#doAcceptedFiltering.active{ +#doAcceptedFiltering.active { outline: 2px solid #7ba8ff; outline-offset: 1px; } /* ---------- Panels / moved containers ---------- */ /* Keep Potree’s moved subtrees neat and full-width inside our panels */ -#elevation_list [id='materials.elevation_container']{ +#elevation_list [id='materials.elevation_container'] { width: 100%; box-sizing: border-box; padding: 6px 8px; /* small breathing room since we moved it out of Appearance */ @@ -46,7 +46,7 @@ /* Slight spacing inside our panel lists (under the button) */ #elevation_list, -#accepted_list_host{ +#accepted_list_host { display: block; padding: 4px 0; } @@ -78,7 +78,7 @@ /* ---------- Accordions / headers (light touch) ---------- */ /* Don’t fight jQuery-UI’s theme. Just small spacing adjustments. */ #menu_elevation + .pv-menu-list, -#menu_accepted + .pv-menu-list{ +#menu_accepted + .pv-menu-list { padding-top: 6px; } diff --git a/src/Filter/filter.js b/src/Filter/filter.js index 3bbfd08..40c5d56 100644 --- a/src/Filter/filter.js +++ b/src/Filter/filter.js @@ -1,10 +1,10 @@ /** Two Potree sidebar sections with buttons + panel bodies: - * + * * • Elevation → moves #materials.elevation_container into our Elevation body - * Used for controlling the elevation gradient with a slider and altering between different gradient schemes + * Used for controlling the elevation gradient with a slider and altering between different gradient schemes * • Accepted → custom UI fully defined here (no external module) * Used for indicating which points/surveys are accepted as the seabed and which are not -*/ + */ const byId = (id) => document.getElementById(id) /** From df109d3c8b33d9cfa93239b6ef306fd42df40f17 Mon Sep 17 00:00:00 2001 From: franmagn Date: Thu, 30 Oct 2025 13:03:32 +0100 Subject: [PATCH 28/52] refactor(#47): :zap: improve updating of labels on the UI made labels come up faster after a movement, not requiring a camera update anymore --- src/MeasurementControl/measurementsPanel.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index e8766bd..16e4152 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -862,6 +862,24 @@ export function initMeasurementsPanel(viewer) { }) } catch (_e) {} }) + + // Listen to movement events separately so we can update overlay label + // positions immediately when a marker/point is moved + ;['marker_moved', 'marker_dropped', 'point_moved'].forEach((ev) => { + try { + obj.addEventListener(ev, () => { + // schedule a position update on next frame + requestAnimationFrame(() => updateOverlayPositions()) + // If this measurement is currently selected, refresh the panel too + if (lastSelection.uuid === obj.uuid) { + try { + updateActiveSelection(obj.uuid) + showPanelInMeasurements() + } catch (_e) {} + } + }) + } catch (_e) {} + }) } // Distance/Height/Angle measurements can change type based on point count From 385185cd06a1ec07b4b97f8aa8cc403937b0623b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Thu, 30 Oct 2025 14:25:27 +0100 Subject: [PATCH 29/52] Update src/MeasurementControl/measurementsPanel.css Add more padding Co-authored-by: Adrian Haabpiht Solberg --- src/MeasurementControl/measurementsPanel.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/MeasurementControl/measurementsPanel.css b/src/MeasurementControl/measurementsPanel.css index b931d82..a848631 100644 --- a/src/MeasurementControl/measurementsPanel.css +++ b/src/MeasurementControl/measurementsPanel.css @@ -279,6 +279,7 @@ margin-top: 10px; cursor: pointer; border-radius: 4px; + padding: 4px; } .tool-with-label:hover { box-shadow: 0 0 5px #fff8; From 1703cb76f5e6c4b42a1ba20e5eb6364b0cfa9dd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Thu, 30 Oct 2025 15:42:14 +0100 Subject: [PATCH 30/52] Update src/potreeViewer.js Fix typo in comment Co-authored-by: Adrian Haabpiht Solberg --- src/potreeViewer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/potreeViewer.js b/src/potreeViewer.js index c86df2f..2e2dd5e 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -205,7 +205,7 @@ function overrideShaderForGradient(pc) { } } -// Prevent overlapping scroll freezes when activating filters quickly +// Prevent overlapping scroll freezing when activating filters quickly let suppressionActive = false /** From 73059dec1e990f47b7bcca065896be2df875b0f1 Mon Sep 17 00:00:00 2001 From: Kleinc Date: Fri, 31 Oct 2025 14:21:04 +0100 Subject: [PATCH 31/52] refactor(#48): :recycle: Remove unecessary code, make annotations always visble when pressing "add a location" --- src/AnnotationControl/annotationPanel.js | 12 ++++++++++++ src/potreeViewer.js | 3 --- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/AnnotationControl/annotationPanel.js b/src/AnnotationControl/annotationPanel.js index 170bd58..684094d 100644 --- a/src/AnnotationControl/annotationPanel.js +++ b/src/AnnotationControl/annotationPanel.js @@ -988,6 +988,18 @@ export function initAnnotationsPanel(viewer) { annotationHeader.nextElementSibling.style.display = '' } } + // Ensure annotation labels are shown when starting to add a location. + // The "Show" button will be shown as active and reveals Potree's annotation container. + try { + const showBtn = document.getElementById('showLabelsBtn') + const hideBtn = document.getElementById('hideLabelsBtn') + if (showBtn) showBtn.classList.add('active') + if (hideBtn) hideBtn.classList.remove('active') + const cont = document.getElementById('potree_annotation_container') + if (cont) cont.style.display = '' + } catch (e) { + console.warn('Could not enable annotation labels on add', e) + } // Capture current camera view (position) at the moment the user clicks Add let camPos = null try { diff --git a/src/potreeViewer.js b/src/potreeViewer.js index 0b13435..5479902 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -55,9 +55,6 @@ export async function createPotreeViewer( viewer.loadGUI(() => { viewer.setLanguage('en') - $('#menu_appearance').next().hide() - $('#menu_tools').next().hide() - $('#menu_scene').next().hide() $('#menu_filters').remove() viewer.toggleSidebar() From 1d5c5dedc1ed5c87ead242b1697f7fcdc889374d Mon Sep 17 00:00:00 2001 From: Kleinc Date: Sun, 2 Nov 2025 10:09:25 +0100 Subject: [PATCH 32/52] refactor(#48): :recycle: Make elevation control button and accepted filter button more intuitive --- src/Filter/filter.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Filter/filter.js b/src/Filter/filter.js index cdea1f8..981b6a8 100644 --- a/src/Filter/filter.js +++ b/src/Filter/filter.js @@ -189,6 +189,10 @@ function ensureElevationButton(hooks) { btn.type = 'button' btn.textContent = 'Activate elevation control' btn.addEventListener('click', () => { + const elevBtn = byId('btnDoElevationControl') + const accBtn = byId('doAcceptedFiltering') + if (elevBtn) elevBtn.style.display = 'none' + if (accBtn) accBtn.style.display = '' switchMode('elevation', hooks?.onActivateElevation, hooks) }) btns.appendChild(btn) @@ -283,6 +287,10 @@ function ensureAcceptedButton(hooks) { btn.type = 'button' btn.textContent = 'Activate accepted filter' btn.addEventListener('click', () => { + const accBtn = byId('doAcceptedFiltering') + const elevBtn = byId('btnDoElevationControl') + if (accBtn) accBtn.style.display = 'none' + if (elevBtn) elevBtn.style.display = '' switchMode('accepted', hooks?.onActivateAccepted, hooks) }) btns.appendChild(btn) From 4e0b45e83fa5979898d3ab61661b3c9dd185afd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gaute=20Fl=C3=A6gstad?= Date: Sun, 2 Nov 2025 11:44:00 +0100 Subject: [PATCH 33/52] fix(#56): :bug: 2D profile measurement shows lat,lon,elevation instead of x,y,z Because of the change of coordinate system the z coordinate no longer represents the elevation of a point. Instead of displaying x,y,z it now displays lat, lon, and elevation which is more useful to the user. Also removed some of the attributes which are 0 and cluttering the space --- index.html | 1 + src/2DProfileOverride/2DProfileOverride.css | 12 ++ src/2DProfileOverride/2DProfileOverride.js | 224 ++++++++++++++++++++ src/potreeViewer.js | 4 + 4 files changed, 241 insertions(+) create mode 100644 src/2DProfileOverride/2DProfileOverride.css create mode 100644 src/2DProfileOverride/2DProfileOverride.js diff --git a/index.html b/index.html index 2c4e868..b0488b6 100644 --- a/index.html +++ b/index.html @@ -40,6 +40,7 @@ /> + diff --git a/src/2DProfileOverride/2DProfileOverride.css b/src/2DProfileOverride/2DProfileOverride.css new file mode 100644 index 0000000..b14df6d --- /dev/null +++ b/src/2DProfileOverride/2DProfileOverride.css @@ -0,0 +1,12 @@ +/* Keep profile SVG content (axes/labels) from being clipped */ +#profileSVG { + overflow: visible !important; +} + +/* Improve axis label readability against varying backgrounds */ +#profile_window .axis text { + paint-order: stroke; + stroke: #000; + stroke-width: 3px; + stroke-linejoin: round; +} diff --git a/src/2DProfileOverride/2DProfileOverride.js b/src/2DProfileOverride/2DProfileOverride.js new file mode 100644 index 0000000..721a67c --- /dev/null +++ b/src/2DProfileOverride/2DProfileOverride.js @@ -0,0 +1,224 @@ +import { ecef, wgs84 } from '../config.js' + +/** + * Initialize runtime overrides for Potree 2D profile behavior. + * - Patches ProfileWindow.addPoints: converts each point's Z to elevation instead. + * - Rewrites selection info table to show lon/lat/elevation. + */ +export function init2DProfileOverride(viewer) { + const tryPatchAddPoints = (target) => { + if (!target || target.__elevationPatchApplied) return false + const originalAddPoints = target.addPoints + if (typeof originalAddPoints !== 'function') return false + + target.addPoints = function patchedAddPoints(pointcloud, points) { + try { + if (!points || !points.data || !points.data.position) { + return originalAddPoints.call(this, pointcloud, points) + } + + const srcPos = points.data.position + // Divide by 3 because positions are [x0,y0,z0, x1,y1,z1, ...] + const count = points.numPoints || Math.floor(srcPos.length / 3) + const posArray = srcPos.constructor || Float32Array + + // Clone without changing original buffers + const cloned = { + ...points, + data: { ...points.data, position: new posArray(srcPos) } + } + const dstPos = cloned.data.position + + const pcx = pointcloud?.position?.x || 0 + const pcy = pointcloud?.position?.y || 0 + const pcz = pointcloud?.position?.z || 0 + + // Preserve world ECEF Z per point (best-effort). Some Potree UIs attach + // selectedPoint from these attributes; we keep it on the cloned structure + // for later retrieval in the selection panel override. + const ecefZWorld = new Float64Array(count) + + for (let i = 0; i < count; i++) { + const ix = 3 * i + const x = srcPos[ix + 0] + pcx + const y = srcPos[ix + 1] + pcy + const z = srcPos[ix + 2] + pcz + + const [, , elevation] = proj4(ecef, wgs84, [x, y, z]) + // Internally, Potree adds pointcloud.position.z back later. + dstPos[ix + 2] = elevation - pcz + + ecefZWorld[i] = z + } + + cloned.data.ecefZWorld = ecefZWorld + + const result = originalAddPoints.call(this, pointcloud, cloned) + + // Try to tag currently selectedPoint with the original ECEF Z if available + try { + if ( + this && + this.selectedPoint && + Number.isFinite(this.selectedPoint.index) + ) { + const idx = this.selectedPoint.index + if (ecefZWorld && idx >= 0 && idx < ecefZWorld.length) { + this.selectedPoint.ecefZWorld = ecefZWorld[idx] + } + } + } catch {} + + return result + } catch (err) { + console.warn( + '2DProfileOverride: failed to apply elevation override', + err + ) + return originalAddPoints.call(this, pointcloud, points) + } + } + + target.__elevationPatchApplied = true + return true + } + + let patched = false + if (viewer && viewer.profileWindow) { + patched = tryPatchAddPoints(viewer.profileWindow) + } + if (window.Potree?.ProfileWindow?.prototype) { + patched = + tryPatchAddPoints(window.Potree.ProfileWindow.prototype) || patched + } + + const afterPatched = () => { + attachSelectionInfoOverride(viewer) + } + + if (patched) { + afterPatched() + } else { + // Poll until the profile window/prototype is available + let tries = 0 + const maxTries = 40 + const timer = setInterval(() => { + tries += 1 + if ( + tryPatchAddPoints(window.Potree?.ProfileWindow?.prototype) || + (viewer?.profileWindow && tryPatchAddPoints(viewer.profileWindow)) + ) { + clearInterval(timer) + afterPatched() + } else if (tries >= maxTries) { + clearInterval(timer) + } + }, 250) + } +} + +// Rewrites the selection properties table inside the profile window +function attachSelectionInfoOverride(viewer) { + const getInfoEl = () => document.getElementById('profileSelectionProperties') + let infoEl = getInfoEl() + if (!infoEl) { + const obs = new MutationObserver(() => { + infoEl = getInfoEl() + if (infoEl) { + obs.disconnect() + monitorSelectionInfo(viewer, infoEl) + } + }) + obs.observe(document.body, { childList: true, subtree: true }) + } else { + monitorSelectionInfo(viewer, infoEl) + } +} + +function monitorSelectionInfo(viewer, infoEl) { + let scheduled = false + let selfUpdating = false + + const updateOnce = () => { + scheduled = false + selfUpdating = true + try { + const table = infoEl.querySelector('table') + if (!table) return + const rows = [...table.querySelectorAll('tr')] + if (rows.length < 3) return + + const pw = viewer?.profileWindow + const pos = pw?.viewerPickSphere?.position + const sp = pw?.selectedPoint + if (!pos || !sp) return + + // Use preserved ECEF Z if we have it; otherwise fall back to pos.z + const trueZ = Number(sp?.ecefZWorld ?? NaN) + let lon, lat + if (Number.isFinite(trueZ)) { + ;[lon, lat] = proj4(ecef, wgs84, [pos.x, pos.y, trueZ]) + } else { + ;[lon, lat] = proj4(ecef, wgs84, [pos.x, pos.y, pos.z]) + } + const elevation = pos.z + + const setRow = (row, label, val) => { + const tds = row.querySelectorAll('td') + if (tds[0] && tds[0].textContent !== label) tds[0].textContent = label + if (tds[1]) { + const txt = Number.isFinite(val) + ? val.toLocaleString(undefined, { + minimumFractionDigits: 4, + maximumFractionDigits: 4 + }) + : '' + if (tds[1].textContent !== txt) tds[1].textContent = txt + } + } + + setRow(rows[0], 'lon', lon) + setRow(rows[1], 'lat', lat) + setRow(rows[2], 'elevation', elevation) + + // Remove unwanted rows from the hover info table + const labelsToHide = new Set([ + 'intensity', + 'return number', + 'number of returns', + 'classification flags', + 'classification', + 'user data', + 'scan angle', + 'gps time', + 'gps-time', + 'rgba' + ]) + + // iterate over a snapshot to avoid issues while removing + const allRows = [...table.querySelectorAll('tr')] + for (let i = 3; i < allRows.length; i++) { + const row = allRows[i] + const labelCell = row.querySelector('td') + const label = (labelCell?.textContent || '').trim().toLowerCase() + if (labelsToHide.has(label)) { + row.remove() + } + } + } finally { + setTimeout(() => { + selfUpdating = false + }, 0) + } + } + + const mo = new MutationObserver(() => { + if (selfUpdating) return + if (!scheduled) { + scheduled = true + requestAnimationFrame(updateOnce) + } + }) + mo.observe(infoEl, { childList: true, subtree: true }) + requestAnimationFrame(updateOnce) +} diff --git a/src/potreeViewer.js b/src/potreeViewer.js index ab6c461..5baef9a 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -3,6 +3,7 @@ import { initMeasurementsPanel } from './MeasurementControl/measurementsPanel.js import { initMiniMap } from './MiniMap/miniMap.js' import { initFilterPanels, toggleAcceptedLegend } from './Filter/filter.js' import { ecef } from './config.js' +import { init2DProfileOverride } from './2DProfileOverride/2DProfileOverride.js' /** * Initializes the Potree viewer used to visualize the point cloud. @@ -125,6 +126,9 @@ export async function createPotreeViewer( // Show compass viewer.compass.setVisible(true) + // Apply runtime overrides for the 2D Profile tool + init2DProfileOverride(viewer) + initMeasurementsPanel(viewer) initAnnotationsPanel(viewer) initMiniMap(viewer) From 9958f8679f5f86b2a1ab9c4112e63bc474a7d4b8 Mon Sep 17 00:00:00 2001 From: AdrianSolberg Date: Sun, 2 Nov 2025 21:48:43 +0100 Subject: [PATCH 34/52] feat(#50): make tools panel keyboard accessible --- src/Accessibility/makeMenuTabbable.js | 71 +++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index 7e641da..7e34e52 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -8,6 +8,7 @@ export function makeMenuTabbable() { makeElevationControlTabbable() makeAcceptedFilteringTabbable() makeAppearancePanelTabbable() + makeToolsPanelTabbable() } /** @@ -196,3 +197,73 @@ function makeAppearancePanelTabbable() { }); } } + +/** + * Makes tools panel tabbable and keyboard clickable + */ +function makeToolsPanelTabbable() { + // Make clipping tools tabbable and keyboard clickable + const clippingTools = document.querySelectorAll( + '#clipping_tools img' + ) + clippingTools.forEach((img, index) => { + // Hide unsupported tool + if (index === 2) { + img.hidden = true + return + } + img.tabIndex = 0 + img.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + img.click() + } + }) + }) + + // Make clip task buttons tabbable and keyboard clickable + const clipTaskButtons = document.querySelectorAll( + '#cliptask_options label' + ) + clipTaskButtons.forEach((label) => { + label.tabIndex = 0 + label.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + label.click() + } + }) + }) + + // Make clip method buttons tabbable and keyboard clickable + const clipMethodButtons = document.querySelectorAll( + '#clipmethod_options label' + ) + clipMethodButtons.forEach((label) => { + label.tabIndex = 0 + label.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + label.click() + } + }) + }) + + // Hide camera projection options as they are not supported + const cameraProjection = document.getElementById('camera_projection_options'); + cameraProjection.hidden = true + + // Make navigation tools tabbable and keyboard clickable + const navigationTools = document.querySelectorAll( + '#navigation img' + ) + navigationTools.forEach((img) => { + img.tabIndex = 0 + img.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + img.click() + } + }) + }) +} From 3a999557f6ddedd6877fb5b89924c0d998b2abe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gaute=20Fl=C3=A6gstad?= Date: Mon, 3 Nov 2025 14:07:13 +0100 Subject: [PATCH 35/52] fix(#50): :bug: Selecting a navigation tool with tab should work --- src/Accessibility/makeMenuTabbable.js | 42 ++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index 7e34e52..2d3ce43 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -251,18 +251,58 @@ function makeToolsPanelTabbable() { // Hide camera projection options as they are not supported const cameraProjection = document.getElementById('camera_projection_options'); - cameraProjection.hidden = true + if (cameraProjection) cameraProjection.hidden = true // Make navigation tools tabbable and keyboard clickable const navigationTools = document.querySelectorAll( '#navigation img' ) + const renderArea = document.querySelector('#potree_render_area') + // Keep wrapper focusable as a fallback target (doesn't change tab order elsewhere) + if (renderArea && !renderArea.hasAttribute('tabindex')) { + renderArea.setAttribute('tabindex', '0') + } + navigationTools.forEach((img) => { img.tabIndex = 0 img.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault() img.click() + + // Switch controls directly via Potree API, then focus the keyboard input target (canvas) + const pv = window.potreeViewer || window.viewer || null + const target = renderArea + if (pv) { + const src = (img.getAttribute && img.getAttribute('src')) || '' + const title = img.getAttribute && (img.getAttribute('title') || img.getAttribute('data-i18n') || '') + const key = (src + ' ' + title).toLowerCase() + + if (key.includes('earth')) { + pv.setControls(pv.earthControls) + } else if (key.includes('heli') || key.includes('helicopter')) { + pv.setControls(pv.fpControls) + if (pv.fpControls) pv.fpControls.lockElevation = true + } else if (key.includes('fps') || key.includes('flight') || key.includes('flight_control')) { + pv.setControls(pv.fpControls) + if (pv.fpControls) pv.fpControls.lockElevation = false + } else if (key.includes('orbit')) { + pv.setControls(pv.orbitControls) + } + + const dom = pv && pv.renderer && pv.renderer.domElement + if (dom) { + if (!dom.hasAttribute('tabindex')) dom.setAttribute('tabindex', '-1') + dom.focus() + } else if (target) { + // conservative fallback + if (!target.hasAttribute('tabindex')) target.setAttribute('tabindex', '0') + target.focus() + } + } else if (target) { + if (!target.hasAttribute('tabindex')) target.setAttribute('tabindex', '0') + target.focus() + } } }) }) From 5e34abd1db1d20bdd6486d5557788d7f1848a1cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Tue, 4 Nov 2025 11:06:29 +0100 Subject: [PATCH 36/52] feat(#50): :sparkles: Make measurment panel tabbable --- src/Accessibility/makeMenuTabbable.js | 75 +++++++++++++++++---------- src/potreeViewer.js | 6 ++- 2 files changed, 52 insertions(+), 29 deletions(-) diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index 2d3ce43..1dfa94d 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -7,6 +7,7 @@ export function makeMenuTabbable() { makePanelsTabbable() makeElevationControlTabbable() makeAcceptedFilteringTabbable() + makeMeasurementsTabbable() makeAppearancePanelTabbable() makeToolsPanelTabbable() } @@ -134,15 +135,15 @@ function makeAcceptedFilteringTabbable() { */ function makeAppearancePanelTabbable() { // Make EDL checkbox tabbable and keyboard clickable - const edlCheckbox = document.getElementById('chkEDLEnabled'); + const edlCheckbox = document.getElementById('chkEDLEnabled') if (edlCheckbox) { edlCheckbox.tabIndex = 0 edlCheckbox.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - edlCheckbox.click(); + e.preventDefault() + edlCheckbox.click() } - }); + }) } // Make background buttons tabbable and keyboard clickable @@ -174,27 +175,27 @@ function makeAppearancePanelTabbable() { }) // Make box checkbox tabbable and keyboard clickable - const boxCheckbox = document.getElementById('show_bounding_box'); + const boxCheckbox = document.getElementById('show_bounding_box') if (boxCheckbox) { boxCheckbox.tabIndex = 0 boxCheckbox.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - boxCheckbox.click(); + e.preventDefault() + boxCheckbox.click() } - }); + }) } // Make lock view checkbox tabbable and keyboard clickable - const lockViewCheckBox = document.getElementById('set_freeze'); + const lockViewCheckBox = document.getElementById('set_freeze') if (lockViewCheckBox) { lockViewCheckBox.tabIndex = 0 lockViewCheckBox.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - lockViewCheckBox.click(); + e.preventDefault() + lockViewCheckBox.click() } - }); + }) } } @@ -203,9 +204,7 @@ function makeAppearancePanelTabbable() { */ function makeToolsPanelTabbable() { // Make clipping tools tabbable and keyboard clickable - const clippingTools = document.querySelectorAll( - '#clipping_tools img' - ) + const clippingTools = document.querySelectorAll('#clipping_tools img') clippingTools.forEach((img, index) => { // Hide unsupported tool if (index === 2) { @@ -222,9 +221,7 @@ function makeToolsPanelTabbable() { }) // Make clip task buttons tabbable and keyboard clickable - const clipTaskButtons = document.querySelectorAll( - '#cliptask_options label' - ) + const clipTaskButtons = document.querySelectorAll('#cliptask_options label') clipTaskButtons.forEach((label) => { label.tabIndex = 0 label.addEventListener('keydown', (e) => { @@ -250,13 +247,11 @@ function makeToolsPanelTabbable() { }) // Hide camera projection options as they are not supported - const cameraProjection = document.getElementById('camera_projection_options'); + const cameraProjection = document.getElementById('camera_projection_options') if (cameraProjection) cameraProjection.hidden = true // Make navigation tools tabbable and keyboard clickable - const navigationTools = document.querySelectorAll( - '#navigation img' - ) + const navigationTools = document.querySelectorAll('#navigation img') const renderArea = document.querySelector('#potree_render_area') // Keep wrapper focusable as a fallback target (doesn't change tab order elsewhere) if (renderArea && !renderArea.hasAttribute('tabindex')) { @@ -275,7 +270,9 @@ function makeToolsPanelTabbable() { const target = renderArea if (pv) { const src = (img.getAttribute && img.getAttribute('src')) || '' - const title = img.getAttribute && (img.getAttribute('title') || img.getAttribute('data-i18n') || '') + const title = + img.getAttribute && + (img.getAttribute('title') || img.getAttribute('data-i18n') || '') const key = (src + ' ' + title).toLowerCase() if (key.includes('earth')) { @@ -283,7 +280,11 @@ function makeToolsPanelTabbable() { } else if (key.includes('heli') || key.includes('helicopter')) { pv.setControls(pv.fpControls) if (pv.fpControls) pv.fpControls.lockElevation = true - } else if (key.includes('fps') || key.includes('flight') || key.includes('flight_control')) { + } else if ( + key.includes('fps') || + key.includes('flight') || + key.includes('flight_control') + ) { pv.setControls(pv.fpControls) if (pv.fpControls) pv.fpControls.lockElevation = false } else if (key.includes('orbit')) { @@ -292,18 +293,38 @@ function makeToolsPanelTabbable() { const dom = pv && pv.renderer && pv.renderer.domElement if (dom) { - if (!dom.hasAttribute('tabindex')) dom.setAttribute('tabindex', '-1') + if (!dom.hasAttribute('tabindex')) + dom.setAttribute('tabindex', '-1') dom.focus() } else if (target) { // conservative fallback - if (!target.hasAttribute('tabindex')) target.setAttribute('tabindex', '0') + if (!target.hasAttribute('tabindex')) + target.setAttribute('tabindex', '0') target.focus() } } else if (target) { - if (!target.hasAttribute('tabindex')) target.setAttribute('tabindex', '0') + if (!target.hasAttribute('tabindex')) + target.setAttribute('tabindex', '0') target.focus() } } }) }) } + +function makeMeasurementsTabbable() { + // Select every tool inside the measurement tools host + const tools = document.querySelectorAll( + '#measurement_tools_host .tool-with-label' + ) + tools.forEach((tool) => { + tool.tabIndex = 0 + tool.setAttribute('role', 'button') + tool.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + tool.click() + } + }) + }) +} diff --git a/src/potreeViewer.js b/src/potreeViewer.js index 3dc2656..f16ebcd 100644 --- a/src/potreeViewer.js +++ b/src/potreeViewer.js @@ -57,6 +57,8 @@ export async function createPotreeViewer( viewer.loadGUI(() => { viewer.setLanguage('en') + //remove the header with language information + $('#sidebar_header').remove() $('#menu_filters').remove() viewer.toggleSidebar() @@ -127,11 +129,11 @@ export async function createPotreeViewer( // Apply runtime overrides for the 2D Profile tool init2DProfileOverride(viewer) - makeMenuTabbable() - initMeasurementsPanel(viewer) initAnnotationsPanel(viewer) initMiniMap(viewer) + + makeMenuTabbable() }) // Initialize camera position and target point (manually chosen) From 39ac3f27502f6afe0a4252740647c0671054d563 Mon Sep 17 00:00:00 2001 From: franmagn Date: Tue, 4 Nov 2025 17:35:56 +0100 Subject: [PATCH 37/52] style(#47): :lipstick: add background to the labels add background to make the labels visible even while displaying black or white datasets --- src/MeasurementControl/measurementsPanel.css | 17 +++++++++++++++++ src/MeasurementControl/measurementsPanel.js | 12 +++--------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/MeasurementControl/measurementsPanel.css b/src/MeasurementControl/measurementsPanel.css index e767c65..74f4e9c 100644 --- a/src/MeasurementControl/measurementsPanel.css +++ b/src/MeasurementControl/measurementsPanel.css @@ -305,4 +305,21 @@ pointer-events: none; } +/* On-canvas measurement label styling for improved contrast */ +.measurement-canvas-label { + position: absolute; + transform: translate(-50%, -100%); + pointer-events: none; + color: #000; + background: rgba(255,255,255,0.95); + padding: 2px 6px; + border-radius: 4px; + box-shadow: 0 1px 3px rgba(0,0,0,0.35); + border: 1px solid rgba(0,0,0,0.08); + font-weight: 600; + font-size: 12px; + white-space: nowrap; + z-index: 2100; +} + diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index 16e4152..cb77cba 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -54,8 +54,8 @@ export function initMeasurementsPanel(viewer) { } }) targetContainer = panel.querySelector('#measurements_list') + } } - } if (!targetContainer) { console.warn( 'Measurements list container not found and dynamic injection failed' @@ -186,13 +186,6 @@ export function initMeasurementsPanel(viewer) { if (!lbl) { lbl = document.createElement('div') lbl.className = 'measurement-canvas-label' - lbl.style.position = 'absolute' - lbl.style.transform = 'translate(-50%, -100%)' - lbl.style.pointerEvents = 'none' - lbl.style.color = 'white' - lbl.style.fontWeight = 'bold' - lbl.style.textShadow = '0 0 4px rgba(0,0,0,0.9)' - lbl.style.fontSize = '12px' overlay.appendChild(lbl) overlayMap.set(measurement.uuid, lbl) } @@ -218,7 +211,8 @@ export function initMeasurementsPanel(viewer) { el.style.display = 'none' } else { el.style.display = '' - el.style.transform = `translate(${Math.round(pos.x)}px, ${Math.round(pos.y)}px)` + el.style.left = Math.round(pos.x) + 'px' + el.style.top = Math.round(pos.y) + 'px' } } catch (e) { // ignore From c00de21339414ef1bfeabcce1f87f806e9291503 Mon Sep 17 00:00:00 2001 From: franmagn Date: Tue, 4 Nov 2025 18:14:44 +0100 Subject: [PATCH 38/52] style(#47): ran prettier --- src/MeasurementControl/measurementsPanel.css | 14 +- src/MeasurementControl/measurementsPanel.js | 274 +++++++++++++------ 2 files changed, 192 insertions(+), 96 deletions(-) diff --git a/src/MeasurementControl/measurementsPanel.css b/src/MeasurementControl/measurementsPanel.css index 74f4e9c..e9c1aa8 100644 --- a/src/MeasurementControl/measurementsPanel.css +++ b/src/MeasurementControl/measurementsPanel.css @@ -282,7 +282,7 @@ flex-direction: row; align-items: center; margin-top: 10px; - cursor: pointer; + cursor: pointer; border-radius: 4px; } .tool-with-label:hover { @@ -290,7 +290,7 @@ } .tool-with-label:hover img { - filter: brightness(1.7); + filter: brightness(1.7); } .tool-with-label:hover .tool-label { @@ -302,7 +302,7 @@ margin-top: 2px; margin-left: 4px; color: #aaa; - pointer-events: none; + pointer-events: none; } /* On-canvas measurement label styling for improved contrast */ @@ -311,15 +311,13 @@ transform: translate(-50%, -100%); pointer-events: none; color: #000; - background: rgba(255,255,255,0.95); + background: rgba(255, 255, 255, 0.95); padding: 2px 6px; border-radius: 4px; - box-shadow: 0 1px 3px rgba(0,0,0,0.35); - border: 1px solid rgba(0,0,0,0.08); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35); + border: 1px solid rgba(0, 0, 0, 0.08); font-weight: 600; font-size: 12px; white-space: nowrap; z-index: 2100; } - - diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index cb77cba..bc47e2f 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -54,8 +54,8 @@ export function initMeasurementsPanel(viewer) { } }) targetContainer = panel.querySelector('#measurements_list') - } } + } if (!targetContainer) { console.warn( 'Measurements list container not found and dynamic injection failed' @@ -119,23 +119,37 @@ export function initMeasurementsPanel(viewer) { return indexMap } - // Project a THREE.Vector3 (or [x,y,z]) into screen coords using viewer + // Project a THREE.Vector3 (or [x,y,z]) into screen coords using viewer. Used later to display labels. function projectToScreen(pos) { try { const THREE = window.THREE || globalThis.THREE let vec3 = null if (!pos) return null - if (Array.isArray(pos) && pos.length >= 3) vec3 = new THREE.Vector3(pos[0], pos[1], pos[2]) + if (Array.isArray(pos) && pos.length >= 3) + vec3 = new THREE.Vector3(pos[0], pos[1], pos[2]) else if (pos.isVector3) vec3 = pos.clone() - else if (pos.position && pos.position.isVector3) vec3 = pos.position.clone() - else if (pos.x !== undefined && pos.y !== undefined && pos.z !== undefined) vec3 = new THREE.Vector3(pos.x, pos.y, pos.z) + else if (pos.position && pos.position.isVector3) + vec3 = pos.position.clone() + else if ( + pos.x !== undefined && + pos.y !== undefined && + pos.z !== undefined + ) + vec3 = new THREE.Vector3(pos.x, pos.y, pos.z) if (!vec3) return null // choose camera - const cam = (viewer.scene && typeof viewer.scene.getActiveCamera === 'function') ? viewer.scene.getActiveCamera() : (viewer.scene && viewer.scene.camera) || viewer.scene.cameraP || null + const cam = + viewer.scene && typeof viewer.scene.getActiveCamera === 'function' + ? viewer.scene.getActiveCamera() + : (viewer.scene && viewer.scene.camera) || + viewer.scene.cameraP || + null if (!cam) return null vec3.project(cam) // renderer canvas - const canvas = (viewer && viewer.renderer && viewer.renderer.domElement) || document.querySelector('#potree_render_area canvas') + const canvas = + (viewer && viewer.renderer && viewer.renderer.domElement) || + document.querySelector('#potree_render_area canvas') if (!canvas) return null const w = canvas.clientWidth || canvas.width const h = canvas.clientHeight || canvas.height @@ -193,6 +207,8 @@ export function initMeasurementsPanel(viewer) { return lbl } + // Recompute screen positions for all overlay labels and update their + // left/top styles. Hide labels when the measurement or position is not visible. function updateOverlayPositions() { if (!overlay) return for (const [uuid, el] of overlayMap.entries()) { @@ -338,7 +354,9 @@ export function initMeasurementsPanel(viewer) { originalPropertiesPanel, placeholder.nextSibling ) - try { originalPropertiesPanel.removeAttribute('data-mp-mounted') } catch (e) {} + try { + originalPropertiesPanel.removeAttribute('data-mp-mounted') + } catch (e) {} } if (targetContainer && targetContainer.children.length === 0) { targetContainer.innerHTML = '' @@ -366,7 +384,9 @@ export function initMeasurementsPanel(viewer) { // Only run post-processing when the properties panel is mounted into // our measurements area. if (!originalPropertiesPanel) return - const mounted = originalPropertiesPanel.getAttribute && originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' + const mounted = + originalPropertiesPanel.getAttribute && + originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' if (!mounted) return roundCoordinates(originalPropertiesPanel) pruneMeasurementRows(originalPropertiesPanel) @@ -384,7 +404,10 @@ export function initMeasurementsPanel(viewer) { if (!rootEl) return // Only run post-processing when the properties panel is mounted into // our measurements area. - const mounted = originalPropertiesPanel && originalPropertiesPanel.getAttribute && originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' + const mounted = + originalPropertiesPanel && + originalPropertiesPanel.getAttribute && + originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' if (!mounted) return // Find first table that has a header row with th: x y z const tables = rootEl.querySelectorAll('table.measurement_value_table') @@ -401,7 +424,12 @@ export function initMeasurementsPanel(viewer) { const ths = [...headerRow.querySelectorAll('th')].map((th) => (th.textContent || '').trim().toLowerCase() ) - if (ths.length >= 3 && ths[0] === 'x' && ths[1] === 'y' && ths[2] === 'z') { + if ( + ths.length >= 3 && + ths[0] === 'x' && + ths[1] === 'y' && + ths[2] === 'z' + ) { coordTable = tbl break } @@ -410,7 +438,10 @@ export function initMeasurementsPanel(viewer) { const rows = Array.from(tbl.querySelectorAll('tr')) for (const r of rows) { const tds = Array.from(r.querySelectorAll('td')) - if (tds.length >= 3 && tds.every((td) => looksLikeNumber(td.textContent))) { + if ( + tds.length >= 3 && + tds.every((td) => looksLikeNumber(td.textContent)) + ) { coordTable = tbl found = true break @@ -448,7 +479,10 @@ export function initMeasurementsPanel(viewer) { if (!rootEl) return // Only run post-processing when the properties panel is mounted into // our measurements area. - const mounted = originalPropertiesPanel && originalPropertiesPanel.getAttribute && originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' + const mounted = + originalPropertiesPanel && + originalPropertiesPanel.getAttribute && + originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' if (!mounted) return const tables = rootEl.querySelectorAll('table.measurement_value_table') if (!tables || tables.length === 0) return @@ -468,14 +502,21 @@ export function initMeasurementsPanel(viewer) { let isCoordTable = false const looksLikeNumber = (s) => { if (!s) return false - const cleaned = (s + '').replace(/[^0-9+\-.,eE]/g, '').replace(/,+/g, '') + const cleaned = (s + '') + .replace(/[^0-9+\-.,eE]/g, '') + .replace(/,+/g, '') return /[-+]?\d*\.?\d+(e[-+]?\d+)?/.test(cleaned) } if (headerRow) { const ths = [...headerRow.querySelectorAll('th')].map((th) => (th.textContent || '').trim().toLowerCase() ) - if (ths.length >= 3 && ths[0] === 'x' && ths[1] === 'y' && ths[2] === 'z') { + if ( + ths.length >= 3 && + ths[0] === 'x' && + ths[1] === 'y' && + ths[2] === 'z' + ) { isCoordTable = true } } @@ -483,7 +524,10 @@ export function initMeasurementsPanel(viewer) { const rows = Array.from(tbl.querySelectorAll('tr')) for (const r of rows) { const tds = Array.from(r.querySelectorAll('td')) - if (tds.length >= 3 && tds.every((td) => looksLikeNumber(td.textContent))) { + if ( + tds.length >= 3 && + tds.every((td) => looksLikeNumber(td.textContent)) + ) { isCoordTable = true break } @@ -521,9 +565,14 @@ export function initMeasurementsPanel(viewer) { if (!rootEl) rootEl = originalPropertiesPanel if (!rootEl) return // Only insert Lat/Lon/Elev when the properties panel is explicitly mounted - const mounted = originalPropertiesPanel && originalPropertiesPanel.getAttribute && originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' + const mounted = + originalPropertiesPanel && + originalPropertiesPanel.getAttribute && + originalPropertiesPanel.getAttribute('data-mp-mounted') === '1' if (!mounted) return - const tables = Array.from(rootEl.querySelectorAll('table.measurement_value_table')) + const tables = Array.from( + rootEl.querySelectorAll('table.measurement_value_table') + ) if (!tables.length) return // helper to parse numeric strings @@ -539,8 +588,15 @@ export function initMeasurementsPanel(viewer) { for (const tbl of tables) { const header = tbl.querySelector('tr') if (!header) continue - const ths = [...header.querySelectorAll('th')].map((t) => (t.textContent || '').trim().toLowerCase()) - if (ths.length >= 3 && ths[0] === 'x' && ths[1] === 'y' && ths[2] === 'z') { + const ths = [...header.querySelectorAll('th')].map((t) => + (t.textContent || '').trim().toLowerCase() + ) + if ( + ths.length >= 3 && + ths[0] === 'x' && + ths[1] === 'y' && + ths[2] === 'z' + ) { coordTable = tbl const rows = Array.from(tbl.querySelectorAll('tr')) for (let i = 0; i < rows.length; i++) { @@ -580,7 +636,9 @@ export function initMeasurementsPanel(viewer) { if (coordinateRow) break } - let x = null, y = null, z = null + let x = null, + y = null, + z = null if (coordinateRow) { const tds = Array.from(coordinateRow.querySelectorAll('td')) x = parseNum(tds[0].textContent) @@ -589,10 +647,24 @@ export function initMeasurementsPanel(viewer) { } // compute lat/lon/elev - let lat = null, lon = null, elev = null - const hasProj4 = (typeof proj4 !== 'undefined') || (typeof window !== 'undefined' && typeof window.proj4 !== 'undefined') - const proj = typeof proj4 !== 'undefined' ? proj4 : (typeof window !== 'undefined' ? window.proj4 : undefined) - if (hasProj4 && typeof ecef !== 'undefined' && typeof wgs84 !== 'undefined' && x != null) { + let lat = null, + lon = null, + elev = null + const hasProj4 = + typeof proj4 !== 'undefined' || + (typeof window !== 'undefined' && typeof window.proj4 !== 'undefined') + const proj = + typeof proj4 !== 'undefined' + ? proj4 + : typeof window !== 'undefined' + ? window.proj4 + : undefined + if ( + hasProj4 && + typeof ecef !== 'undefined' && + typeof wgs84 !== 'undefined' && + x != null + ) { try { const res = proj(ecef, wgs84, [x, y, z]) lon = res[0] @@ -602,57 +674,73 @@ export function initMeasurementsPanel(viewer) { } // find first attribute-style table - let attrTable = tables.find((t) => Array.from(t.querySelectorAll('tr')).some((r) => r.querySelectorAll('td').length === 2)) || coordTable || tables[0] + let attrTable = + tables.find((t) => + Array.from(t.querySelectorAll('tr')).some( + (r) => r.querySelectorAll('td').length === 2 + ) + ) || + coordTable || + tables[0] - const ids = { lat: 'mp_coord_latitude', lon: 'mp_coord_longitude', elev: 'mp_coord_elevation' } + const ids = { + lat: 'mp_coord_latitude', + lon: 'mp_coord_longitude', + elev: 'mp_coord_elevation' + } const fmt = (v, decimals) => (v == null ? '' : Number(v).toFixed(decimals)) const latStr = lat != null ? fmt(lat, 4) + '˚' : '' const lonStr = lon != null ? fmt(lon, 4) + '˚' : '' const elevStr = elev != null ? fmt(elev, 4) + 'm' : '' - // Prepare rows (create new ones and update existing ones). We collect - // newly-created rows and insert them as a fragment before the first - // child so they appear at the top in the desired order. - const createRowNode = (id, label, value) => { - const row = document.createElement('tr') - row.id = id - row.className = 'attr-row' - const tdLabel = document.createElement('td') - tdLabel.className = 'property-name' - tdLabel.textContent = label - const tdValue = document.createElement('td') - tdValue.className = 'property-value' - tdValue.textContent = value - row.appendChild(tdLabel) - row.appendChild(tdValue) - return row - } + // Prepare rows (create new ones and update existing ones). We collect + // newly-created rows and insert them as a fragment before the first + // child so they appear at the top in the desired order. + const createRowNode = (id, label, value) => { + const row = document.createElement('tr') + row.id = id + row.className = 'attr-row' + const tdLabel = document.createElement('td') + tdLabel.className = 'property-name' + tdLabel.textContent = label + const tdValue = document.createElement('td') + tdValue.className = 'property-value' + tdValue.textContent = value + row.appendChild(tdLabel) + row.appendChild(tdValue) + return row + } - const newRows = [] - const entries = [ - { id: ids.lat, label: 'Latitude', value: latStr }, - { id: ids.lon, label: 'Longitude', value: lonStr }, - { id: ids.elev, label: 'Elevation', value: elevStr } - ] + const newRows = [] + const entries = [ + { id: ids.lat, label: 'Latitude', value: latStr }, + { id: ids.lon, label: 'Longitude', value: lonStr }, + { id: ids.elev, label: 'Elevation', value: elevStr } + ] - for (const e of entries) { - const existing = rootEl.querySelector(`#${e.id}`) - if (existing) { - const valTd = existing.querySelector('td:last-child') || existing.querySelectorAll('td')[1] - if (valTd) valTd.textContent = e.value - } else { - newRows.push(createRowNode(e.id, e.label, e.value)) - } + for (const e of entries) { + const existing = rootEl.querySelector(`#${e.id}`) + if (existing) { + const valTd = + existing.querySelector('td:last-child') || + existing.querySelectorAll('td')[1] + if (valTd) valTd.textContent = e.value + } else { + newRows.push(createRowNode(e.id, e.label, e.value)) } + } - if (newRows.length > 0) { - const tbody = (attrTable.tBodies && attrTable.tBodies[0]) ? attrTable.tBodies[0] : attrTable - const first = tbody.firstElementChild - const frag = document.createDocumentFragment() - for (const r of newRows) frag.appendChild(r) - tbody.insertBefore(frag, first) - } + if (newRows.length > 0) { + const tbody = + attrTable.tBodies && attrTable.tBodies[0] + ? attrTable.tBodies[0] + : attrTable + const first = tbody.firstElementChild + const frag = document.createDocumentFragment() + for (const r of newRows) frag.appendChild(r) + tbody.insertBefore(frag, first) + } } // Helper to decide if a uuid is a measurement-like object function isMeasurementUUID(uuid) { @@ -680,7 +768,11 @@ export function initMeasurementsPanel(viewer) { // Also store the measurement type (Point/Profile/Area/Height/etc.) try { const scene = viewer.scene - const all = [...scene.measurements, ...scene.profiles, ...scene.volumes] + const all = [ + ...scene.measurements, + ...scene.profiles, + ...scene.volumes + ] const obj = all.find((o) => o.uuid === uuid) lastSelection.type = obj ? resolveType(obj) : null } catch (_e) { @@ -788,7 +880,10 @@ export function initMeasurementsPanel(viewer) { // label so the measurement name is visible on the canvas. We use the // sidebar label so the on-canvas label matches the list. if (overlay && m.points && m.points.length > 0) { - createOrUpdateMeasurementCanvasLabel(m, labelSpan.textContent || baseName) + createOrUpdateMeasurementCanvasLabel( + m, + labelSpan.textContent || baseName + ) } }) countSpan.textContent = groups.get(type).length @@ -972,10 +1067,14 @@ export function initMeasurementsPanel(viewer) { // Update overlay positions when camera moves or window resizes try { if (viewer && typeof viewer.addEventListener === 'function') { - viewer.addEventListener('camera_changed', () => requestAnimationFrame(updateOverlayPositions)) + viewer.addEventListener('camera_changed', () => + requestAnimationFrame(updateOverlayPositions) + ) } } catch (e) {} - window.addEventListener('resize', () => requestAnimationFrame(updateOverlayPositions)) + window.addEventListener('resize', () => + requestAnimationFrame(updateOverlayPositions) + ) // Click handling for selection, focus and delete listRoot.addEventListener('click', (e) => { @@ -1090,32 +1189,31 @@ export function initMeasurementsPanel(viewer) { 'sphere_distances.svg': 'Sphere volume', 'profile.svg': '2D height profile', 'reset_tools.svg': 'Remove all' - }; + } - const toolIcons = existingTools.querySelectorAll('img'); - toolIcons.forEach(img => { - const src = img.getAttribute('src'); - const file = src.split('/').pop(); // extract icon name - const baseName = file.replace(/\.[^/.]+$/, ''); + const toolIcons = existingTools.querySelectorAll('img') + toolIcons.forEach((img) => { + const src = img.getAttribute('src') + const file = src.split('/').pop() // extract icon name + const baseName = file.replace(/\.[^/.]+$/, '') if (toolDescriptions[file]) { - const wrapper = document.createElement('div'); - wrapper.className = 'tool-with-label'; - wrapper.id = `tool-wrapper-${baseName}`; + const wrapper = document.createElement('div') + wrapper.className = 'tool-with-label' + wrapper.id = `tool-wrapper-${baseName}` - wrapper.addEventListener('click', () => img.click()); + wrapper.addEventListener('click', () => img.click()) - img.parentNode.insertBefore(wrapper, img); - wrapper.appendChild(img); + img.parentNode.insertBefore(wrapper, img) + wrapper.appendChild(img) - const label = document.createElement('span'); - label.className = 'tool-label'; - label.textContent = toolDescriptions[file]; - label.id = `label-${file.replace(/\.[^/.]+$/, '')}`; - wrapper.appendChild(label); + const label = document.createElement('span') + label.className = 'tool-label' + label.textContent = toolDescriptions[file] + label.id = `label-${file.replace(/\.[^/.]+$/, '')}` + wrapper.appendChild(label) } - }); - + }) // Move measurement options UI into our tools host if (toolsHost) { From 58151097a9333c7aab1b947b9fa081e1172a41af Mon Sep 17 00:00:00 2001 From: AdrianSolberg Date: Wed, 5 Nov 2025 14:02:10 +0100 Subject: [PATCH 39/52] fix(#50): fix globe hiding for navigation controls --- src/cameraSync.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/cameraSync.js b/src/cameraSync.js index cead992..4b40b76 100644 --- a/src/cameraSync.js +++ b/src/cameraSync.js @@ -58,11 +58,7 @@ export function syncCameras(potreeViewer, cesiumViewer) { } /** - * Determines whether the globe should be visible based on the camera position. - * - * Returns false if the camera is below the globe surface, if the pivot - * point would be blocked by the curvature of the Earth or if the camera - * is looking almost straight down at the pivot. + * Determines whether the globe should be visible based on the camera position and controls. * * @param cameraPos - The camera position in Cesium.Cartesian3 coordinates * @param pivot - The pivot point in Cesium.Cartesian3 coordinates @@ -99,7 +95,17 @@ function shouldShowGlobe(cameraPos, pivot, direction) { const targetNormal = Cesium.Ellipsoid.WGS84.geodeticSurfaceNormal(pivot) const dotProduct = Math.abs(Cesium.Cartesian3.dot(direction, targetNormal)) - // If camera is "above" pivot on the axis, and not looking nearly straight down, the globe should be visible - // Otherwise, the globe should not be visible - return camProj >= pivotProj && dotProduct < 0.99 + // Get the camera's elevation based on ellipsoid + const cameraCarto = Cesium.Cartographic.fromCartesian(cameraPos, ellipsoid) + const elevation = cameraCarto.height + + // Determine globe visibility based on camera controls + if (window.potreeViewer.getControls() === window.potreeViewer.orbitControls) { + // If camera is "above" pivot on the axis, and not looking nearly straight down, the globe should be visible + // Otherwise, the globe should not be visible + return camProj >= pivotProj && dotProduct < 0.99 + } else { + // If the camera is inside the globe, or looking nearly straight down, hide the globe + return elevation > 0 && dotProduct < 0.99 + } } From 4ada5761e69093405fe85a0801006b83340df02a Mon Sep 17 00:00:00 2001 From: franmagn Date: Wed, 5 Nov 2025 14:21:06 +0100 Subject: [PATCH 40/52] feat(#47): visualize name labels OR value labels, or hide both now it is not possible to see both name labels and value labels of the measurements, and it's possible to switch between these visualization thanks to two new buttons. There is also the possibility to hide both with a third button, all in the same section of the sidebar --- src/MeasurementControl/measurementsPanel.js | 99 ++++++++++++++++++++- 1 file changed, 97 insertions(+), 2 deletions(-) diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index bc47e2f..aef16fd 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -70,6 +70,8 @@ export function initMeasurementsPanel(viewer) { const renderArea = document.getElementById('potree_render_area') let overlay = null const overlayMap = new Map() // uuid -> label element + // set default display mode of the label buttons + let measurementDisplayMode = 'VALUES' if (renderArea) { overlay = document.createElement('div') overlay.id = 'measurement_label_overlay' @@ -204,6 +206,10 @@ export function initMeasurementsPanel(viewer) { overlayMap.set(measurement.uuid, lbl) } lbl.textContent = labelText || '' + try { + // only show overlay name labels when in NAMES mode + lbl.style.display = measurementDisplayMode === 'NAMES' ? '' : 'none' + } catch (e) {} return lbl } @@ -226,7 +232,8 @@ export function initMeasurementsPanel(viewer) { if (!pos || !pos.visible) { el.style.display = 'none' } else { - el.style.display = '' + // Only show overlay name labels when NAMES mode is active + el.style.display = measurementDisplayMode === 'NAMES' ? '' : 'none' el.style.left = Math.round(pos.x) + 'px' el.style.top = Math.round(pos.y) + 'px' } @@ -272,7 +279,9 @@ export function initMeasurementsPanel(viewer) { const originalPropertiesPanel = document.querySelector( '#scene_object_properties' ) - // This section is for moving the "scene" object to the meaasurements tab, only if the measurements section is selected, so that all other folders (like camera) stays where it should be + // This section is for moving the "scene" object to the meaasurements tab, + // only if the measurements section is selected, so that all other folders + // (like camera) stays where it should be let placeholder = null let originalParent = null function ensurePlaceholder() { @@ -1219,6 +1228,32 @@ export function initMeasurementsPanel(viewer) { if (toolsHost) { const measOptions = document.getElementById('measurement_options_show') if (measOptions) { + // Replace the built two-option control with a three-option label handling + try { + const hasValues = + !!measOptions.querySelector('#measurement_options_show_values') || + !!measOptions.querySelector('option[value="VALUES"]') + if (!hasValues) { + measOptions.innerHTML = `\n + \n + \n + \n + ` + } + + if ( + window && + window.jQuery && + typeof $(measOptions).selectgroup === 'function' + ) { + try { + $(measOptions).selectgroup({ title: 'Show/Hide labels' }) + // trigger the VALUES option so UI appears selected and handlers run + const $val = $(measOptions).find('input[value="VALUES"]') + if ($val.length) $val.trigger('click') + } catch (e) {} + } + } catch (e) {} const measLi = measOptions.closest('li') || measOptions if (measLi && !measLi.classList.contains('measurement-options-block')) { measLi.classList.add('measurement-options-block') @@ -1238,6 +1273,66 @@ export function initMeasurementsPanel(viewer) { if (measLi && measLi.parentElement !== toolsHost) { toolsHost.appendChild(measLi) } + // Force initial VALUES mode here + try { + if (window && window.jQuery) { + $(document).trigger('measurement_display_mode', ['VALUES']) + } + // also set Potree measuring tool state directly if present + if (viewer && viewer.measuringTool) { + try { + viewer.measuringTool.showLabels = true // show numeric/value labels + } catch (e) {} + } + } catch (e) {} + } + } + + // Listen for measurement display mode events (VALUES / NAMES / HIDE) + // and toggle the overlay name labels we create in this panel. + try { + const applyDisplayMode = (mode) => { + // remember the chosen mode so new overlays follow it + measurementDisplayMode = mode || measurementDisplayMode + if (!overlay || !overlayMap) return + for (const el of overlayMap.values()) { + if (!el) continue + if (measurementDisplayMode === 'NAMES') { + // show name overlays + el.style.display = '' + } else { + // hide name overlays in both VALUES and HIDE modes + el.style.display = 'none' + } + } + // Also ensure the measuringTool's numeric/value labels follow the mode. + try { + if (viewer && viewer.measuringTool) { + // show numeric/value labels only in VALUES mode + viewer.measuringTool.showLabels = measurementDisplayMode === 'VALUES' + } + } catch (e) {} + } + + // If jQuery triggers the custom event from potree toolbar, handle it + if (window && window.jQuery) { + $(document).on('measurement_display_mode', (e, mode) => { + applyDisplayMode(mode) + }) + } + + // Also attach a direct listener to input clicks inside the control in case + // the selectgroup implementation creates native inputs. + const measEl = document.getElementById('measurement_options_show') + if (measEl) { + measEl.addEventListener('click', (ev) => { + const input = + ev.target && ev.target.closest && ev.target.closest('input') + const value = input ? input.value : null + if (value) applyDisplayMode(value) + }) } + } catch (e) { + // non-fatal if event hooks cannot be installed } } From 7d2fb71b01ef530d6de8a35f0758eb1d1506c989 Mon Sep 17 00:00:00 2001 From: franmagn Date: Wed, 5 Nov 2025 15:12:38 +0100 Subject: [PATCH 41/52] style(#47): :art: moved stylings to .css --- src/MeasurementControl/measurementsPanel.css | 11 +++++++++++ src/MeasurementControl/measurementsPanel.js | 8 +------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/MeasurementControl/measurementsPanel.css b/src/MeasurementControl/measurementsPanel.css index cf5405e..eba5091 100644 --- a/src/MeasurementControl/measurementsPanel.css +++ b/src/MeasurementControl/measurementsPanel.css @@ -322,3 +322,14 @@ white-space: nowrap; z-index: 2100; } + +/* Container overlay for on-canvas measurement labels. */ +.measurement-label-overlay { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 2000; +} diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index 00f3517..e01442f 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -75,13 +75,7 @@ export function initMeasurementsPanel(viewer) { if (renderArea) { overlay = document.createElement('div') overlay.id = 'measurement_label_overlay' - overlay.style.position = 'absolute' - overlay.style.left = '0' - overlay.style.top = '0' - overlay.style.width = '100%' - overlay.style.height = '100%' - overlay.style.pointerEvents = 'none' - overlay.style.zIndex = '2000' + overlay.classList.add('measurement-label-overlay') renderArea.appendChild(overlay) } const listDivider = document.createElement('div') From e269d394e77b92429b013728fb95b1b9a468eff5 Mon Sep 17 00:00:00 2001 From: franmagn Date: Wed, 5 Nov 2025 15:27:03 +0100 Subject: [PATCH 42/52] fix(#47): :bug: fix deletion of name labels in UI fixed behaviour after deleting measurements. Now UI is immediately refreshed, not needing anymore to move the camera position to see the labels of deleted points disappear --- src/MeasurementControl/measurementsPanel.js | 25 +++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/MeasurementControl/measurementsPanel.js b/src/MeasurementControl/measurementsPanel.js index e01442f..5be335e 100644 --- a/src/MeasurementControl/measurementsPanel.js +++ b/src/MeasurementControl/measurementsPanel.js @@ -918,9 +918,13 @@ export function initMeasurementsPanel(viewer) { // Cleanup overlay labels for removed measurements and update positions try { // remove overlay labels for uuids that no longer exist - const known = new Set(itemsRaw.map((it) => it.obj.uuid)) + const uuidsWithPoints = new Set( + itemsRaw + .filter((it) => it.obj && it.obj.points && it.obj.points.length > 0) + .map((it) => it.obj.uuid) + ) for (const k of Array.from(overlayMap.keys())) { - if (!known.has(k)) { + if (!uuidsWithPoints.has(k)) { const el = overlayMap.get(k) if (el && el.parentElement) el.parentElement.removeChild(el) overlayMap.delete(k) @@ -947,6 +951,16 @@ export function initMeasurementsPanel(viewer) { try { obj.addEventListener(ev, () => { rebuildMeasurementList() + // If this object no longer has any points, remove any overlay + // immediately so the on-canvas label doesn't linger. + try { + if (!obj.points || obj.points.length === 0) { + const ol = overlayMap.get(obj.uuid) + if (ol && ol.parentElement) ol.parentElement.removeChild(ol) + overlayMap.delete(obj.uuid) + } + } catch (_e) {} + if (lastSelection.uuid === obj.uuid) { updateActiveSelection(obj.uuid) showPanelInMeasurements() @@ -1112,6 +1126,13 @@ export function initMeasurementsPanel(viewer) { scene.removeVolume(obj) else if (scene.removeProfile && scene.profiles.includes(obj)) scene.removeProfile(obj) + // Remove any on-canvas overlay immediately for this uuid so the + // label doesn't linger while other async updates occur. + try { + const ol = overlayMap.get(obj.uuid) + if (ol && ol.parentElement) ol.parentElement.removeChild(ol) + overlayMap.delete(obj.uuid) + } catch (_e) {} rebuildMeasurementList() return } From ac23d5a33b246d8c6957d396ef20631194aa423f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gaute=20Fl=C3=A6gstad?= Date: Fri, 7 Nov 2025 15:41:43 +0100 Subject: [PATCH 43/52] feat(#50): :sparkles: scene is now more tabbable --- src/Accessibility/makeMenuTabbable.js | 162 ++++++++++++++++++++++++++ src/main.js | 1 - 2 files changed, 162 insertions(+), 1 deletion(-) diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index 1dfa94d..04821f3 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -7,6 +7,8 @@ export function makeMenuTabbable() { makePanelsTabbable() makeElevationControlTabbable() makeAcceptedFilteringTabbable() + makeObjectsTabbable() + makeObjectsDropdownsTabbable() makeMeasurementsTabbable() makeAppearancePanelTabbable() makeToolsPanelTabbable() @@ -328,3 +330,163 @@ function makeMeasurementsTabbable() { }) }) } + +/** + * Makes the Scene > Objects tree tabbable and keyboard operable + * - Tab to anchors + * - Enter/Space = select (click) + * - ArrowRight = open node, ArrowLeft = close node (uses jsTree if available) + * - ArrowUp/ArrowDown = move focus to previous/next visible item + * - Home/End = first/last visible item + */ +function makeObjectsTabbable() { + const install = (tree) => { + if (!tree) return + + // Ensure all anchors are tabbable + const setTabbable = (root) => { + root.querySelectorAll('a.jstree-anchor').forEach((a) => { + a.tabIndex = 0 + }) + } + setTabbable(tree) + + // Keep anchors tabbable when jsTree updates DOM + const mo = new MutationObserver((muts) => { + for (const m of muts) { + if (m.addedNodes && m.addedNodes.length) { + m.addedNodes.forEach((n) => { + if (n.nodeType === 1) setTabbable(n) + }) + } + } + }) + mo.observe(tree, { childList: true, subtree: true }) + + const getAnchors = () => + Array.from(tree.querySelectorAll('a.jstree-anchor')) + const focusMove = (from, dir) => { + const anchors = getAnchors() + const i = anchors.indexOf(from) + const next = anchors[i + dir] + if (next) next.focus() + } + const focusEdge = (toLast) => { + const anchors = getAnchors() + const target = toLast ? anchors[anchors.length - 1] : anchors[0] + if (target) target.focus() + } + + // Delegate key handling on anchors + tree.addEventListener('keydown', (e) => { + const a = e.target + if ( + !a || + !(a instanceof HTMLElement) || + !a.classList.contains('jstree-anchor') + ) + return + const li = a.closest('li') + const id = li && li.id + const $ = window.jQuery || window.$ + const inst = $ && $(tree).jstree ? $(tree).jstree(true) : null + + switch (e.key) { + case 'Enter': + case ' ': // space + e.preventDefault() + a.click() + break + case 'ArrowDown': + e.preventDefault() + focusMove(a, +1) + break + case 'ArrowUp': + e.preventDefault() + focusMove(a, -1) + break + case 'Home': + e.preventDefault() + focusEdge(false) + break + case 'End': + e.preventDefault() + focusEdge(true) + break + case 'ArrowRight': + e.preventDefault() + if (inst && id) { + inst.open_node(id) + } else if (li && li.classList.contains('jstree-closed')) { + const toggle = li.querySelector('.jstree-ocl') + if (toggle) + toggle.dispatchEvent(new MouseEvent('click', { bubbles: true })) + } + break + case 'ArrowLeft': + e.preventDefault() + if (inst && id) { + inst.close_node(id) + } else if (li && li.classList.contains('jstree-open')) { + const toggle = li.querySelector('.jstree-ocl') + if (toggle) + toggle.dispatchEvent(new MouseEvent('click', { bubbles: true })) + } + break + } + }) + } + + const tryInit = () => { + const tree = document.getElementById('scene_objects') + if (tree) { + install(tree) + return true + } + return false + } + + if (!tryInit()) { + // Wait for GUI to load + const obs = new MutationObserver(() => { + if (tryInit()) obs.disconnect() + }) + obs.observe(document.body, { childList: true, subtree: true }) + } +} + +/** + * Make dropdowns in Properties tabbable: focus the associated input/select when label is activated via keyboard. + */ +function makeObjectsDropdownsTabbable() { + const make = () => { + const container = document.getElementById('potree_menu') + if (!container) return false + + // Labels that point to inputs/selects + container.querySelectorAll('label[for]').forEach((lbl) => { + lbl.tabIndex = 0 + lbl.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + const id = lbl.getAttribute('for') + const target = id && document.getElementById(id) + if (target instanceof HTMLElement) target.focus() + } + }) + }) + + // Ensure selects are in tab order (usually default) and openable via keyboard focus + container.querySelectorAll('select').forEach((sel) => { + sel.tabIndex = 0 + }) + return true + } + + if (!make()) { + const obs = new MutationObserver(() => { + if (make()) obs.disconnect() + }) + obs.observe(document.body, { childList: true, subtree: true }) + } +} diff --git a/src/main.js b/src/main.js index 87aaafe..45714a4 100644 --- a/src/main.js +++ b/src/main.js @@ -21,7 +21,6 @@ async function init() { POTREE_POINTCLOUD_URLS, POTREE_SETTINGS ) - potreeViewer.addEventListener('camera_changed', updateText) setupRightClickListener(potreeViewer) From fc23a697815682ab9dea363859205051fea6ce2b Mon Sep 17 00:00:00 2001 From: Alicia Westad Rasmussen Date: Mon, 10 Nov 2025 02:10:52 +0100 Subject: [PATCH 44/52] Added complete user guide with screenshots, linked to README --- README.md | 59 +-- src/UserGuide/Userguide.md | 359 ++++++++++++++++++ src/UserGuide/imagesUserGuide/00_icons.png | Bin 0 -> 15951 bytes .../imagesUserGuide/01_menuBarTabs.png | Bin 0 -> 56290 bytes .../02_ElevationControlTab.png | Bin 0 -> 43987 bytes .../03_ElevationControlTab.png | Bin 0 -> 13805 bytes .../imagesUserGuide/04_AcceptedFilter.png | Bin 0 -> 25876 bytes .../imagesUserGuide/05_AcceptedFilter.png | Bin 0 -> 12829 bytes .../imagesUserGuide/06_Measurements.png | Bin 0 -> 89288 bytes .../imagesUserGuide/07_SavedLocations.png | Bin 0 -> 21161 bytes .../imagesUserGuide/08_Appearance.png | Bin 0 -> 46846 bytes src/UserGuide/imagesUserGuide/09_Tools.png | Bin 0 -> 59971 bytes src/UserGuide/imagesUserGuide/10_Scene.png | Bin 0 -> 117787 bytes .../imagesUserGuide/11_SavedLocations.png | Bin 0 -> 28973 bytes 14 files changed, 361 insertions(+), 57 deletions(-) create mode 100644 src/UserGuide/Userguide.md create mode 100644 src/UserGuide/imagesUserGuide/00_icons.png create mode 100644 src/UserGuide/imagesUserGuide/01_menuBarTabs.png create mode 100644 src/UserGuide/imagesUserGuide/02_ElevationControlTab.png create mode 100644 src/UserGuide/imagesUserGuide/03_ElevationControlTab.png create mode 100644 src/UserGuide/imagesUserGuide/04_AcceptedFilter.png create mode 100644 src/UserGuide/imagesUserGuide/05_AcceptedFilter.png create mode 100644 src/UserGuide/imagesUserGuide/06_Measurements.png create mode 100644 src/UserGuide/imagesUserGuide/07_SavedLocations.png create mode 100644 src/UserGuide/imagesUserGuide/08_Appearance.png create mode 100644 src/UserGuide/imagesUserGuide/09_Tools.png create mode 100644 src/UserGuide/imagesUserGuide/10_Scene.png create mode 100644 src/UserGuide/imagesUserGuide/11_SavedLocations.png diff --git a/README.md b/README.md index 5b80ae5..c4410a4 100644 --- a/README.md +++ b/README.md @@ -64,61 +64,6 @@ Then in a new terminal run the tests: npm run test ``` - -## Purpose - -## Functionalities -### Moving the viewpoint -Left click and hold anywhere on the screen, while moving the mouse or use a second finger on the touchpad to dynamically move the viewpoint. By doing this you can tilt and rotate the viewpoint. - -### Zoom -To zoom in and out the user can either: -1. Utilize the scroll wheel on a mouse. -2. Drag two fingers on the touchpad towards each other or away from each other. - -### Move -To move within the application, double click on a point and you will automatically be moved to that point. -If you want to move across larger distances, for example look at a point from a different point cloud, it is recommended to zoom out first and then choose a point closer to where you want to be positioned. -###Coordinates -In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most resent point the user has clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the surface level. - -### Menu Bar -The icon of three vertical lines stacked in the top left corner show and collapses the sidebar where most of the functionalities are located. - -### Minimap -The map icon below the menu bar icon in the top left corner, will show and collapse a minimap. -In the minimap you can zoom using the mouse, touchpad or the icons in the top left corner. -You can move around by clicking and moving the mouse around simultaneously. - -### Points -Points can be saved by clicking on the icon in the image below in the Measurements tab, then clicking on the point in the point cloud. -A point will show up under list of measurements and points in a list. -XYZ values ask Klein -The x y z coordinates at the top are Earth Cantered Earth Fixed(ECEF) coordinates, EPSG 4978. -The data for each point in the table below is: latitude and longitude in degrees, elevation measured from the sea level, point source, accepted status, Total Vertical Uncertainty(TVU) and Total Horizontal Uncertainty(THU). -To delete a point, click on the red x to the right of the point in the List of measurements. -There is added toggle functionality below the list of points to hide and show all point labels on the point cloud, see image below. - -### Annotations -Annotations can be created under the Saved Locations section in the side bar. Click the Add a location button, then click on a point in the point cloud. As you hover over points in the point cloud, there should be an annotation label above the cursor to confirm that you can choose a point now. -The annotation will be added to a list below the add a location button upon creation. -There are three icons on the annotation. The pen icon allows you to rename the annotation, the arrow icon allows you to lerp to the annotation from anywhere on the map and the red x icon will delete the annotation. -When pressing the annotation text on the saved annotation, you can add a description by clicking the pen icon to the right of Annotation Description. The point coordinates and the camera coordinates will be displayed below the annotation description. -There is added toggle functionality below the list of annotations to hide and show all annotation labels on the point cloud, see image below. - -### Compass -Under Tools in the menu bar, there is a compass icon that will display a compass in the top right corner when you press it. Collapse it by clicking once more on the compass icon in the menu bar. - -### Colour scale -There are nine different gradient schemes to choose from under the Elevation Control tab. You change the colour scale for all the point clouds by clicking them. - -### Elevation Control -Elevation control applies gradient based on the elevation of the data points, and can be adjusted on the elevation range slider under the elevation control tab. - -### Height Profile -Under Measurements in the menu bar there is functionality to create a height profile. Click the 2D height profile icon showed in the image below. Now you can click on the desired points in the point cloud. The order you click on the points matter, start with clicking on the first point you want to show up in the diagram, move to the second point and so on. When you have clicked on all the points you want to include, you can right click anywhere in the point cloud to exit this add point mode. Go back to the menu bar, the points will be saved under List of Measurements for the profile you made. Display the height profile by clicking the show 2d profile button at the bottom of the measurements section. If nothing shows up, make sure that your desired profile is selected first under list of measurements and profile, by clicking on it. When you chow the height profile, you can hover over the 2D profile and see a marker in the point cloud move, visualizing where the points are taken from. Collapse the height profile by clicking at the black x in the top right corner of the pop-up window. - -### Filtering for accepted points -Under the Accepted Filter tab in the menu bar there is a button for Activate accepted filter. When pressing this button, all the points in the point clouds will be displayed as either black: for not accepted or white: for accepted. The acceptance data of a point is an attribute that shows whether the point is accepted as part of the seabed. -To display the point cloud with colour again, go to the elevation control tab and press the activate elevation control button. +### User Guide +For a complete User Guide to fundamentals and all functionality click [here](src/UserGuide/Userguide.md). diff --git a/src/UserGuide/Userguide.md b/src/UserGuide/Userguide.md new file mode 100644 index 0000000..70e8d72 --- /dev/null +++ b/src/UserGuide/Userguide.md @@ -0,0 +1,359 @@ +# User Guide +This is a userguide for all functionality found in Molloy Explorer. For general information and SetUp, see [README](../../README.md) +## Table of Contents +- [Fundamentals](#fundamentals) + - [Moving the viewpoint](#moving-the-viewpoint) + - [Zoom](#zoom) + - [Move](#move) +- [Menu Bar](#functionalities) + - [Elevation Control](#elevation-control) + - [Accepted Filter](#accepted-filter) + - [Measurements](#measurements) + - [Saved Locations](#saved-locations) + - [Appearance](#appearance) + - [Tools](#tools) + - [Scene](#scene) + - [About](#about) +- [Minimap](#minimap) +- [Coordinates](#coordinates) + + +## Fundamentals + +### Moving the Viewpoint +Left click and hold anywhere on the screen, while moving the mouse or use a second finger on the touchpad to dynamically move the viewpoint. By doing this you can tilt and rotate the viewpoint. + +### Zoom +To zoom in and out the user can either: +Utilize the scroll wheel on a mouse. +Drag two fingers on the touchpad towards each other or away from each other. + +### Move +To move within the application, double click on a point you wish to explore further and you will automatically be moved closer to that point. +If you want to move across larger distances, for example look at a point from a different point cloud, it is recommended to zoom out first and then double click on a point closer to where you want to be positioned. + +## Menu Bar + +In the top left corner there are two icons: +The top icon opens the menu bar and the bottom icon shows and collapses the minimap. Most of the functionalities are located in the menu bar. + + icons + + +There are eight tabs in the menu bar that can be opened and collapsed by clicking on them. + +tabs + +### Elevation Control +--- +Elevation control applies gradients based on the elevation of the data points. +By default elevation control is active. The “Activate elevation control” button will be visible and can be pressed after looking at the Accepted Filter(link to section below?) to reset the view back to default. See image below. +Use the slider to set the range by clicking and dragging the squares on either end of the scale. +Gradient is set to Clamp by default, but can be changed to “Repeat” or “Mirrored Repeat” by clicking on them. +There are nine different gradient schemes to choose from. These are also selected by clicking on them. + +ElevationControl + +ElevationControl + +### Accepted Filter +--- +The accepted filter contains one button to change the view to show which datapoints are accepted as part of the seabed, when the elevation control is active. When the “Activate accepted filter” button is pressed, information regarding the coloring of the datapoints is displayed. This data regarding if a point is accepted or not is an attribute to each datapoint and can not be changed. + +AcceptedFilter + +AcceptedFilter + +### Measurements +--- +The Measurements tab allows you to measure angles, distances, heights, areas, volumes, and other properties directly within the point cloud. All tools are located in the Measurements tab in the menu bar. You can perform multiple measurements simultaneously, and all results are tracked in the "List of Measurements" section. + +Measurements + +#### Measure Angle +To measure angles between points: +1. Click on the "Measure Angle" icon or text. +2. Click three points in the point cloud. A red triangle will appear connecting the points, and the corresponding angle will be displayed. +To adjust a point in the triangle, click on the point you want to move, then click a new point in the point cloud. +There is no limit to the number of triangles you can display. +Measurement details appear in the "List of Measurements" below the menu bar. The default name is "Distance#1"; make sure it is selected when reviewing the data. + +#### Inspect Point +To inspect a point in the point cloud: +1. Click the "Inspect Point" icon. +2. Click on the point you want to examine. +The coordinates and other available attributes of that point will be displayed in the corresponding panel. + +#### Measure Distance +To measure the distance between two points: +1. Click the "Measure Distance" icon. +2. Click the first point, then the second point in the point cloud. +The distance between the points will be displayed, and a connecting line will appear. +To adjust points, click the point and select a new location. + +#### Measure Height +To measure vertical height differences: +1. Click the "Measure Height" icon. +2. Click the lower point first, then the higher point. +The vertical distance will be displayed. + +#### Circle +To measure a circle: +1. Click the "Circle" icon. +2. Click the center point, then a point on the circumference. +The radius and circumference will be displayed. + +#### Azimuth +To measure azimuth (direction relative to north): +1. Click the "Azimuth" icon. +2. Click the starting point, then the ending point. +Azimuth measures the directional angle in degrees between two points relative to true north. + +#### Area +To measure a polygonal area: +1. Click the "Area" icon. +2. Click points to form the vertices of the polygon. +3. Double-click the last point to complete the polygon. +The calculated area will be displayed. + +#### Volume +To measure a 3D volume: +1. Click the "Volume" icon. +2. Select points to define the base polygon of the volume. +3. Click an additional point to define the top plane (height). +The volume enclosed by the selected points will be calculated. + +#### Sphere Volume +To measure a sphere’s volume: +1. Click the "Sphere Volume" icon. +2. Click the center point of the sphere, then a point on the surface to define the radius. +The sphere volume will be displayed. + +#### 2D Height Profile +To generate a 2D height profile along a line: +1. Click the "2D Height Profile" icon. +2. Click the starting point of the profile line, then click the ending point. +The profile line will appear, and a 2D plot of height along the line will be displayed. +You can hover over or click points on the profile to see specific elevation values. +Multiple profile lines can be drawn for comparison. +To adjust the profile line, select a point and move it to a new location. + +#### Remove All +Click the "Remove All" icon to clear all measurements currently displayed in the scene. This will remove all lines, polygons, volume measurements, height profiles, and labels at once. + +#### Deleting Measurements +To delete individual measurements: +1. Select the measurement in the "List of Measurements". +2. Click the red "x" icon next to the measurement. +This applies to all measurement types including angles, distances, heights, areas, volumes, spheres, circles, azimuths, and 2D height profiles. + +#### Show/Hide Labels +To show or hide labels for measurements: +1. Click the "Show Labels" button to display labels for all measurements currently in the scene. +2. Click the "Hide Labels" button to hide all measurement labels without deleting the measurements themselves. +This applies to all measurement types, including angles, distances, heights, areas, volumes, spheres, circles, azimuths, and 2D height profiles. + +#### List of Measurements +All measurements are tracked in the "List of Measurements" panel at the bottom of the menu bar. Each measurement can be selected to view detailed information or deleted individually. This list provides an easy way to manage multiple measurements in a large point cloud. + +### Saved Locations +--- +The Saved Locations tab allows you to quickly navigate to specific points or viewpoints that you have saved within the scene. Annotations can also be created here to mark points of interest. By default, annotation labels are visible in the point cloud and on the map, making it easy to locate important areas. + +SavedLocations + +SavedLocations + +#### Show/Hide Annotations +Below the list of annotations, there are toggle buttons to show or hide all annotation labels in the point cloud. Use this to declutter the view or focus on specific points as needed. + +#### Creating an Annotation +To create an annotation: +1. Click the "Add a Location" button in the Saved Locations section. +2. Click on a point in the point cloud. +As you hover over points, an annotation label will appear above the cursor to indicate that a point can be selected. +The annotation will be added to a list right below the "Add a Location" button upon creation. + +#### Managing Annotations +Each annotation in the list has three icons: +- **Pen Icon** – Rename the annotation or edit its description. +- **Arrow Icon** – Move the camera to the annotation from anywhere in the scene. +- **Red X Icon** – Delete the annotation. + +To add a description to an annotation: +1. Click the annotation text in the Saved Locations list. +2. Click the pen icon next to "Annotation Description". +The point coordinates and the current camera coordinates will be displayed below the description field. + +### Appearance +--- +The Appearance tab allows you to adjust the visual rendering and display settings of the point cloud and scene to optimize clarity, performance, and visual preference. + +Appearance + +#### Point Budget +The Point Budget controls the maximum number of points rendered at any time. +- Adjustable using a slider ranging from **100,000 to 10,000,000 points**. +- Higher values provide more detail but may impact performance, while lower values improve performance at the cost of detail. + +#### Field of View +The Field of View (FOV) controls the camera’s viewing angle. +- Adjustable using a slider ranging from **20° to 100°**. +- A wider FOV shows more of the scene but may distort perspective, while a narrower FOV provides a more focused view. + +#### Eye-Dome Lighting (EDL) +Eye-Dome Lighting enhances depth perception by shading points based on their relative distance. +- **Enable Checkbox** – Turn EDL on or off. +- **Radius Slider** – Adjusts the size of the area used to calculate shading. +- **Strength Slider** – Controls the intensity of the depth effect. +- **Opacity Slider** – Adjusts the transparency of the shading effect. + +#### Background +The Background setting controls the scene’s visual backdrop. Options include: +- **Skybox** – A textured 3D background simulating a sky. +- **Gradient** – Smooth transition between two colors. +- **Black** – Solid black background. +- **White** – Solid white background. +- **Globe** – Displays the Earth or a globe representation, this is the default. + +#### Other Settings +- **Splat Quality** – Adjusts the rendering quality of point splats: + - **Standard** – Default quality, optimized for performance. + - **High Quality** – Improved visual detail, may impact performance. +- **Min Node Size** – Controls the smallest size of nodes rendered in the point cloud. +- **Box** – Toggle the visibility of bounding boxes around point clouds or objects. +- **Lock View** – Keeps the bounding boxes or other visual guides in a fixed position. + +### Tools +--- +The Tools section is located in the menu bar and contains functionalities for clipping, navigation, camera control, and speed adjustment. Clicking on a tool will open the corresponding options. + +Tools + +#### Clipping + +Clipping allows you to focus on specific regions of the point cloud or dataset by hiding or highlighting data based on user-defined areas. + +- **Volume Clip** + Lets you define a 3D box or other volume to clip the data inside or outside of it. This is useful when you want to focus on a particular region of the seabed or point cloud. + +- **Polygon Clip** + Allows you to draw a polygon on the screen and clip data based on the shape of that polygon. Only data inside or outside the polygon will be affected depending on your settings. + +- **Draw a Selection Box** + Enables you to quickly create a rectangular selection in the scene. This box can then be used as a clipping volume to isolate a section of the dataset. + +- **Remove All Clipping Volumes** + Resets all clipping operations and displays the entire dataset again. Use this when you want to start over or remove all applied selections. + +#### Clip Task + +The Clip Task determines what happens to the points in the clipping area: + +- **None**: No changes are applied to the points within the clip volume. +- **Highlight**: Points within the clipping area are highlighted to make them easier to see. +- **Inside**: Only points inside the clipping area remain visible; all others are hidden. +- **Outside**: Only points outside the clipping area remain visible; all points inside are hidden. + +#### Clip Method + +When multiple clipping volumes are active, the Clip Method determines how they are combined: + +- **Inside Any**: Points inside any of the clipping volumes will be affected. This creates a union of all clipping areas. +- **Inside All**: Points must be inside all defined clipping volumes to be affected. This creates an intersection of all volumes. + +#### Navigation + +Navigation tools allow you to move around the dataset and view it from different angles or perspectives. + +- **Earth Control** + Moves the camera around the globe, allowing rotation, panning, and tilting. Useful for general exploration of the point cloud relative to the Earth’s surface. + +- **Fly Control** + Simulates a flying camera, allowing smooth free movement in any direction. Useful for inspecting large areas of the seabed. + +- **Helicopter Control** + Similar to Fly Control, but movement mimics the behaviour of a helicopter, including tilt and banking effects. + +- **Orbit Control** + Lets the camera orbit around a selected point, object, or region. Ideal for inspecting objects from multiple angles without changing the target point. + +- **Full Extent** + Resets the view to show the entire dataset or point cloud. This is useful if you have zoomed in too far or moved to a specific area and want to see the whole scene. + +- **Navigation Cube** + A visual cube in the scene that allows you to quickly change views by clicking on its faces, edges, or corners. It can switch between standard perspectives like top, side, or front views. + +- **Compass** + Displays a compass in the top right corner of the screen. This shows the current orientation and allows you to reset the view to north-up. + +- **Camera Animation** + Lets you create or play smooth camera movements, such as flying along a path or rotating around a point. + +- **Left View / Right View / Front View / Back View / Top View / Bottom View** + Predefined fixed perspectives that allow you to quickly switch to standard orthogonal views of your dataset. + +#### Camera Projection + +Camera projection defines how depth and distance are perceived in the 3D view. + +- **Perspective** + Standard 3D view where objects appear smaller as they get farther away. This view simulates how humans naturally perceive depth. + +- **Orthographic** + Objects maintain the same size regardless of distance. This is useful for technical inspections, measurements, or plan views where perspective distortion is not desired. + +#### Speed + +The Speed control adjusts how fast the camera or navigation responds to user inputs. + +- Increasing speed makes zooming, panning, and flying faster, which is useful for exploring large datasets quickly. +- Decreasing speed allows for precise adjustments when inspecting small details or measuring specific points. +- The speed will be adjusted automatically when you zoom in and out, providing a more intuitive navigation experience. + +This section ensures that all users can efficiently navigate and manipulate the point cloud data, while providing control over the view, clipping, and camera behaviour. + + +### Scene +--- +The Scene tab allows you to manage and organize all the elements currently loaded in the application. It provides tools to view, modify, and export components such as point clouds, measurements, annotations, and other objects, giving you complete control over the content of your 3D environment. + +Scene + +#### Export +The Export feature allows you to save elements from the scene into different file formats for external use: +1. **JSON** – Exports the scene configuration and metadata for use in other applications or for project backup. +2. **DXF** – Exports measurements and geometry into a CAD-compatible format. +3. **Potree** – Exports the point cloud and scene data into a Potree-compatible format for web-based visualization. + +#### Objects +The Objects section lists all items currently present in the scene, grouped into categories: +- **Point Clouds** – Displays all loaded point clouds in the scene. You can toggle visibility, inspect properties, or remove them. +- **Measurements** – Shows all measurements currently in the scene, including angles, distances, heights, areas, volumes, and 2D height profiles. +- **Annotations** – Displays any annotations added to the scene, allowing for review or modification. +- **Other** – Contains additional scene elements: + - **Camera** – Tracks the position and orientation of the current viewpoint. +- **Vectors** – Displays any vector elements present in the scene. +- **Images** – Shows any images linked to points or objects in the scene. + +#### Properties +The Properties panel provides detailed information about the selected object in the scene. Depending on the object type, you can view: +- Coordinates and dimensions +- Colors and intensity values +- Metadata and attributes +- Visibility and rendering settings + +This section gives you full control over the content, allowing you to inspect, modify, or export scene elements efficiently. + + +### About +--- +General information regarding the application, licences, contributors and more will show up here. This is default information from Potree. + +## Minimap +The map icon below the menu bar icon in the top left corner, will show and collapse a minimap. +In the minimap you can zoom using the mouse, touchpad or the icons in the top left corner. +You can move around by clicking and moving the mouse around simultaneously. + +## Coordinates +In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most recent point the user has clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the surface level. \ No newline at end of file diff --git a/src/UserGuide/imagesUserGuide/00_icons.png b/src/UserGuide/imagesUserGuide/00_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..1aef21c00d5e32f8ca11602aaefa6153cb82d5a3 GIT binary patch literal 15951 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 xU>aC-0e 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 literal 0 HcmV?d00001 diff --git a/src/UserGuide/imagesUserGuide/02_ElevationControlTab.png b/src/UserGuide/imagesUserGuide/02_ElevationControlTab.png new file mode 100644 index 0000000000000000000000000000000000000000..26ef7b1cf9b5c609872efab968181641f9c054d1 GIT binary patch literal 43987 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 Digxs= literal 0 HcmV?d00001 diff --git a/src/UserGuide/imagesUserGuide/03_ElevationControlTab.png b/src/UserGuide/imagesUserGuide/03_ElevationControlTab.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3fcdfc41850a81f5e8bb58c2870515084f461c GIT binary patch literal 13805 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

{TE;c)m-NN=0 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 literal 0 HcmV?d00001 diff --git a/src/UserGuide/imagesUserGuide/05_AcceptedFilter.png b/src/UserGuide/imagesUserGuide/05_AcceptedFilter.png new file mode 100644 index 0000000000000000000000000000000000000000..8dfa909b325e3994a88dfa8fbd9276c94c457439 GIT binary patch literal 12829 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 H_QSsc_MgM; literal 0 HcmV?d00001 diff --git a/src/UserGuide/imagesUserGuide/06_Measurements.png b/src/UserGuide/imagesUserGuide/06_Measurements.png new file mode 100644 index 0000000000000000000000000000000000000000..d24f47ddf4aaa448de4c8acc0df8c3d6606d4705 GIT binary patch literal 89288 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 W*j)+OqcC2Q=h6k-`BI&05&r=wTDyn< literal 0 HcmV?d00001 diff --git a/src/UserGuide/imagesUserGuide/08_Appearance.png b/src/UserGuide/imagesUserGuide/08_Appearance.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9f09e5c7c9fad846f03b4e3c80cfe1aa50d23d GIT binary patch literal 46846 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�<_#(8 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 literal 0 HcmV?d00001 diff --git a/src/UserGuide/imagesUserGuide/10_Scene.png b/src/UserGuide/imagesUserGuide/10_Scene.png new file mode 100644 index 0000000000000000000000000000000000000000..045067ae4b824fcd542409610f8a0112a069ee66 GIT binary patch literal 117787 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 z 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 literal 0 HcmV?d00001 diff --git a/src/UserGuide/imagesUserGuide/11_SavedLocations.png b/src/UserGuide/imagesUserGuide/11_SavedLocations.png new file mode 100644 index 0000000000000000000000000000000000000000..83153ed5bbde0c56ea453c80c75e171d3d67cf44 GIT binary patch literal 28973 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 z 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 literal 0 HcmV?d00001 From effc475c834828da968712206c6deca00341b98e Mon Sep 17 00:00:00 2001 From: Alicia Westad Rasmussen Date: Mon, 10 Nov 2025 08:37:39 +0100 Subject: [PATCH 45/52] Update Userguide.md removed a note in text --- src/UserGuide/Userguide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/UserGuide/Userguide.md b/src/UserGuide/Userguide.md index 70e8d72..660cf27 100644 --- a/src/UserGuide/Userguide.md +++ b/src/UserGuide/Userguide.md @@ -47,7 +47,7 @@ There are eight tabs in the menu bar that can be opened and collapsed by clickin ### Elevation Control --- Elevation control applies gradients based on the elevation of the data points. -By default elevation control is active. The “Activate elevation control” button will be visible and can be pressed after looking at the Accepted Filter(link to section below?) to reset the view back to default. See image below. +By default elevation control is active. The “Activate elevation control” button will be visible and can be pressed after looking at the Accepted Filter to reset the view back to default. See image below. Use the slider to set the range by clicking and dragging the squares on either end of the scale. Gradient is set to Clamp by default, but can be changed to “Repeat” or “Mirrored Repeat” by clicking on them. There are nine different gradient schemes to choose from. These are also selected by clicking on them. @@ -356,4 +356,4 @@ In the minimap you can zoom using the mouse, touchpad or the icons in the top le You can move around by clicking and moving the mouse around simultaneously. ## Coordinates -In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most recent point the user has clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the surface level. \ No newline at end of file +In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most recent point the user has clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the surface level. From eb9e1b5ac6ab4240c9e3f30da6dc29635ea94b95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gaute=20Fl=C3=A6gstad?= Date: Mon, 10 Nov 2025 09:16:09 +0100 Subject: [PATCH 46/52] fix(#61): :bug: Ensure potreeViewer is always enabled --- src/main.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main.js b/src/main.js index 45714a4..7309700 100644 --- a/src/main.js +++ b/src/main.js @@ -16,6 +16,10 @@ async function init() { console.error('Failed to load country borders:', error) } + if (!window.viewer) { + window.viewer = window.potreeViewer + } + window.potreeViewer = await createPotreeViewer( 'potree_render_area', POTREE_POINTCLOUD_URLS, From e6734a8326814a362a658b1036e174e2b0d31f46 Mon Sep 17 00:00:00 2001 From: Alicia Westad Rasmussen Date: Mon, 10 Nov 2025 09:35:26 +0100 Subject: [PATCH 47/52] docs(#18): updated the user guide with the reviewed comments, moved screenshots to public/img #18 --- README.md | 2 +- src/UserGuide/Userguide.md => Userguide.md | 83 +++++++++++------- .../img}/00_icons.png | Bin .../img}/01_menuBarTabs.png | Bin .../img}/02_ElevationControlTab.png | Bin .../img}/03_ElevationControlTab.png | Bin .../img}/04_AcceptedFilter.png | Bin .../img}/05_AcceptedFilter.png | Bin .../img}/06_Measurements.png | Bin .../img}/07_SavedLocations.png | Bin .../img}/08_Appearance.png | Bin .../img}/09_Tools.png | Bin .../img}/10_Scene.png | Bin .../img}/11_SavedLocations.png | Bin public/img/12_Measurements_updated.jpg | Bin 0 -> 29931 bytes public/img/13_Tools_updated.jpg | Bin 0 -> 23535 bytes 16 files changed, 50 insertions(+), 35 deletions(-) rename src/UserGuide/Userguide.md => Userguide.md (86%) rename {src/UserGuide/imagesUserGuide => public/img}/00_icons.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/01_menuBarTabs.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/02_ElevationControlTab.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/03_ElevationControlTab.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/04_AcceptedFilter.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/05_AcceptedFilter.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/06_Measurements.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/07_SavedLocations.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/08_Appearance.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/09_Tools.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/10_Scene.png (100%) rename {src/UserGuide/imagesUserGuide => public/img}/11_SavedLocations.png (100%) create mode 100644 public/img/12_Measurements_updated.jpg create mode 100644 public/img/13_Tools_updated.jpg diff --git a/README.md b/README.md index c4410a4..7862719 100644 --- a/README.md +++ b/README.md @@ -65,5 +65,5 @@ npm run test ``` ### User Guide -For a complete User Guide to fundamentals and all functionality click [here](src/UserGuide/Userguide.md). +For a complete user guide on fundamentals and all functionality click [here](Userguide.md). diff --git a/src/UserGuide/Userguide.md b/Userguide.md similarity index 86% rename from src/UserGuide/Userguide.md rename to Userguide.md index 70e8d72..2b043b1 100644 --- a/src/UserGuide/Userguide.md +++ b/Userguide.md @@ -1,5 +1,5 @@ # User Guide -This is a userguide for all functionality found in Molloy Explorer. For general information and SetUp, see [README](../../README.md) +This is a user guide for all functionality found in Molloy Explorer. For general information and SetUp, see [README](README.md). ## Table of Contents - [Fundamentals](#fundamentals) - [Moving the viewpoint](#moving-the-viewpoint) @@ -37,12 +37,12 @@ If you want to move across larger distances, for example look at a point from a In the top left corner there are two icons: The top icon opens the menu bar and the bottom icon shows and collapses the minimap. Most of the functionalities are located in the menu bar. - icons + icons There are eight tabs in the menu bar that can be opened and collapsed by clicking on them. -tabs +tabs ### Elevation Control --- @@ -52,28 +52,31 @@ Use the slider to set the range by clicking and dragging the squares on either e Gradient is set to Clamp by default, but can be changed to “Repeat” or “Mirrored Repeat” by clicking on them. There are nine different gradient schemes to choose from. These are also selected by clicking on them. -ElevationControl +ElevationControl -ElevationControl +ElevationControl ### Accepted Filter --- -The accepted filter contains one button to change the view to show which datapoints are accepted as part of the seabed, when the elevation control is active. When the “Activate accepted filter” button is pressed, information regarding the coloring of the datapoints is displayed. This data regarding if a point is accepted or not is an attribute to each datapoint and can not be changed. +The accepted filter contains one button to change the view to show which datapoints are accepted as part of the seabed, when the elevation control is active. When the “Activate accepted filter” button is pressed, accepted points are displayed in white and not accepted points are displayed in black. This data regarding if a point is accepted or not is an attribute of each datapoint and can not be changed. -AcceptedFilter +AcceptedFilter -AcceptedFilter +AcceptedFilter ### Measurements --- The Measurements tab allows you to measure angles, distances, heights, areas, volumes, and other properties directly within the point cloud. All tools are located in the Measurements tab in the menu bar. You can perform multiple measurements simultaneously, and all results are tracked in the "List of Measurements" section. -Measurements +For all the measurements below, you stop by right clicking. + +Measurements #### Measure Angle To measure angles between points: 1. Click on the "Measure Angle" icon or text. -2. Click three points in the point cloud. A red triangle will appear connecting the points, and the corresponding angle will be displayed. +2. Click three points in the point cloud. A red triangle will appear connecting the points, and the corresponding angle will be displayed. + To adjust a point in the triangle, click on the point you want to move, then click a new point in the point cloud. There is no limit to the number of triangles you can display. Measurement details appear in the "List of Measurements" below the menu bar. The default name is "Distance#1"; make sure it is selected when reviewing the data. @@ -82,31 +85,36 @@ Measurement details appear in the "List of Measurements" below the menu bar. The To inspect a point in the point cloud: 1. Click the "Inspect Point" icon. 2. Click on the point you want to examine. + The coordinates and other available attributes of that point will be displayed in the corresponding panel. #### Measure Distance To measure the distance between two points: 1. Click the "Measure Distance" icon. -2. Click the first point, then the second point in the point cloud. +2. Click the first point, then the second point in the point cloud. + The distance between the points will be displayed, and a connecting line will appear. To adjust points, click the point and select a new location. #### Measure Height To measure vertical height differences: 1. Click the "Measure Height" icon. -2. Click the lower point first, then the higher point. +2. Click the lower point first, then the higher point. + The vertical distance will be displayed. #### Circle To measure a circle: 1. Click the "Circle" icon. -2. Click the center point, then a point on the circumference. +2. Click the center point, then a point on the circumference. + The radius and circumference will be displayed. #### Azimuth To measure azimuth (direction relative to north): 1. Click the "Azimuth" icon. -2. Click the starting point, then the ending point. +2. Click the starting point, then the ending point. + Azimuth measures the directional angle in degrees between two points relative to true north. #### Area @@ -114,26 +122,31 @@ To measure a polygonal area: 1. Click the "Area" icon. 2. Click points to form the vertices of the polygon. 3. Double-click the last point to complete the polygon. + The calculated area will be displayed. #### Volume To measure a 3D volume: 1. Click the "Volume" icon. 2. Select points to define the base polygon of the volume. -3. Click an additional point to define the top plane (height). +3. Click an additional point to define the top plane (height). + The volume enclosed by the selected points will be calculated. #### Sphere Volume To measure a sphere’s volume: 1. Click the "Sphere Volume" icon. -2. Click the center point of the sphere, then a point on the surface to define the radius. +2. Click the center point of the sphere, then a point on the surface to define the radius. + The sphere volume will be displayed. #### 2D Height Profile To generate a 2D height profile along a line: 1. Click the "2D Height Profile" icon. -2. Click the starting point of the profile line, then click the ending point. -The profile line will appear, and a 2D plot of height along the line will be displayed. +2. Click the starting point of the profile line, then click the ending point. +3. Click the "show 2D profile". + +A 2D plot of height along the line will be displayed. You can hover over or click points on the profile to see specific elevation values. Multiple profile lines can be drawn for comparison. To adjust the profile line, select a point and move it to a new location. @@ -144,13 +157,15 @@ Click the "Remove All" icon to clear all measurements currently displayed in the #### Deleting Measurements To delete individual measurements: 1. Select the measurement in the "List of Measurements". -2. Click the red "x" icon next to the measurement. +2. Click the red "x" icon next to the measurement. + This applies to all measurement types including angles, distances, heights, areas, volumes, spheres, circles, azimuths, and 2D height profiles. -#### Show/Hide Labels -To show or hide labels for measurements: -1. Click the "Show Labels" button to display labels for all measurements currently in the scene. -2. Click the "Hide Labels" button to hide all measurement labels without deleting the measurements themselves. +#### Values/Names/Hide All Labels +To show or hide Values or Names for measurements: +1. Click the "Values" or "Names" button to display it for all measurements currently in the scene. +2. Click the "Hide All" button to hide all measurement labels without deleting the measurements themselves. + This applies to all measurement types, including angles, distances, heights, areas, volumes, spheres, circles, azimuths, and 2D height profiles. #### List of Measurements @@ -160,9 +175,9 @@ All measurements are tracked in the "List of Measurements" panel at the bottom o --- The Saved Locations tab allows you to quickly navigate to specific points or viewpoints that you have saved within the scene. Annotations can also be created here to mark points of interest. By default, annotation labels are visible in the point cloud and on the map, making it easy to locate important areas. -SavedLocations +SavedLocations -SavedLocations +SavedLocations #### Show/Hide Annotations Below the list of annotations, there are toggle buttons to show or hide all annotation labels in the point cloud. Use this to declutter the view or focus on specific points as needed. @@ -171,6 +186,7 @@ Below the list of annotations, there are toggle buttons to show or hide all anno To create an annotation: 1. Click the "Add a Location" button in the Saved Locations section. 2. Click on a point in the point cloud. + As you hover over points, an annotation label will appear above the cursor to indicate that a point can be selected. The annotation will be added to a list right below the "Add a Location" button upon creation. @@ -183,13 +199,14 @@ Each annotation in the list has three icons: To add a description to an annotation: 1. Click the annotation text in the Saved Locations list. 2. Click the pen icon next to "Annotation Description". + The point coordinates and the current camera coordinates will be displayed below the description field. ### Appearance --- The Appearance tab allows you to adjust the visual rendering and display settings of the point cloud and scene to optimize clarity, performance, and visual preference. -Appearance +Appearance #### Point Budget The Point Budget controls the maximum number of points rendered at any time. @@ -228,7 +245,7 @@ The Background setting controls the scene’s visual backdrop. Options include: --- The Tools section is located in the menu bar and contains functionalities for clipping, navigation, camera control, and speed adjustment. Clicking on a tool will open the corresponding options. -Tools +Tools #### Clipping @@ -300,8 +317,6 @@ Camera projection defines how depth and distance are perceived in the 3D view. - **Perspective** Standard 3D view where objects appear smaller as they get farther away. This view simulates how humans naturally perceive depth. -- **Orthographic** - Objects maintain the same size regardless of distance. This is useful for technical inspections, measurements, or plan views where perspective distortion is not desired. #### Speed @@ -318,7 +333,7 @@ This section ensures that all users can efficiently navigate and manipulate the --- The Scene tab allows you to manage and organize all the elements currently loaded in the application. It provides tools to view, modify, and export components such as point clouds, measurements, annotations, and other objects, giving you complete control over the content of your 3D environment. -Scene +Scene #### Export The Export feature allows you to save elements from the scene into different file formats for external use: @@ -329,8 +344,8 @@ The Export feature allows you to save elements from the scene into different fil #### Objects The Objects section lists all items currently present in the scene, grouped into categories: - **Point Clouds** – Displays all loaded point clouds in the scene. You can toggle visibility, inspect properties, or remove them. -- **Measurements** – Shows all measurements currently in the scene, including angles, distances, heights, areas, volumes, and 2D height profiles. -- **Annotations** – Displays any annotations added to the scene, allowing for review or modification. +- **Measurements** – See [Measurements panel](#measurements). +- **Annotations** – See [Saved Locations panel](#saved-locations). - **Other** – Contains additional scene elements: - **Camera** – Tracks the position and orientation of the current viewpoint. - **Vectors** – Displays any vector elements present in the scene. @@ -353,7 +368,7 @@ General information regarding the application, licences, contributors and more w ## Minimap The map icon below the menu bar icon in the top left corner, will show and collapse a minimap. In the minimap you can zoom using the mouse, touchpad or the icons in the top left corner. -You can move around by clicking and moving the mouse around simultaneously. +You can move around by clicking and moving the mouse around simultaneously. The coordinates your cursor hover over will show up in the top right corner of the minimap. ## Coordinates -In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most recent point the user has clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the surface level. \ No newline at end of file +In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most recent point the user has double clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the sea level. \ No newline at end of file diff --git a/src/UserGuide/imagesUserGuide/00_icons.png b/public/img/00_icons.png similarity index 100% rename from src/UserGuide/imagesUserGuide/00_icons.png rename to public/img/00_icons.png diff --git a/src/UserGuide/imagesUserGuide/01_menuBarTabs.png b/public/img/01_menuBarTabs.png similarity index 100% rename from src/UserGuide/imagesUserGuide/01_menuBarTabs.png rename to public/img/01_menuBarTabs.png diff --git a/src/UserGuide/imagesUserGuide/02_ElevationControlTab.png b/public/img/02_ElevationControlTab.png similarity index 100% rename from src/UserGuide/imagesUserGuide/02_ElevationControlTab.png rename to public/img/02_ElevationControlTab.png diff --git a/src/UserGuide/imagesUserGuide/03_ElevationControlTab.png b/public/img/03_ElevationControlTab.png similarity index 100% rename from src/UserGuide/imagesUserGuide/03_ElevationControlTab.png rename to public/img/03_ElevationControlTab.png diff --git a/src/UserGuide/imagesUserGuide/04_AcceptedFilter.png b/public/img/04_AcceptedFilter.png similarity index 100% rename from src/UserGuide/imagesUserGuide/04_AcceptedFilter.png rename to public/img/04_AcceptedFilter.png diff --git a/src/UserGuide/imagesUserGuide/05_AcceptedFilter.png b/public/img/05_AcceptedFilter.png similarity index 100% rename from src/UserGuide/imagesUserGuide/05_AcceptedFilter.png rename to public/img/05_AcceptedFilter.png diff --git a/src/UserGuide/imagesUserGuide/06_Measurements.png b/public/img/06_Measurements.png similarity index 100% rename from src/UserGuide/imagesUserGuide/06_Measurements.png rename to public/img/06_Measurements.png diff --git a/src/UserGuide/imagesUserGuide/07_SavedLocations.png b/public/img/07_SavedLocations.png similarity index 100% rename from src/UserGuide/imagesUserGuide/07_SavedLocations.png rename to public/img/07_SavedLocations.png diff --git a/src/UserGuide/imagesUserGuide/08_Appearance.png b/public/img/08_Appearance.png similarity index 100% rename from src/UserGuide/imagesUserGuide/08_Appearance.png rename to public/img/08_Appearance.png diff --git a/src/UserGuide/imagesUserGuide/09_Tools.png b/public/img/09_Tools.png similarity index 100% rename from src/UserGuide/imagesUserGuide/09_Tools.png rename to public/img/09_Tools.png diff --git a/src/UserGuide/imagesUserGuide/10_Scene.png b/public/img/10_Scene.png similarity index 100% rename from src/UserGuide/imagesUserGuide/10_Scene.png rename to public/img/10_Scene.png diff --git a/src/UserGuide/imagesUserGuide/11_SavedLocations.png b/public/img/11_SavedLocations.png similarity index 100% rename from src/UserGuide/imagesUserGuide/11_SavedLocations.png rename to public/img/11_SavedLocations.png diff --git a/public/img/12_Measurements_updated.jpg b/public/img/12_Measurements_updated.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f3aa31e4dbe927761f0b0394bd5d71bcce17685a GIT binary patch literal 29931 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 literal 0 HcmV?d00001 diff --git a/public/img/13_Tools_updated.jpg b/public/img/13_Tools_updated.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a8466dc3069de411c26940ac2556589a01c4c059 GIT binary patch literal 23535 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�q6k( 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 literal 0 HcmV?d00001 From a8f2d97c299c5e0af158e582c62360fe28ecd312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gaute=20Fl=C3=A6gstad?= Date: Mon, 10 Nov 2025 09:40:08 +0100 Subject: [PATCH 48/52] fix(#61): :bug: fix init of potreeViewer --- src/main.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main.js b/src/main.js index 7309700..7b804bd 100644 --- a/src/main.js +++ b/src/main.js @@ -16,15 +16,14 @@ async function init() { console.error('Failed to load country borders:', error) } - if (!window.viewer) { - window.viewer = window.potreeViewer - } - window.potreeViewer = await createPotreeViewer( 'potree_render_area', POTREE_POINTCLOUD_URLS, POTREE_SETTINGS ) + + const potreeViewer = window.potreeViewer + window.viewer = window.potreeViewer potreeViewer.addEventListener('camera_changed', updateText) setupRightClickListener(potreeViewer) From e7f5de5b12eec2379df07bb42efba10340487274 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gaute=20Fl=C3=A6gstad?= Date: Mon, 10 Nov 2025 09:43:29 +0100 Subject: [PATCH 49/52] refactor(#61): :recycle: ran format --- src/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.js b/src/main.js index 7b804bd..c745661 100644 --- a/src/main.js +++ b/src/main.js @@ -21,7 +21,7 @@ async function init() { POTREE_POINTCLOUD_URLS, POTREE_SETTINGS ) - + const potreeViewer = window.potreeViewer window.viewer = window.potreeViewer potreeViewer.addEventListener('camera_changed', updateText) From 61dcd55e1afd028518be05bd5910adc9baf90e6a Mon Sep 17 00:00:00 2001 From: Alicia Westad Rasmussen Date: Mon, 10 Nov 2025 09:50:12 +0100 Subject: [PATCH 50/52] docs(#18): fixing the user guide #18 --- README.md | 2 +- Userguide.md | 220 +++++++++++++++++++++++++++++++++------------------ 2 files changed, 144 insertions(+), 78 deletions(-) diff --git a/README.md b/README.md index 7862719..8024b97 100644 --- a/README.md +++ b/README.md @@ -65,5 +65,5 @@ npm run test ``` ### User Guide -For a complete user guide on fundamentals and all functionality click [here](Userguide.md). +For a complete user guide on fundamentals and all functionality click [here](Userguide.md). diff --git a/Userguide.md b/Userguide.md index 4261a2c..8a70a5e 100644 --- a/Userguide.md +++ b/Userguide.md @@ -1,6 +1,9 @@ # User Guide + This is a user guide for all functionality found in Molloy Explorer. For general information and SetUp, see [README](README.md). + ## Table of Contents + - [Fundamentals](#fundamentals) - [Moving the viewpoint](#moving-the-viewpoint) - [Zoom](#zoom) @@ -17,18 +20,20 @@ This is a user guide for all functionality found in Molloy Explorer. For general - [Minimap](#minimap) - [Coordinates](#coordinates) - ## Fundamentals ### Moving the Viewpoint + Left click and hold anywhere on the screen, while moving the mouse or use a second finger on the touchpad to dynamically move the viewpoint. By doing this you can tilt and rotate the viewpoint. ### Zoom + To zoom in and out the user can either: Utilize the scroll wheel on a mouse. Drag two fingers on the touchpad towards each other or away from each other. ### Move + To move within the application, double click on a point you wish to explore further and you will automatically be moved closer to that point. If you want to move across larger distances, for example look at a point from a different point cloud, it is recommended to zoom out first and then double click on a point closer to where you want to be positioned. @@ -39,13 +44,14 @@ The top icon opens the menu bar and the bottom icon shows and collapses the mini icons - There are eight tabs in the menu bar that can be opened and collapsed by clicking on them. tabs ### Elevation Control + --- + Elevation control applies gradients based on the elevation of the data points. By default elevation control is active. The “Activate elevation control” button will be visible and can be pressed after looking at the Accepted Filter to reset the view back to default. See image below. Use the slider to set the range by clicking and dragging the squares on either end of the scale. @@ -57,7 +63,9 @@ There are nine different gradient schemes to choose from. These are also selecte ElevationControl ### Accepted Filter + --- + The accepted filter contains one button to change the view to show which datapoints are accepted as part of the seabed, when the elevation control is active. When the “Activate accepted filter” button is pressed, accepted points are displayed in white and not accepted points are displayed in black. This data regarding if a point is accepted or not is an attribute of each datapoint and can not be changed. AcceptedFilter @@ -65,7 +73,9 @@ The accepted filter contains one button to change the view to show which datapoi AcceptedFilter ### Measurements + --- + The Measurements tab allows you to measure angles, distances, heights, areas, volumes, and other properties directly within the point cloud. All tools are located in the Measurements tab in the menu bar. You can perform multiple measurements simultaneously, and all results are tracked in the "List of Measurements" section. For all the measurements below, you stop by right clicking. @@ -73,77 +83,97 @@ For all the measurements below, you stop by right clicking. Measurements #### Measure Angle + To measure angles between points: -1. Click on the "Measure Angle" icon or text. + +1. Click on the "Measure Angle" icon or text. 2. Click three points in the point cloud. A red triangle will appear connecting the points, and the corresponding angle will be displayed. To adjust a point in the triangle, click on the point you want to move, then click a new point in the point cloud. There is no limit to the number of triangles you can display. -Measurement details appear in the "List of Measurements" below the menu bar. The default name is "Distance#1"; make sure it is selected when reviewing the data. +Measurement details appear in the "List of Measurements" below the menu bar. The default name is "Distance#1"; make sure it is selected when reviewing the data. #### Inspect Point + To inspect a point in the point cloud: -1. Click the "Inspect Point" icon. -2. Click on the point you want to examine. + +1. Click the "Inspect Point" icon. +2. Click on the point you want to examine. The coordinates and other available attributes of that point will be displayed in the corresponding panel. #### Measure Distance + To measure the distance between two points: -1. Click the "Measure Distance" icon. + +1. Click the "Measure Distance" icon. 2. Click the first point, then the second point in the point cloud. The distance between the points will be displayed, and a connecting line will appear. To adjust points, click the point and select a new location. #### Measure Height + To measure vertical height differences: -1. Click the "Measure Height" icon. + +1. Click the "Measure Height" icon. 2. Click the lower point first, then the higher point. The vertical distance will be displayed. #### Circle + To measure a circle: -1. Click the "Circle" icon. + +1. Click the "Circle" icon. 2. Click the center point, then a point on the circumference. The radius and circumference will be displayed. #### Azimuth + To measure azimuth (direction relative to north): -1. Click the "Azimuth" icon. + +1. Click the "Azimuth" icon. 2. Click the starting point, then the ending point. Azimuth measures the directional angle in degrees between two points relative to true north. #### Area + To measure a polygonal area: -1. Click the "Area" icon. -2. Click points to form the vertices of the polygon. -3. Double-click the last point to complete the polygon. + +1. Click the "Area" icon. +2. Click points to form the vertices of the polygon. +3. Double-click the last point to complete the polygon. The calculated area will be displayed. #### Volume + To measure a 3D volume: -1. Click the "Volume" icon. -2. Select points to define the base polygon of the volume. + +1. Click the "Volume" icon. +2. Select points to define the base polygon of the volume. 3. Click an additional point to define the top plane (height). The volume enclosed by the selected points will be calculated. #### Sphere Volume + To measure a sphere’s volume: -1. Click the "Sphere Volume" icon. -2. Click the center point of the sphere, then a point on the surface to define the radius. + +1. Click the "Sphere Volume" icon. +2. Click the center point of the sphere, then a point on the surface to define the radius. The sphere volume will be displayed. #### 2D Height Profile + To generate a 2D height profile along a line: -1. Click the "2D Height Profile" icon. -2. Click the starting point of the profile line, then click the ending point. + +1. Click the "2D Height Profile" icon. +2. Click the starting point of the profile line, then click the ending point. 3. Click the "show 2D profile". A 2D plot of height along the line will be displayed. @@ -152,98 +182,125 @@ Multiple profile lines can be drawn for comparison. To adjust the profile line, select a point and move it to a new location. #### Remove All + Click the "Remove All" icon to clear all measurements currently displayed in the scene. This will remove all lines, polygons, volume measurements, height profiles, and labels at once. #### Deleting Measurements + To delete individual measurements: -1. Select the measurement in the "List of Measurements". + +1. Select the measurement in the "List of Measurements". 2. Click the red "x" icon next to the measurement. This applies to all measurement types including angles, distances, heights, areas, volumes, spheres, circles, azimuths, and 2D height profiles. #### Values/Names/Hide All Labels + To show or hide Values or Names for measurements: -1. Click the "Values" or "Names" button to display it for all measurements currently in the scene. + +1. Click the "Values" or "Names" button to display it for all measurements currently in the scene. 2. Click the "Hide All" button to hide all measurement labels without deleting the measurements themselves. This applies to all measurement types, including angles, distances, heights, areas, volumes, spheres, circles, azimuths, and 2D height profiles. #### List of Measurements + All measurements are tracked in the "List of Measurements" panel at the bottom of the menu bar. Each measurement can be selected to view detailed information or deleted individually. This list provides an easy way to manage multiple measurements in a large point cloud. ### Saved Locations + --- -The Saved Locations tab allows you to quickly navigate to specific points or viewpoints that you have saved within the scene. Annotations can also be created here to mark points of interest. By default, annotation labels are visible in the point cloud and on the map, making it easy to locate important areas. + +The Saved Locations tab allows you to quickly navigate to specific points or viewpoints that you have saved within the scene. Annotations can also be created here to mark points of interest. By default, annotation labels are visible in the point cloud and on the map, making it easy to locate important areas. SavedLocations SavedLocations #### Show/Hide Annotations + Below the list of annotations, there are toggle buttons to show or hide all annotation labels in the point cloud. Use this to declutter the view or focus on specific points as needed. #### Creating an Annotation + To create an annotation: -1. Click the "Add a Location" button in the Saved Locations section. -2. Click on a point in the point cloud. + +1. Click the "Add a Location" button in the Saved Locations section. +2. Click on a point in the point cloud. As you hover over points, an annotation label will appear above the cursor to indicate that a point can be selected. The annotation will be added to a list right below the "Add a Location" button upon creation. #### Managing Annotations -Each annotation in the list has three icons: -- **Pen Icon** – Rename the annotation or edit its description. -- **Arrow Icon** – Move the camera to the annotation from anywhere in the scene. + +Each annotation in the list has three icons: + +- **Pen Icon** – Rename the annotation or edit its description. +- **Arrow Icon** – Move the camera to the annotation from anywhere in the scene. - **Red X Icon** – Delete the annotation. To add a description to an annotation: -1. Click the annotation text in the Saved Locations list. -2. Click the pen icon next to "Annotation Description". + +1. Click the annotation text in the Saved Locations list. +2. Click the pen icon next to "Annotation Description". The point coordinates and the current camera coordinates will be displayed below the description field. ### Appearance + --- -The Appearance tab allows you to adjust the visual rendering and display settings of the point cloud and scene to optimize clarity, performance, and visual preference. + +The Appearance tab allows you to adjust the visual rendering and display settings of the point cloud and scene to optimize clarity, performance, and visual preference. Appearance #### Point Budget -The Point Budget controls the maximum number of points rendered at any time. -- Adjustable using a slider ranging from **100,000 to 10,000,000 points**. + +The Point Budget controls the maximum number of points rendered at any time. + +- Adjustable using a slider ranging from **100,000 to 10,000,000 points**. - Higher values provide more detail but may impact performance, while lower values improve performance at the cost of detail. #### Field of View -The Field of View (FOV) controls the camera’s viewing angle. -- Adjustable using a slider ranging from **20° to 100°**. + +The Field of View (FOV) controls the camera’s viewing angle. + +- Adjustable using a slider ranging from **20° to 100°**. - A wider FOV shows more of the scene but may distort perspective, while a narrower FOV provides a more focused view. #### Eye-Dome Lighting (EDL) -Eye-Dome Lighting enhances depth perception by shading points based on their relative distance. -- **Enable Checkbox** – Turn EDL on or off. -- **Radius Slider** – Adjusts the size of the area used to calculate shading. -- **Strength Slider** – Controls the intensity of the depth effect. + +Eye-Dome Lighting enhances depth perception by shading points based on their relative distance. + +- **Enable Checkbox** – Turn EDL on or off. +- **Radius Slider** – Adjusts the size of the area used to calculate shading. +- **Strength Slider** – Controls the intensity of the depth effect. - **Opacity Slider** – Adjusts the transparency of the shading effect. #### Background -The Background setting controls the scene’s visual backdrop. Options include: -- **Skybox** – A textured 3D background simulating a sky. -- **Gradient** – Smooth transition between two colors. -- **Black** – Solid black background. -- **White** – Solid white background. + +The Background setting controls the scene’s visual backdrop. Options include: + +- **Skybox** – A textured 3D background simulating a sky. +- **Gradient** – Smooth transition between two colors. +- **Black** – Solid black background. +- **White** – Solid white background. - **Globe** – Displays the Earth or a globe representation, this is the default. #### Other Settings -- **Splat Quality** – Adjusts the rendering quality of point splats: - - **Standard** – Default quality, optimized for performance. - - **High Quality** – Improved visual detail, may impact performance. -- **Min Node Size** – Controls the smallest size of nodes rendered in the point cloud. -- **Box** – Toggle the visibility of bounding boxes around point clouds or objects. + +- **Splat Quality** – Adjusts the rendering quality of point splats: + - **Standard** – Default quality, optimized for performance. + - **High Quality** – Improved visual detail, may impact performance. +- **Min Node Size** – Controls the smallest size of nodes rendered in the point cloud. +- **Box** – Toggle the visibility of bounding boxes around point clouds or objects. - **Lock View** – Keeps the bounding boxes or other visual guides in a fixed position. ### Tools + --- -The Tools section is located in the menu bar and contains functionalities for clipping, navigation, camera control, and speed adjustment. Clicking on a tool will open the corresponding options. + +The Tools section is located in the menu bar and contains functionalities for clipping, navigation, camera control, and speed adjustment. Clicking on a tool will open the corresponding options. Tools @@ -265,18 +322,18 @@ Clipping allows you to focus on specific regions of the point cloud or dataset b #### Clip Task -The Clip Task determines what happens to the points in the clipping area: +The Clip Task determines what happens to the points in the clipping area: -- **None**: No changes are applied to the points within the clip volume. -- **Highlight**: Points within the clipping area are highlighted to make them easier to see. -- **Inside**: Only points inside the clipping area remain visible; all others are hidden. -- **Outside**: Only points outside the clipping area remain visible; all points inside are hidden. +- **None**: No changes are applied to the points within the clip volume. +- **Highlight**: Points within the clipping area are highlighted to make them easier to see. +- **Inside**: Only points inside the clipping area remain visible; all others are hidden. +- **Outside**: Only points outside the clipping area remain visible; all points inside are hidden. #### Clip Method -When multiple clipping volumes are active, the Clip Method determines how they are combined: +When multiple clipping volumes are active, the Clip Method determines how they are combined: -- **Inside Any**: Points inside any of the clipping volumes will be affected. This creates a union of all clipping areas. +- **Inside Any**: Points inside any of the clipping volumes will be affected. This creates a union of all clipping areas. - **Inside All**: Points must be inside all defined clipping volumes to be affected. This creates an intersection of all volumes. #### Navigation @@ -317,58 +374,67 @@ Camera projection defines how depth and distance are perceived in the 3D view. - **Perspective** Standard 3D view where objects appear smaller as they get farther away. This view simulates how humans naturally perceive depth. - #### Speed The Speed control adjusts how fast the camera or navigation responds to user inputs. -- Increasing speed makes zooming, panning, and flying faster, which is useful for exploring large datasets quickly. +- Increasing speed makes zooming, panning, and flying faster, which is useful for exploring large datasets quickly. - Decreasing speed allows for precise adjustments when inspecting small details or measuring specific points. -- The speed will be adjusted automatically when you zoom in and out, providing a more intuitive navigation experience. +- The speed will be adjusted automatically when you zoom in and out, providing a more intuitive navigation experience. This section ensures that all users can efficiently navigate and manipulate the point cloud data, while providing control over the view, clipping, and camera behaviour. - ### Scene + --- + The Scene tab allows you to manage and organize all the elements currently loaded in the application. It provides tools to view, modify, and export components such as point clouds, measurements, annotations, and other objects, giving you complete control over the content of your 3D environment. Scene #### Export -The Export feature allows you to save elements from the scene into different file formats for external use: -1. **JSON** – Exports the scene configuration and metadata for use in other applications or for project backup. -2. **DXF** – Exports measurements and geometry into a CAD-compatible format. -3. **Potree** – Exports the point cloud and scene data into a Potree-compatible format for web-based visualization. + +The Export feature allows you to save elements from the scene into different file formats for external use: + +1. **JSON** – Exports the scene configuration and metadata for use in other applications or for project backup. +2. **DXF** – Exports measurements and geometry into a CAD-compatible format. +3. **Potree** – Exports the point cloud and scene data into a Potree-compatible format for web-based visualization. #### Objects -The Objects section lists all items currently present in the scene, grouped into categories: -- **Point Clouds** – Displays all loaded point clouds in the scene. You can toggle visibility, inspect properties, or remove them. + +The Objects section lists all items currently present in the scene, grouped into categories: + +- **Point Clouds** – Displays all loaded point clouds in the scene. You can toggle visibility, inspect properties, or remove them. - **Measurements** – See [Measurements panel](#measurements). - **Annotations** – See [Saved Locations panel](#saved-locations). -- **Other** – Contains additional scene elements: - - **Camera** – Tracks the position and orientation of the current viewpoint. -- **Vectors** – Displays any vector elements present in the scene. -- **Images** – Shows any images linked to points or objects in the scene. +- **Other** – Contains additional scene elements: + - **Camera** – Tracks the position and orientation of the current viewpoint. +- **Vectors** – Displays any vector elements present in the scene. +- **Images** – Shows any images linked to points or objects in the scene. #### Properties -The Properties panel provides detailed information about the selected object in the scene. Depending on the object type, you can view: -- Coordinates and dimensions -- Colors and intensity values -- Metadata and attributes -- Visibility and rendering settings -This section gives you full control over the content, allowing you to inspect, modify, or export scene elements efficiently. +The Properties panel provides detailed information about the selected object in the scene. Depending on the object type, you can view: +- Coordinates and dimensions +- Colors and intensity values +- Metadata and attributes +- Visibility and rendering settings + +This section gives you full control over the content, allowing you to inspect, modify, or export scene elements efficiently. ### About + --- + General information regarding the application, licences, contributors and more will show up here. This is default information from Potree. ## Minimap + The map icon below the menu bar icon in the top left corner, will show and collapse a minimap. In the minimap you can zoom using the mouse, touchpad or the icons in the top left corner. You can move around by clicking and moving the mouse around simultaneously. The coordinates your cursor hover over will show up in the top right corner of the minimap. ## Coordinates -In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most recent point the user has double clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the sea level. \ No newline at end of file + +In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most recent point the user has double clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the sea level. From 9e167024764f9d9ef69fc848139dcb709fac3b2e Mon Sep 17 00:00:00 2001 From: Alicia Westad Rasmussen Date: Mon, 10 Nov 2025 10:03:03 +0100 Subject: [PATCH 51/52] feat: #18 sidebar #18 --- Userguide.md | 25 ++++++++++++++----------- public/img/14_Animation.jpg | Bin 0 -> 42584 bytes 2 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 public/img/14_Animation.jpg diff --git a/Userguide.md b/Userguide.md index 8a70a5e..fd8e762 100644 --- a/Userguide.md +++ b/Userguide.md @@ -8,7 +8,7 @@ This is a user guide for all functionality found in Molloy Explorer. For general - [Moving the viewpoint](#moving-the-viewpoint) - [Zoom](#zoom) - [Move](#move) -- [Menu Bar](#functionalities) +- [Sidebar](#functionalities) - [Elevation Control](#elevation-control) - [Accepted Filter](#accepted-filter) - [Measurements](#measurements) @@ -37,14 +37,14 @@ Drag two fingers on the touchpad towards each other or away from each other. To move within the application, double click on a point you wish to explore further and you will automatically be moved closer to that point. If you want to move across larger distances, for example look at a point from a different point cloud, it is recommended to zoom out first and then double click on a point closer to where you want to be positioned. -## Menu Bar +## Sidebar In the top left corner there are two icons: -The top icon opens the menu bar and the bottom icon shows and collapses the minimap. Most of the functionalities are located in the menu bar. +The top icon opens the sidebar and the bottom icon shows and collapses the minimap. Most of the functionalities are located in the sidebar. icons -There are eight tabs in the menu bar that can be opened and collapsed by clicking on them. +There are eight tabs in the sidebar that can be opened and collapsed by clicking on them. tabs @@ -76,7 +76,7 @@ The accepted filter contains one button to change the view to show which datapoi --- -The Measurements tab allows you to measure angles, distances, heights, areas, volumes, and other properties directly within the point cloud. All tools are located in the Measurements tab in the menu bar. You can perform multiple measurements simultaneously, and all results are tracked in the "List of Measurements" section. +The Measurements tab allows you to measure angles, distances, heights, areas, volumes, and other properties directly within the point cloud. All tools are located in the Measurements tab in the sidebar. You can perform multiple measurements simultaneously, and all results are tracked in the "List of Measurements" section. For all the measurements below, you stop by right clicking. @@ -91,7 +91,7 @@ To measure angles between points: To adjust a point in the triangle, click on the point you want to move, then click a new point in the point cloud. There is no limit to the number of triangles you can display. -Measurement details appear in the "List of Measurements" below the menu bar. The default name is "Distance#1"; make sure it is selected when reviewing the data. +Measurement details appear in the "List of Measurements" below the sidebar. The default name is "Distance#1"; make sure it is selected when reviewing the data. #### Inspect Point @@ -205,7 +205,7 @@ This applies to all measurement types, including angles, distances, heights, are #### List of Measurements -All measurements are tracked in the "List of Measurements" panel at the bottom of the menu bar. Each measurement can be selected to view detailed information or deleted individually. This list provides an easy way to manage multiple measurements in a large point cloud. +All measurements are tracked in the "List of Measurements" panel at the bottom of the sidebar. Each measurement can be selected to view detailed information or deleted individually. This list provides an easy way to manage multiple measurements in a large point cloud. ### Saved Locations @@ -300,7 +300,7 @@ The Background setting controls the scene’s visual backdrop. Options include: --- -The Tools section is located in the menu bar and contains functionalities for clipping, navigation, camera control, and speed adjustment. Clicking on a tool will open the corresponding options. +The Tools section is located in the sidebar and contains functionalities for clipping, navigation, camera control, and speed adjustment. Clicking on a tool will open the corresponding options. Tools @@ -350,7 +350,7 @@ Navigation tools allow you to move around the dataset and view it from different Similar to Fly Control, but movement mimics the behaviour of a helicopter, including tilt and banking effects. - **Orbit Control** - Lets the camera orbit around a selected point, object, or region. Ideal for inspecting objects from multiple angles without changing the target point. + Lets the camera orbit around a selected point, object, or region. Ideal for inspecting objects from multiple angles without changing the target point. This is the default mode. - **Full Extent** Resets the view to show the entire dataset or point cloud. This is useful if you have zoomed in too far or moved to a specific area and want to see the whole scene. @@ -362,7 +362,9 @@ Navigation tools allow you to move around the dataset and view it from different Displays a compass in the top right corner of the screen. This shows the current orientation and allows you to reset the view to north-up. - **Camera Animation** - Lets you create or play smooth camera movements, such as flying along a path or rotating around a point. + Lets you create or play smooth camera movements, such as flying along a path or rotating around a point. To utilize this tool, click on the Scene tab, then go to Objects/Other, an animation icon will show up. Click on this, adjust properties as wanted(you can move the points or adjust the duration of the animation here), and click on play. + + Scene - **Left View / Right View / Front View / Back View / Top View / Bottom View** Predefined fixed perspectives that allow you to quickly switch to standard orthogonal views of your dataset. @@ -431,10 +433,11 @@ General information regarding the application, licences, contributors and more w ## Minimap -The map icon below the menu bar icon in the top left corner, will show and collapse a minimap. +The map icon below the sidebar icon in the top left corner, will show and collapse a minimap. In the minimap you can zoom using the mouse, touchpad or the icons in the top left corner. You can move around by clicking and moving the mouse around simultaneously. The coordinates your cursor hover over will show up in the top right corner of the minimap. ## Coordinates In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most recent point the user has double clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the sea level. +Coordinates are only shown in the "Orbit Control" Navigation mode. \ No newline at end of file diff --git a/public/img/14_Animation.jpg b/public/img/14_Animation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8581e9dd7ef66d68a053720456fc1528a3e40f51 GIT binary patch literal 42584 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 c Date: Mon, 10 Nov 2025 10:07:05 +0100 Subject: [PATCH 52/52] style: #18 sidebar prettier #18 --- Userguide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userguide.md b/Userguide.md index fd8e762..35ff83a 100644 --- a/Userguide.md +++ b/Userguide.md @@ -440,4 +440,4 @@ You can move around by clicking and moving the mouse around simultaneously. The ## Coordinates In the bottom right corner there is a black box that lists coordinates. These coordinates correspond to the target point, which is continuously updated to be the most recent point the user has double clicked on. Latitude and longitude are measured in degrees, while elevation is measured in metres from the sea level. -Coordinates are only shown in the "Orbit Control" Navigation mode. \ No newline at end of file +Coordinates are only shown in the "Orbit Control" Navigation mode.