another stage

This commit is contained in:
Ross
2025-05-20 09:57:50 +01:00
parent 4213e3b680
commit 9952968575
+24 -29
View File
@@ -270,8 +270,8 @@ function App() {
} */ } */
cornerstoneTools.utilities.stackPrefetch.enable(viewport.element); cornerstoneTools.utilities.stackPrefetch.enable(viewport.element);
renderingEngine.resize(true, true)
console.log(i, viewport) console.log(i, viewport)
viewport.resetCameraForResize();
viewport.render(); viewport.render();
// Attach overlay update for each viewport // Attach overlay update for each viewport
@@ -279,6 +279,17 @@ function App() {
// Initial overlay update // Initial overlay update
updateOverlay(i, viewport); updateOverlay(i, viewport);
} }
/* // Resize and render all viewports to ensure correct canvas size
for (let i = 0; i < viewportGrid.rows * viewportGrid.cols; i++) {
const renderingEngineId = `renderingEngine_${i}`;
const viewportId = `CT_${i}`;
const renderingEngine = renderingEnginesRef.current[renderingEngineId];
if (renderingEngine) {
const viewport = renderingEngine.getViewport(viewportId);
renderingEngine.resize(true, false)
}
} */
applyMouseToolBindings(); applyMouseToolBindings();
return; return;
} }
@@ -333,17 +344,24 @@ function App() {
applyMouseToolBindings(); applyMouseToolBindings();
}; };
// Delay setup by 100ms (adjust as needed) setup();
/* // Delay setup by 100ms (adjust as needed)
const timeout = setTimeout(() => { const timeout = setTimeout(() => {
setup(); setup();
}, 300);
return () => clearTimeout(timeout); return () => clearTimeout(timeout);
}, 300); */
return;
}, [elementRef, updateOverlay, viewportGrid, loadedImageIds]); }, [elementRef, updateOverlay, viewportGrid, loadedImageIds]);
// Handler to reset the view (camera and window/level) // Handler to reset the view (camera and window/level)
const handleResetView = useCallback(() => { const handleDoubleClick = useCallback((viewportIdx: numebr) => {
const viewport = viewportRef.current const renderingEngineId = `renderingEngine_${viewportIdx}`;
const viewportId = `CT_${viewportIdx}`;
const renderingEngine = renderingEnginesRef.current[renderingEngineId];
const viewport = renderingEngine.getViewport(viewportId);
if (viewport && typeof viewport.resetCamera === "function") { if (viewport && typeof viewport.resetCamera === "function") {
viewport.resetCamera(); viewport.resetCamera();
viewport.resetProperties(); // Resets window/level and other properties viewport.resetProperties(); // Resets window/level and other properties
@@ -351,9 +369,6 @@ function App() {
} }
}, []) }, [])
// Double-click handler (reuse the same logic)
const handleDoubleClick = handleResetView
// Handler to apply a preset for a specific viewport // Handler to apply a preset for a specific viewport
const handleApplyPreset = useCallback((viewportIdx: number, center: number, width: number) => { const handleApplyPreset = useCallback((viewportIdx: number, center: number, width: number) => {
console.log("Applying preset:", center, width); console.log("Applying preset:", center, width);
@@ -437,6 +452,7 @@ const renderingEngine = renderingEnginesRef.current[renderingEngineId];
display: "flex", display: "flex",
flexDirection: "column", flexDirection: "column",
}} }}
onDoubleClick={() => handleDoubleClick(i)}
> >
{/* Overlay info (bottom left of viewport) */} {/* Overlay info (bottom left of viewport) */}
<div <div
@@ -558,27 +574,6 @@ const renderingEngine = renderingEnginesRef.current[renderingEngineId];
return ( return (
<div style={{ position: "relative", width: "100vw", height: "100vh", background: "#111" }}> <div style={{ position: "relative", width: "100vw", height: "100vh", background: "#111" }}>
{/* Reset View Button */}
<button
style={{
position: "absolute",
top: 8,
left: 8,
zIndex: 10,
padding: "6px 12px",
background: "#222",
color: "#fff",
border: "none",
borderRadius: "4px",
cursor: "pointer",
opacity: 0.85,
userSelect: "none",
}}
onClick={handleResetView}
>
Reset View
</button>
{/* Viewport grid menu at top center */} {/* Viewport grid menu at top center */}
<div <div
style={{ style={{