Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 88x 88x 88x 88x 88x | import { state } from './state';
/**
* Adds the tool class to the cornerstoneTools to be used later. This function
* should be called before creating the toolGroups and adding tools and setting their mode.
* The flow is:
* - addTool(ToolClass) // where ToolClass is the tool constructor imported from CornerstoneTools or created by a 3rd party
* - createToolGroup(toolGroupId)
* - toolGroup.addTool(${toolName}) // NOT THE TOOL CLASS
* - toolGroup.setToolActive(${toolName})
*
* @param ToolClass - A tool calls to instantiate.
* @param toolOptions - The tool-specific configuration options for the tool.
* @returns
*/
export function addTool(ToolClass): void {
// Check if tool exists and name is not undefined
const toolName = ToolClass.toolName;
const toolAlreadyAdded = state.tools[toolName] !== undefined;
Iif (!toolName) {
throw new Error(`No Tool Found for the ToolClass ${ToolClass.name}`);
}
Iif (toolAlreadyAdded) {
throw new Error(`${toolName} has already been added globally`);
}
// Stores the toolNames and ToolClass to be instantiated in the toolGroup on toolGroup.addTool
state.tools[toolName] = {
toolClass: ToolClass,
};
}
/**
* Removes the tool class from the cornerstoneTools.
*
* @param ToolClass - A tool calls to instantiate.
*/
export function removeTool(ToolClass): void {
const toolName = ToolClass.toolName;
if (!toolName) {
throw new Error(`No tool found for: ${ToolClass.name}`);
}
if (!state.tools[toolName] !== undefined) {
delete state.tools[toolName];
} else {
throw new Error(
`${toolName} cannot be removed because it has not been added`
);
}
}
export default addTool;
|