@ -4955,20 +4955,20 @@
if (el_navConfirmYes) {
if (el_navConfirmYes) {
el_navConfirmYes.addEventListener('click', () => {
el_navConfirmYes.addEventListener('click', () => {
document.getElementById('navConfirmDialog').style.display = 'none';
document.getElementById('navConfirmDialog').style.display = 'none';
if (pendingDestination) {
setDestination(pendingDestination.track, pendingDestination.index);
pendingDestination = null;
}
});
}
}
if (pendingDestination) {
setDestination(pendingDestination.track, pendingDestination.index);
pendingDestination = null;
}
});
const el_navConfirmNo = document.getElementById('navConfirmNo');
const el_navConfirmNo = document.getElementById('navConfirmNo');
if (el_navConfirmNo) {
if (el_navConfirmNo) {
el_navConfirmNo.addEventListener('click', () => {
el_navConfirmNo.addEventListener('click', () => {
document.getElementById('navConfirmDialog').style.display = 'none';
document.getElementById('navConfirmDialog').style.display = 'none';
pendingDestination = null;
});
}
}
pendingDestination = null;
});
// Press and hold handlers for navigation mode
// Press and hold handlers for navigation mode
function startPressHold(e) {
function startPressHold(e) {
@ -6137,48 +6137,48 @@
el_remeshBtn.addEventListener('click', () => {
el_remeshBtn.addEventListener('click', () => {
if (selectedTracks.length === 0) {
if (selectedTracks.length === 0) {
updateStatus('Please select tracks to remesh first', 'error');
updateStatus('Please select tracks to remesh first', 'error');
}
return;
}
// Reset slider to default
remeshSlider.value = 5;
remeshValueDisplay.textContent = '5';
return;
}
// Show confirmation dialog
const trackNames = selectedTracks.map(t => t.name).join(', ');
const totalPoints = selectedTracks.reduce((sum, t) => sum + t.coords.length, 0);
document.getElementById('remeshDetails').innerHTML =
`< strong > Selected tracks:< / strong > ${trackNames}< br > ` +
`< strong > Current total points:< / strong > ${totalPoints}`;
ensurePopupInBody('remeshDialog');
document.getElementById('remeshDialog').style.display = 'flex';
});
// Reset slider to default
remeshSlider.value = 5;
remeshValueDisplay.textContent = '5';
// Show confirmation dialog
const trackNames = selectedTracks.map(t => t.name).join(', ');
const totalPoints = selectedTracks.reduce((sum, t) => sum + t.coords.length, 0);
document.getElementById('remeshDetails').innerHTML =
`< strong > Selected tracks:< / strong > ${trackNames}< br > ` +
`< strong > Current total points:< / strong > ${totalPoints}`;
ensurePopupInBody('remeshDialog');
document.getElementById('remeshDialog').style.display = 'flex';
});
}
const el_remeshYes = document.getElementById('remeshYes');
const el_remeshYes = document.getElementById('remeshYes');
if (el_remeshYes) {
if (el_remeshYes) {
el_remeshYes.addEventListener('click', () => {
el_remeshYes.addEventListener('click', () => {
document.getElementById('remeshDialog').style.display = 'none';
document.getElementById('remeshDialog').style.display = 'none';
}
// Get the spacing value from slider
const spacing = parseInt(remeshSlider.value);
// Get the spacing value from slider
const spacing = parseInt(remeshSlider.value);
// Remesh all selected tracks with the chosen spacing
selectedTracks.forEach(track => {
remeshTrack(track, spacing);
});
// Remesh all selected tracks with the chosen spacing
selectedTracks.forEach(track => {
remeshTrack(track, spacing);
});
// Clear selection after remeshing
clearSelection();
});
// Clear selection after remeshing
clearSelection();
});
}
const el_remeshNo = document.getElementById('remeshNo');
const el_remeshNo = document.getElementById('remeshNo');
if (el_remeshNo) {
if (el_remeshNo) {
el_remeshNo.addEventListener('click', () => {
el_remeshNo.addEventListener('click', () => {
document.getElementById('remeshDialog').style.display = 'none';
document.getElementById('remeshDialog').style.display = 'none';
});
}
}
});
// Preview system
// Preview system
const el_previewBtn = document.getElementById('previewBtn');
const el_previewBtn = document.getElementById('previewBtn');
@ -6192,17 +6192,18 @@
const el_cancelPreviewBtn = document.getElementById('cancelPreviewBtn');
const el_cancelPreviewBtn = document.getElementById('cancelPreviewBtn');
if (el_cancelPreviewBtn) {
if (el_cancelPreviewBtn) {
el_cancelPreviewBtn.addEventListener('click', cancelPreview);
el_cancelPreviewBtn.addEventListener('click', cancelPreview);
// Live slider update during preview
const mergeThreshold = document.getElementById('mergeThreshold');
if (mergeThreshold) {
mergeThreshold.addEventListener('input', (e) => {
}
// Live slider update during preview
const mergeThreshold = document.getElementById('mergeThreshold');
if (mergeThreshold) {
mergeThreshold.addEventListener('input', (e) => {
document.getElementById('thresholdValue').textContent = e.target.value;
document.getElementById('thresholdValue').textContent = e.target.value;
if (previewMode) {
updatePreview(parseInt(e.target.value));
}
});
}
}
if (previewMode) {
updatePreview(parseInt(e.target.value));
}
});
// Anchor distance slider update
// Anchor distance slider update
const el_anchorDistance = document.getElementById('anchorDistance');
const el_anchorDistance = document.getElementById('anchorDistance');
@ -6486,23 +6487,23 @@
if (el_resumeNavYes) {
if (el_resumeNavYes) {
el_resumeNavYes.addEventListener('click', () => {
el_resumeNavYes.addEventListener('click', () => {
document.getElementById('resumeNavDialog').style.display = 'none';
document.getElementById('resumeNavDialog').style.display = 'none';
// Restore saved navigation
const savedNav = localStorage.getItem('navMode');
if (savedNav === 'true') {
switchTab('navigate');
restoreDestination();
}
});
}
}
// Restore saved navigation
const savedNav = localStorage.getItem('navMode');
if (savedNav === 'true') {
switchTab('navigate');
restoreDestination();
}
});
const el_resumeNavNo = document.getElementById('resumeNavNo');
const el_resumeNavNo = document.getElementById('resumeNavNo');
if (el_resumeNavNo) {
if (el_resumeNavNo) {
el_resumeNavNo.addEventListener('click', () => {
el_resumeNavNo.addEventListener('click', () => {
document.getElementById('resumeNavDialog').style.display = 'none';
document.getElementById('resumeNavDialog').style.display = 'none';
localStorage.removeItem('navDestination');
localStorage.removeItem('navMode');
});
}
}
localStorage.removeItem('navDestination');
localStorage.removeItem('navMode');
});
// Auto-load default.kml with cache busting
// Auto-load default.kml with cache busting
fetch('default.kml?t=' + Date.now())
fetch('default.kml?t=' + Date.now())