163 lines
4.7 KiB
TypeScript
163 lines
4.7 KiB
TypeScript
const toolGroupIds = {
|
|
default: 'dynamic4D-default',
|
|
PT: 'dynamic4D-pt',
|
|
Fusion: 'dynamic4D-fusion',
|
|
CT: 'dynamic4D-ct',
|
|
};
|
|
|
|
const colours = {
|
|
'viewport-0': 'rgb(200, 0, 0)',
|
|
'viewport-1': 'rgb(200, 200, 0)',
|
|
'viewport-2': 'rgb(0, 200, 0)',
|
|
};
|
|
|
|
const colorsByOrientation = {
|
|
axial: 'rgb(200, 0, 0)',
|
|
sagittal: 'rgb(200, 200, 0)',
|
|
coronal: 'rgb(0, 200, 0)',
|
|
};
|
|
|
|
function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager, servicesManager) {
|
|
const { cornerstoneViewportService } = servicesManager.services;
|
|
const tools = {
|
|
active: [
|
|
{
|
|
toolName: toolNames.WindowLevel,
|
|
bindings: [{ mouseButton: Enums.MouseBindings.Primary }],
|
|
},
|
|
{
|
|
toolName: toolNames.Pan,
|
|
bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }],
|
|
},
|
|
{
|
|
toolName: toolNames.Zoom,
|
|
bindings: [{ mouseButton: Enums.MouseBindings.Secondary }],
|
|
},
|
|
{ toolName: toolNames.StackScrollMouseWheel, bindings: [] },
|
|
],
|
|
passive: [
|
|
{ toolName: toolNames.Length },
|
|
{ toolName: toolNames.ArrowAnnotate },
|
|
{ toolName: toolNames.Bidirectional },
|
|
{ toolName: toolNames.Probe },
|
|
{ toolName: toolNames.EllipticalROI },
|
|
{ toolName: toolNames.RectangleROI },
|
|
{ toolName: toolNames.RectangleROIThreshold },
|
|
{ toolName: toolNames.RectangleScissors },
|
|
{ toolName: toolNames.PaintFill },
|
|
{ toolName: toolNames.StackScroll },
|
|
{ toolName: toolNames.Magnify },
|
|
{
|
|
toolName: 'CircularBrush',
|
|
parentTool: 'Brush',
|
|
configuration: {
|
|
activeStrategy: 'FILL_INSIDE_CIRCLE',
|
|
brushSize: 7,
|
|
},
|
|
},
|
|
{
|
|
toolName: 'CircularEraser',
|
|
parentTool: 'Brush',
|
|
configuration: {
|
|
activeStrategy: 'ERASE_INSIDE_CIRCLE',
|
|
brushSize: 7,
|
|
},
|
|
},
|
|
{
|
|
toolName: 'SphereBrush',
|
|
parentTool: 'Brush',
|
|
configuration: {
|
|
activeStrategy: 'FILL_INSIDE_SPHERE',
|
|
brushSize: 7,
|
|
},
|
|
},
|
|
{
|
|
toolName: 'SphereEraser',
|
|
parentTool: 'Brush',
|
|
configuration: {
|
|
activeStrategy: 'ERASE_INSIDE_SPHERE',
|
|
brushSize: 7,
|
|
},
|
|
},
|
|
{
|
|
toolName: 'ThresholdCircularBrush',
|
|
parentTool: 'Brush',
|
|
configuration: {
|
|
activeStrategy: 'THRESHOLD_INSIDE_CIRCLE',
|
|
brushSize: 7,
|
|
},
|
|
},
|
|
{
|
|
toolName: 'ThresholdSphereBrush',
|
|
parentTool: 'Brush',
|
|
configuration: {
|
|
activeStrategy: 'THRESHOLD_INSIDE_SPHERE',
|
|
brushSize: 7,
|
|
},
|
|
},
|
|
{ toolName: toolNames.CircleScissors },
|
|
{ toolName: toolNames.RectangleScissors },
|
|
{ toolName: toolNames.SphereScissors },
|
|
{ toolName: toolNames.StackScroll },
|
|
{ toolName: toolNames.Magnify },
|
|
{ toolName: toolNames.SegmentationDisplay },
|
|
],
|
|
enabled: [{ toolName: toolNames.SegmentationDisplay }],
|
|
disabled: [
|
|
{
|
|
toolName: toolNames.Crosshairs,
|
|
configuration: {
|
|
viewportIndicators: true,
|
|
viewportIndicatorsConfig: {
|
|
circleRadius: 5,
|
|
xOffset: 0.95,
|
|
yOffset: 0.05,
|
|
},
|
|
disableOnPassive: true,
|
|
autoPan: {
|
|
enabled: false,
|
|
panSize: 10,
|
|
},
|
|
getReferenceLineColor: viewportId => {
|
|
const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);
|
|
const viewportOptions = viewportInfo?.viewportOptions;
|
|
if (viewportOptions) {
|
|
return (
|
|
colours[viewportOptions.id] ||
|
|
colorsByOrientation[viewportOptions.orientation] ||
|
|
'#0c0'
|
|
);
|
|
} else {
|
|
console.warn('missing viewport?', viewportId);
|
|
return '#0c0';
|
|
}
|
|
},
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|
|
toolGroupService.createToolGroupAndAddTools(toolGroupIds.PT, {
|
|
...tools,
|
|
passive: [...tools.passive, { toolName: 'RectangleROIStartEndThreshold' }],
|
|
});
|
|
|
|
toolGroupService.createToolGroupAndAddTools(toolGroupIds.CT, {
|
|
...tools,
|
|
passive: [...tools.passive, { toolName: 'RectangleROIStartEndThreshold' }],
|
|
});
|
|
|
|
toolGroupService.createToolGroupAndAddTools(toolGroupIds.Fusion, {
|
|
...tools,
|
|
passive: [...tools.passive, { toolName: 'RectangleROIStartEndThreshold' }],
|
|
});
|
|
|
|
toolGroupService.createToolGroupAndAddTools(toolGroupIds.default, tools);
|
|
}
|
|
|
|
function initToolGroups({ toolNames, Enums, toolGroupService, commandsManager, servicesManager }) {
|
|
_initToolGroups(toolNames, Enums, toolGroupService, commandsManager, servicesManager);
|
|
}
|
|
|
|
export { initToolGroups as default, toolGroupIds };
|