working reference lines

This commit is contained in:
Ross
2025-05-27 16:25:12 +01:00
parent 81edcea5ea
commit ffb478af59
+17 -24
View File
@@ -24,6 +24,7 @@ const { IMAGE_RENDERED } = Enums.Events;
const STACK_TOOL_GROUP_ID = 'STACK_TOOL_GROUP_ID'; const STACK_TOOL_GROUP_ID = 'STACK_TOOL_GROUP_ID';
const VOLUME_TOOL_GROUP_ID = 'VOLUME_TOOL_GROUP_ID'; const VOLUME_TOOL_GROUP_ID = 'VOLUME_TOOL_GROUP_ID';
const REFERENCE_TOOL_GROUP_ID = 'REFERENCE_TOOL_GROUP_ID';
// Common CT presets (add more as needed) // Common CT presets (add more as needed)
const WINDOW_LEVEL_PRESETS = [ const WINDOW_LEVEL_PRESETS = [
@@ -487,8 +488,8 @@ function App() {
} }
// --- In your setup function, use the correct tool group per viewport --- // --- In your setup function, use the correct tool group per viewport ---
const { stackToolGroup, volumeToolGroup } = ToolGroupManager.getToolGroup(STACK_TOOL_GROUP_ID) const { stackToolGroup, volumeToolGroup, referenceToolGroup } = ToolGroupManager.getToolGroup(STACK_TOOL_GROUP_ID)
? { stackToolGroup: ToolGroupManager.getToolGroup(STACK_TOOL_GROUP_ID), volumeToolGroup: ToolGroupManager.getToolGroup(VOLUME_TOOL_GROUP_ID) } ? { stackToolGroup: ToolGroupManager.getToolGroup(STACK_TOOL_GROUP_ID), volumeToolGroup: ToolGroupManager.getToolGroup(VOLUME_TOOL_GROUP_ID), referenceToolGroup: ToolGroupManager.getToolGroup(REFERENCE_TOOL_GROUP_ID) }
: setupTools(); : setupTools();
@@ -498,29 +499,14 @@ function App() {
// --- In your setup function, after tool group creation, enable/disable ReferenceLinesTool for each tool group --- // --- In your setup function, after tool group creation, enable/disable ReferenceLinesTool for each tool group ---
if (referenceLinesEnabled) { if (referenceLinesEnabled) {
if (!stackToolGroup.hasTool(ReferenceLinesTool.toolName)) {
stackToolGroup.addTool(ReferenceLinesTool.toolName);
}
if (!volumeToolGroup.hasTool(ReferenceLinesTool.toolName)) {
volumeToolGroup.addTool(ReferenceLinesTool.toolName);
}
// Set the active viewport as the source for reference lines
const sourceViewportId = `CT_${activeViewport}`; const sourceViewportId = `CT_${activeViewport}`;
stackToolGroup.setToolConfiguration(ReferenceLinesTool.toolName, { referenceToolGroup.setToolEnabled(ReferenceLinesTool.toolName);
referenceToolGroup.setToolConfiguration(ReferenceLinesTool.toolName, {
sourceViewportId, sourceViewportId,
}); });
volumeToolGroup.setToolConfiguration(ReferenceLinesTool.toolName, {
sourceViewportId,
});
stackToolGroup.setToolEnabled(ReferenceLinesTool.toolName);
volumeToolGroup.setToolEnabled(ReferenceLinesTool.toolName);
} else { } else {
if (stackToolGroup.hasTool(ReferenceLinesTool.toolName)) { referenceToolGroup.setToolDisabled(ReferenceLinesTool.toolName);
stackToolGroup.setToolDisabled(ReferenceLinesTool.toolName);
}
if (volumeToolGroup.hasTool(ReferenceLinesTool.toolName)) {
volumeToolGroup.setToolDisabled(ReferenceLinesTool.toolName);
}
} }
// 6. Enable and configure each viewport // 6. Enable and configure each viewport
@@ -560,6 +546,7 @@ function App() {
// Add tool group only once // Add tool group only once
toolGroup.addViewport(viewportId, renderingEngineId); toolGroup.addViewport(viewportId, renderingEngineId);
referenceToolGroup.addViewport(viewportId, renderingEngineId);
const viewport = renderingEngine.getViewport(viewportId); const viewport = renderingEngine.getViewport(viewportId);
@@ -1787,7 +1774,7 @@ function setupTools() {
stackToolGroup.addTool(PlanarFreehandROITool.toolName, { calculateStats: false }); stackToolGroup.addTool(PlanarFreehandROITool.toolName, { calculateStats: false });
stackToolGroup.addTool(PlanarFreehandContourSegmentationTool.toolName, {}); stackToolGroup.addTool(PlanarFreehandContourSegmentationTool.toolName, {});
stackToolGroup.addTool(SculptorTool.toolName, {}); stackToolGroup.addTool(SculptorTool.toolName, {});
stackToolGroup.addTool(ReferenceLinesTool.toolName); //stackToolGroup.addTool(ReferenceLinesTool.toolName);
// StackScrollTool mouse wheel binding // StackScrollTool mouse wheel binding
stackToolGroup.setToolActive(StackScrollTool.toolName, { stackToolGroup.setToolActive(StackScrollTool.toolName, {
bindings: [{ mouseButton: MouseBindings.Wheel }], bindings: [{ mouseButton: MouseBindings.Wheel }],
@@ -1811,9 +1798,15 @@ function setupTools() {
volumeToolGroup.addTool(PlanarFreehandROITool.toolName, { calculateStats: false }); volumeToolGroup.addTool(PlanarFreehandROITool.toolName, { calculateStats: false });
volumeToolGroup.addTool(PlanarFreehandContourSegmentationTool.toolName, {}); volumeToolGroup.addTool(PlanarFreehandContourSegmentationTool.toolName, {});
volumeToolGroup.addTool(SculptorTool.toolName, {}); volumeToolGroup.addTool(SculptorTool.toolName, {});
volumeToolGroup.addTool(ReferenceLinesTool.toolName); //volumeToolGroup.addTool(ReferenceLinesTool.toolName);
//volumeToolGroup.addTool(CrosshairsTool.toolName, {}); //volumeToolGroup.addTool(CrosshairsTool.toolName, {});
} }
return { stackToolGroup, volumeToolGroup }; let referenceToolGroup = ToolGroupManager.getToolGroup(REFERENCE_TOOL_GROUP_ID);
if (!referenceToolGroup) {
referenceToolGroup = ToolGroupManager.createToolGroup(REFERENCE_TOOL_GROUP_ID);
referenceToolGroup.addTool(ReferenceLinesTool.toolName);
}
return { stackToolGroup, volumeToolGroup, referenceToolGroup };
} }