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 | 146x 146x 146x 146x 146x 292x 438x 146x 146x | import type { vtkImageData } from '@kitware/vtk.js/Common/DataModel/ImageData'; import { getOrCreateCanvas } from '@cornerstonejs/core'; function canvasPointsToPagePoints(DomCanvasElement, canvasPoint) { const rect = DomCanvasElement.getBoundingClientRect(); return [ canvasPoint[0] + rect.left + window.pageXOffset, canvasPoint[1] + rect.top + window.pageYOffset, ]; } /** * This function uses the imageData being displayed on the viewport (the default image) and * an index (IJK) on the image to normalize the mouse event details. * It should be noted that the normalization is required since client and page XY * cannot accept a float. Therefore, for the requested index, canvas coordinate * will get calculated and normalized (rounded) to enable normalized client/page XY * * @param {vtkImageData} imageData * @param {[number, number,number]} index - IJK index of the point to click * @param {HTMLDivElement} element - the canvas to be clicked on * @param {IStackViewport|IVolumeViewport} viewport * @returns pageX, pageY, clientX, clientY, worldCoordinate */ function createNormalizedMouseEvent( imageData: vtkImageData, index, element, viewport ) { const canvas = getOrCreateCanvas(element); const tempWorld1 = imageData.indexToWorld(index); const tempCanvasPoint1 = viewport.worldToCanvas(tempWorld1); const canvasPoint1 = tempCanvasPoint1.map((p) => Math.round(p)); const [pageX, pageY] = canvasPointsToPagePoints(canvas, canvasPoint1); const worldCoord = viewport.canvasToWorld(canvasPoint1); return { pageX, pageY, clientX: pageX, clientY: pageY, worldCoord, }; } export { createNormalizedMouseEvent }; |