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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | 1x 99x 99x 99x 99x 99x 99x 99x 99x 99x 99x 99x 99x | import { getEnabledElement } from '@cornerstonejs/core'; import { state } from '../../store'; import { ToolModes } from '../../enums'; import { EventTypes } from '../../types'; // Util import filterToolsWithAnnotationsForElement from '../../store/filterToolsWithAnnotationsForElement'; import filterMoveableAnnotationTools from '../../store/filterMoveableAnnotationTools'; import getToolsWithActionsForMouseEvent from '../shared/getToolsWithActionsForMouseEvent'; const { Active, Passive } = ToolModes; /** * Look for active or passive annotations with an action that could handle the * event based on the bindings and invoke the first one found. * * @param evt - The normalized mouseDown event. * @returns True if an action has executed or false otherwise */ export default function mouseDownAnnotationAction( evt: EventTypes.MouseDownEventType ): boolean { // If a tool has locked the current state it is dealing with an interaction within its own eventLoop. Iif (state.isInteractingWithTool) { return false; } const eventDetail = evt.detail; const { element } = eventDetail; const enabledElement = getEnabledElement(element); const { canvas: canvasCoords } = eventDetail.currentPoints; Iif (!enabledElement) { return false; } // Find all tools that might respond to this mouse down const toolsWithActions = getToolsWithActionsForMouseEvent(evt, [ Active, Passive, ]); const tools = Array.from(toolsWithActions.keys()); // Filter tools with annotations for this element const annotationToolsWithAnnotations = filterToolsWithAnnotationsForElement( element, tools ); // Only moveable annotations (unlocked, visible and close to the canvas coordinates) may trigger actions const moveableAnnotationTools = filterMoveableAnnotationTools( element, annotationToolsWithAnnotations, canvasCoords ); // If there are annotation tools that are interactable, select the first one // that isn't locked. If there's only one annotation tool, select it. Iif (moveableAnnotationTools.length > 0) { const { tool, annotation } = moveableAnnotationTools[0]; const action = toolsWithActions.get(tool); const method = typeof action.method === 'string' ? tool[action.method] : action.method; method.call(tool, evt, annotation); return true; } return false; } |