|
|
@@ -11,6 +11,7 @@ let softness = 25; |
|
|
let width; |
|
|
let width; |
|
|
let height; |
|
|
let height; |
|
|
|
|
|
|
|
|
|
|
|
let border = false; |
|
|
let fitScreen = true; |
|
|
let fitScreen = true; |
|
|
let paintMode = false; |
|
|
let paintMode = false; |
|
|
|
|
|
|
|
|
@@ -261,6 +262,14 @@ document.addEventListener("DOMContentLoaded", e => { |
|
|
console.warn("That was a bogus softness..."); |
|
|
console.warn("That was a bogus softness..."); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
if (url.searchParams.has("border")) { |
|
|
|
|
|
try { |
|
|
|
|
|
border = 1 == parseInt(url.searchParams.get("border")); |
|
|
|
|
|
document.querySelector("#show-border").checked = border; |
|
|
|
|
|
} catch { |
|
|
|
|
|
console.warn("That was a bogus softness..."); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
window.addEventListener("resize", e => { |
|
|
window.addEventListener("resize", e => { |
|
|
if (running) { |
|
|
if (running) { |
|
|
@@ -283,6 +292,11 @@ document.addEventListener("DOMContentLoaded", e => { |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
document.querySelector("#show-border").addEventListener("change", e => { |
|
|
|
|
|
border = e.target.checked; |
|
|
|
|
|
setURL(); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
document.querySelector("#paint-mode").addEventListener("change", e => { |
|
|
document.querySelector("#paint-mode").addEventListener("change", e => { |
|
|
paintMode = e.target.checked; |
|
|
paintMode = e.target.checked; |
|
|
}); |
|
|
}); |
|
|
@@ -439,6 +453,22 @@ function updateOverlay(points, clicked) { |
|
|
|
|
|
|
|
|
overlayCtx.drawImage(overlayResized, 0, 0); |
|
|
overlayCtx.drawImage(overlayResized, 0, 0); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
overlayCtx.globalCompositeOperation = "source-over"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!paintMode && border) { |
|
|
|
|
|
points.forEach(point => { |
|
|
|
|
|
const [x, y] = point; |
|
|
|
|
|
|
|
|
|
|
|
overlayCtx.strokeStyle = "#000"; |
|
|
|
|
|
overlayCtx.lineWidth = 3; |
|
|
|
|
|
overlayCtx.beginPath(); |
|
|
|
|
|
overlayCtx.ellipse(x, y, radius * scale, radius * scale, 0, 0, 2 * Math.PI); |
|
|
|
|
|
overlayCtx.stroke(); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
overlayCtx.restore(); |
|
|
overlayCtx.restore(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@@ -469,5 +499,9 @@ function setURL() { |
|
|
shareURL.searchParams.append("radius", radius); |
|
|
shareURL.searchParams.append("radius", radius); |
|
|
shareURL.searchParams.append("softness", softness); |
|
|
shareURL.searchParams.append("softness", softness); |
|
|
|
|
|
|
|
|
|
|
|
if (border) { |
|
|
|
|
|
shareURL.searchParams.append("border", 1); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
window.history.replaceState(null, "X-Ray Viewer", shareURL); |
|
|
window.history.replaceState(null, "X-Ray Viewer", shareURL); |
|
|
} |
|
|
} |