All files / packages/tools/src/eventListeners/mouse mouseMoveListener.ts

10% Statements 1/10
0% Branches 0/2
0% Functions 0/1
10% Lines 1/10

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          1x                                                                    
import { getEnabledElement, triggerEvent } from '@cornerstonejs/core';
import Events from '../../enums/Events';
import getMouseEventPoints from './getMouseEventPoints';
import { MouseMoveEventDetail } from '../../types/EventTypes';
 
const eventName = Events.MOUSE_MOVE;
 
/**
 * Captures and normalizes the mouse move event. Emits as a cornerstoneTools3D
 * mouse move event.
 *
 * @param evt - The mouse event.
 */
function mouseMoveListener(evt: MouseEvent) {
  const element = <HTMLDivElement>evt.currentTarget;
  const enabledElement = getEnabledElement(element);
  const { renderingEngineId, viewportId } = enabledElement;
 
  const currentPoints = getMouseEventPoints(evt);
  const eventDetail: MouseMoveEventDetail = {
    renderingEngineId,
    viewportId,
    camera: {},
    element,
    currentPoints,
    eventName,
    event: evt,
  };
 
  const consumed = !triggerEvent(element, eventName, eventDetail);
 
  // Events.MOUSE_MOVE was consumed, thus no other listener should handle this event.
  if (consumed) {
    evt.stopImmediatePropagation();
    evt.preventDefault();
  }
}
 
export default mouseMoveListener;