@cornerstonejs/core 2.0.0-beta.20 → 2.0.0-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +23 -13
  2. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +36 -44
  3. package/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.d.ts +1 -1
  4. package/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.d.ts +1 -1
  5. package/dist/esm/RenderingEngine/CanvasActor/index.js +2 -1
  6. package/dist/esm/RenderingEngine/RenderingEngine.d.ts +7 -8
  7. package/dist/esm/RenderingEngine/RenderingEngine.js +18 -17
  8. package/dist/esm/RenderingEngine/StackViewport.d.ts +29 -18
  9. package/dist/esm/RenderingEngine/StackViewport.js +66 -50
  10. package/dist/esm/RenderingEngine/VideoViewport.d.ts +19 -28
  11. package/dist/esm/RenderingEngine/VideoViewport.js +59 -22
  12. package/dist/esm/RenderingEngine/Viewport.d.ts +25 -14
  13. package/dist/esm/RenderingEngine/Viewport.js +20 -14
  14. package/dist/esm/RenderingEngine/VolumeViewport.d.ts +21 -9
  15. package/dist/esm/RenderingEngine/VolumeViewport.js +88 -8
  16. package/dist/esm/RenderingEngine/VolumeViewport3D.d.ts +3 -3
  17. package/dist/esm/RenderingEngine/VolumeViewport3D.js +10 -3
  18. package/dist/esm/RenderingEngine/WSIViewport.d.ts +58 -0
  19. package/dist/esm/RenderingEngine/WSIViewport.js +414 -0
  20. package/dist/esm/RenderingEngine/helpers/addImageSlicesToViewports.d.ts +1 -1
  21. package/dist/esm/RenderingEngine/helpers/addImageSlicesToViewports.js +3 -3
  22. package/dist/esm/RenderingEngine/helpers/addVolumesToViewports.d.ts +1 -1
  23. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.d.ts +1 -1
  24. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.js +1 -1
  25. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/lookupTable.d.ts +2 -2
  26. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/lookupTable.js +15 -5
  27. package/dist/esm/RenderingEngine/helpers/cpuFallback/drawImageSync.d.ts +1 -1
  28. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/calculateTransform.d.ts +1 -1
  29. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/canvasToPixel.d.ts +1 -1
  30. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/correctShift.d.ts +3 -3
  31. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/createViewport.d.ts +1 -1
  32. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/doesImageNeedToBeRendered.d.ts +1 -1
  33. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/fitToWindow.d.ts +1 -1
  34. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateColorLUT.d.ts +1 -1
  35. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateColorLUT.js +1 -1
  36. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateLut.d.ts +1 -1
  37. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateLut.js +2 -2
  38. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getDefaultViewport.d.ts +1 -1
  39. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getImageFitScale.d.ts +1 -1
  40. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getImageSize.d.ts +1 -1
  41. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getLut.d.ts +1 -1
  42. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getLut.js +1 -1
  43. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getTransform.d.ts +1 -1
  44. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/initializeRenderCanvas.d.ts +1 -1
  45. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/lutMatches.d.ts +2 -1
  46. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/lutMatches.js +1 -1
  47. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/pixelToCanvas.d.ts +1 -1
  48. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.d.ts +1 -1
  49. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js +3 -4
  50. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderGrayscaleImage.d.ts +1 -1
  51. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderGrayscaleImage.js +2 -3
  52. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js +2 -2
  53. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/resetCamera.d.ts +1 -1
  54. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/resize.d.ts +1 -1
  55. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/saveLastRendered.d.ts +1 -1
  56. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/setDefaultViewport.d.ts +1 -1
  57. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/setToPixelCoordinateSystem.d.ts +1 -1
  58. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedColorPixelDataToCanvasImageData.d.ts +1 -1
  59. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedColorPixelDataToCanvasImageData.js +1 -1
  60. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageData.d.ts +1 -1
  61. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageData.js +1 -1
  62. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataColorLUT.js +1 -1
  63. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPET.d.ts +1 -1
  64. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPET.js +1 -1
  65. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPseudocolorLUT.js +1 -1
  66. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPseudocolorLUTPET.js +1 -1
  67. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataRGBA.d.ts +1 -1
  68. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataRGBA.js +1 -1
  69. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedRGBAPixelDataToCanvasImageData.d.ts +1 -1
  70. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedRGBAPixelDataToCanvasImageData.js +1 -1
  71. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.d.ts +1 -1
  72. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/validator.d.ts +2 -2
  73. package/dist/esm/RenderingEngine/helpers/createVolumeActor.d.ts +3 -3
  74. package/dist/esm/RenderingEngine/helpers/createVolumeActor.js +3 -6
  75. package/dist/esm/RenderingEngine/helpers/createVolumeMapper.d.ts +4 -1
  76. package/dist/esm/RenderingEngine/helpers/getOrCreateCanvas.js +5 -4
  77. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +2 -2
  78. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +10 -35
  79. package/dist/esm/RenderingEngine/helpers/setVolumesForViewports.d.ts +1 -1
  80. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +2 -0
  81. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js +2 -0
  82. package/dist/esm/RenderingEngine/helpers/volumeNewImageEventDispatcher.d.ts +1 -1
  83. package/dist/esm/RenderingEngine/renderingEngineCache.d.ts +1 -1
  84. package/dist/esm/RenderingEngine/vtkClasses/vtkSlabCamera.d.ts +4 -2
  85. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLTexture.js +87 -78
  86. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLViewNodeFactory.js +1 -1
  87. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +83 -42
  88. package/dist/esm/Settings.d.ts +1 -1
  89. package/dist/esm/cache/cache.d.ts +15 -19
  90. package/dist/esm/cache/cache.js +110 -56
  91. package/dist/esm/cache/classes/Contour.d.ts +4 -4
  92. package/dist/esm/cache/classes/ContourSet.d.ts +3 -3
  93. package/dist/esm/cache/classes/ImageVolume.d.ts +19 -19
  94. package/dist/esm/cache/classes/ImageVolume.js +48 -254
  95. package/dist/esm/cache/classes/Surface.d.ts +3 -3
  96. package/dist/esm/constants/cpuColormaps.d.ts +1 -1
  97. package/dist/esm/constants/viewportPresets.d.ts +1 -1
  98. package/dist/esm/enums/GenerateImageType.d.ts +5 -0
  99. package/dist/esm/enums/GenerateImageType.js +6 -0
  100. package/dist/esm/enums/MetadataModules.d.ts +2 -1
  101. package/dist/esm/enums/MetadataModules.js +1 -0
  102. package/dist/esm/enums/ViewportType.d.ts +2 -1
  103. package/dist/esm/enums/ViewportType.js +1 -0
  104. package/dist/esm/enums/index.d.ts +2 -2
  105. package/dist/esm/enums/index.js +2 -2
  106. package/dist/esm/eventTarget.js +2 -3
  107. package/dist/esm/getEnabledElement.d.ts +1 -1
  108. package/dist/esm/global.d.ts +0 -1
  109. package/dist/esm/index.d.ts +4 -3
  110. package/dist/esm/index.js +3 -2
  111. package/dist/esm/init.d.ts +5 -8
  112. package/dist/esm/init.js +21 -82
  113. package/dist/esm/loaders/ProgressiveRetrieveImages.d.ts +5 -5
  114. package/dist/esm/loaders/ProgressiveRetrieveImages.js +3 -1
  115. package/dist/esm/loaders/configuration/interleavedRetrieve.d.ts +1 -1
  116. package/dist/esm/loaders/fillNearbyFrames.d.ts +2 -2
  117. package/dist/esm/loaders/geometryLoader.d.ts +3 -3
  118. package/dist/esm/loaders/imageLoader.d.ts +12 -17
  119. package/dist/esm/loaders/imageLoader.js +174 -95
  120. package/dist/esm/loaders/utils/contourSet/createContourSet.d.ts +1 -1
  121. package/dist/esm/loaders/utils/contourSet/validateContourSet.d.ts +1 -1
  122. package/dist/esm/loaders/utils/surface/createSurface.d.ts +1 -1
  123. package/dist/esm/loaders/utils/surface/validateSurface.d.ts +1 -1
  124. package/dist/esm/loaders/volumeLoader.d.ts +14 -22
  125. package/dist/esm/loaders/volumeLoader.js +62 -210
  126. package/dist/esm/metaData.d.ts +2 -4
  127. package/dist/esm/requestPool/requestPoolManager.d.ts +7 -9
  128. package/dist/esm/types/AABB2.d.ts +2 -2
  129. package/dist/esm/types/AABB3.d.ts +2 -2
  130. package/dist/esm/types/ActorSliceRange.d.ts +5 -5
  131. package/dist/esm/types/BoundsIJK.d.ts +1 -1
  132. package/dist/esm/types/BoundsLPS.d.ts +1 -1
  133. package/dist/esm/types/CPUFallbackColormap.d.ts +3 -3
  134. package/dist/esm/types/CPUFallbackColormapData.d.ts +4 -4
  135. package/dist/esm/types/CPUFallbackColormapsData.d.ts +3 -5
  136. package/dist/esm/types/CPUFallbackEnabledElement.d.ts +14 -11
  137. package/dist/esm/types/CPUFallbackLUT.d.ts +4 -3
  138. package/dist/esm/types/CPUFallbackLookupTable.d.ts +2 -2
  139. package/dist/esm/types/CPUFallbackRenderingTools.d.ts +5 -5
  140. package/dist/esm/types/CPUFallbackTransform.d.ts +3 -3
  141. package/dist/esm/types/CPUFallbackViewport.d.ts +6 -6
  142. package/dist/esm/types/CPUFallbackViewportDisplayedArea.d.ts +3 -3
  143. package/dist/esm/types/CPUIImageData.d.ts +17 -9
  144. package/dist/esm/types/Color.d.ts +1 -1
  145. package/dist/esm/types/Colormap.d.ts +7 -7
  146. package/dist/esm/types/ContourData.d.ts +6 -6
  147. package/dist/esm/types/Cornerstone3DConfig.d.ts +7 -7
  148. package/dist/esm/types/CustomEventType.d.ts +2 -2
  149. package/dist/esm/types/EventTypes.d.ts +55 -55
  150. package/dist/esm/types/FlipDirection.d.ts +3 -3
  151. package/dist/esm/types/IActor.d.ts +3 -3
  152. package/dist/esm/types/ICache.d.ts +4 -4
  153. package/dist/esm/types/ICachedGeometry.d.ts +3 -3
  154. package/dist/esm/types/ICachedImage.d.ts +3 -2
  155. package/dist/esm/types/ICachedVolume.d.ts +3 -2
  156. package/dist/esm/types/ICamera.d.ts +3 -3
  157. package/dist/esm/types/IContour.d.ts +4 -3
  158. package/dist/esm/types/IContourSet.d.ts +5 -2
  159. package/dist/esm/types/IDynamicImageVolume.d.ts +3 -3
  160. package/dist/esm/types/IEnabledElement.d.ts +2 -2
  161. package/dist/esm/types/IGeometry.d.ts +4 -4
  162. package/dist/esm/types/IImage.d.ts +12 -10
  163. package/dist/esm/types/IImageCalibration.d.ts +2 -2
  164. package/dist/esm/types/IImageData.d.ts +11 -4
  165. package/dist/esm/types/IImageFrame.d.ts +42 -0
  166. package/dist/esm/types/IImageFrame.js +1 -0
  167. package/dist/esm/types/IImageVolume.d.ts +17 -14
  168. package/dist/esm/types/ILoadObject.d.ts +3 -3
  169. package/dist/esm/types/IPointsManager.d.ts +23 -0
  170. package/dist/esm/types/IPointsManager.js +1 -0
  171. package/dist/esm/types/IRLEVoxelMap.d.ts +16 -0
  172. package/dist/esm/types/IRLEVoxelMap.js +1 -0
  173. package/dist/esm/types/IRegisterImageLoader.d.ts +2 -2
  174. package/dist/esm/types/IRenderingEngine.d.ts +11 -12
  175. package/dist/esm/types/IRetrieveConfiguration.d.ts +6 -6
  176. package/dist/esm/types/IStackInput.d.ts +1 -1
  177. package/dist/esm/types/IStackViewport.d.ts +69 -2
  178. package/dist/esm/types/IStreamingImageVolume.d.ts +3 -4
  179. package/dist/esm/types/IStreamingVolumeProperties.d.ts +5 -5
  180. package/dist/esm/types/ISurface.d.ts +1 -1
  181. package/dist/esm/types/ITransferFunctionNode.d.ts +9 -0
  182. package/dist/esm/types/ITransferFunctionNode.js +1 -0
  183. package/dist/esm/types/IVideoViewport.d.ts +40 -2
  184. package/dist/esm/types/IViewport.d.ts +62 -41
  185. package/dist/esm/types/IVolume.d.ts +2 -2
  186. package/dist/esm/types/IVolumeInput.d.ts +2 -2
  187. package/dist/esm/types/IVolumeViewport.d.ts +17 -16
  188. package/dist/esm/types/IVoxelManager.d.ts +54 -0
  189. package/dist/esm/types/IVoxelManager.js +1 -0
  190. package/dist/esm/types/IWSIViewport.d.ts +16 -0
  191. package/dist/esm/types/IWSIViewport.js +1 -0
  192. package/dist/esm/types/ImageLoadListener.d.ts +2 -2
  193. package/dist/esm/types/ImageLoaderFn.d.ts +3 -3
  194. package/dist/esm/types/ImagePixelModule.d.ts +1 -1
  195. package/dist/esm/types/ImagePlaneModule.d.ts +2 -2
  196. package/dist/esm/types/ImageSliceData.d.ts +3 -3
  197. package/dist/esm/types/ImageVolumeProps.d.ts +4 -4
  198. package/dist/esm/types/Mat3.d.ts +1 -1
  199. package/dist/esm/types/Metadata.d.ts +6 -6
  200. package/dist/esm/types/MetadataModuleTypes.d.ts +65 -0
  201. package/dist/esm/types/MetadataModuleTypes.js +1 -0
  202. package/dist/esm/types/OrientationVectors.d.ts +4 -4
  203. package/dist/esm/types/Plane.d.ts +1 -1
  204. package/dist/esm/types/Point2.d.ts +1 -1
  205. package/dist/esm/types/Point3.d.ts +3 -3
  206. package/dist/esm/types/Point4.d.ts +1 -1
  207. package/dist/esm/types/RGB.d.ts +1 -1
  208. package/dist/esm/types/ScalingParameters.d.ts +7 -7
  209. package/dist/esm/types/StackViewportProperties.d.ts +3 -3
  210. package/dist/esm/types/SurfaceData.d.ts +5 -5
  211. package/dist/esm/types/TransformMatrix2D.d.ts +1 -1
  212. package/dist/esm/types/VideoViewportProperties.d.ts +3 -3
  213. package/dist/esm/types/VideoViewportTypes.d.ts +7 -7
  214. package/dist/esm/types/ViewportInputOptions.d.ts +7 -7
  215. package/dist/esm/types/ViewportPreset.d.ts +1 -1
  216. package/dist/esm/types/ViewportProperties.d.ts +5 -5
  217. package/dist/esm/types/VolumeLoaderFn.d.ts +4 -3
  218. package/dist/esm/types/VolumeProps.d.ts +10 -5
  219. package/dist/esm/types/VolumeViewportProperties.d.ts +3 -3
  220. package/dist/esm/types/WSIViewportProperties.d.ts +3 -0
  221. package/dist/esm/types/WSIViewportProperties.js +1 -0
  222. package/dist/esm/types/WSIViewportTypes.d.ts +13 -0
  223. package/dist/esm/types/WSIViewportTypes.js +1 -0
  224. package/dist/esm/types/displayArea.d.ts +4 -4
  225. package/dist/esm/types/index.d.ts +16 -8
  226. package/dist/esm/types/voi.d.ts +4 -4
  227. package/dist/esm/utilities/PointsManager.d.ts +8 -10
  228. package/dist/esm/utilities/ProgressiveIterator.d.ts +1 -1
  229. package/dist/esm/utilities/ProgressiveIterator.js +3 -1
  230. package/dist/esm/utilities/RLEVoxelMap.d.ts +3 -8
  231. package/dist/esm/utilities/RLEVoxelMap.js +19 -19
  232. package/dist/esm/utilities/VoxelManager.d.ts +82 -20
  233. package/dist/esm/utilities/VoxelManager.js +466 -60
  234. package/dist/esm/utilities/actorCheck.d.ts +1 -1
  235. package/dist/esm/utilities/applyPreset.d.ts +2 -2
  236. package/dist/esm/utilities/calculateViewportsSpatialRegistration.d.ts +1 -1
  237. package/dist/esm/utilities/calculateViewportsSpatialRegistration.js +4 -4
  238. package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.d.ts +1 -1
  239. package/dist/esm/utilities/colormap.d.ts +1 -1
  240. package/dist/esm/utilities/convertStackToVolumeViewport.d.ts +2 -2
  241. package/dist/esm/utilities/convertStackToVolumeViewport.js +4 -4
  242. package/dist/esm/utilities/convertVolumeToStackViewport.d.ts +1 -1
  243. package/dist/esm/utilities/convertVolumeToStackViewport.js +1 -1
  244. package/dist/esm/utilities/createLinearRGBTransferFunction.d.ts +1 -1
  245. package/dist/esm/utilities/createLinearRGBTransferFunction.js +1 -3
  246. package/dist/esm/utilities/createSigmoidRGBTransferFunction.d.ts +2 -3
  247. package/dist/esm/utilities/createSigmoidRGBTransferFunction.js +8 -7
  248. package/dist/esm/utilities/decimate.d.ts +1 -1
  249. package/dist/esm/utilities/eventListener/TargetEventListeners.js +5 -3
  250. package/dist/esm/utilities/generateVolumePropsFromImageIds.d.ts +1 -1
  251. package/dist/esm/utilities/generateVolumePropsFromImageIds.js +33 -80
  252. package/dist/esm/utilities/genericMetadataProvider.d.ts +9 -2
  253. package/dist/esm/utilities/genericMetadataProvider.js +7 -1
  254. package/dist/esm/utilities/getBufferConfiguration.d.ts +2 -3
  255. package/dist/esm/utilities/getBufferConfiguration.js +5 -15
  256. package/dist/esm/utilities/getClosestImageId.js +1 -1
  257. package/dist/esm/utilities/getClosestStackImageIndexForPoint.d.ts +1 -1
  258. package/dist/esm/utilities/getCurrentVolumeViewportSlice.d.ts +4 -5
  259. package/dist/esm/utilities/getCurrentVolumeViewportSlice.js +8 -58
  260. package/dist/esm/utilities/getImageLegacy.d.ts +1 -1
  261. package/dist/esm/utilities/getImageSliceDataForVolumeViewport.d.ts +1 -1
  262. package/dist/esm/utilities/getMinMax.d.ts +2 -1
  263. package/dist/esm/utilities/getScalingParameters.d.ts +1 -1
  264. package/dist/esm/utilities/getSpacingInNormalDirection.d.ts +2 -2
  265. package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.d.ts +1 -1
  266. package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.js +2 -2
  267. package/dist/esm/utilities/getViewportImageCornersInWorld.d.ts +1 -1
  268. package/dist/esm/utilities/getViewportImageIds.d.ts +1 -1
  269. package/dist/esm/utilities/getViewportModality.d.ts +7 -3
  270. package/dist/esm/utilities/getViewportModality.js +9 -6
  271. package/dist/esm/utilities/getViewportsWithImageURI.d.ts +2 -2
  272. package/dist/esm/utilities/getViewportsWithVolumeId.d.ts +2 -2
  273. package/dist/esm/utilities/getViewportsWithVolumeId.js +3 -7
  274. package/dist/esm/utilities/getVoiFromSigmoidRGBTransferFunction.d.ts +1 -1
  275. package/dist/esm/utilities/getVolumeActorCorners.d.ts +2 -2
  276. package/dist/esm/utilities/getVolumeId.js +2 -2
  277. package/dist/esm/utilities/getVolumeSliceRangeInfo.d.ts +1 -1
  278. package/dist/esm/utilities/getVolumeViewportScrollInfo.d.ts +1 -1
  279. package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.d.ts +2 -2
  280. package/dist/esm/utilities/hasFloatScalingParameters.d.ts +1 -1
  281. package/dist/esm/utilities/imageRetrieveMetadataProvider.d.ts +1 -1
  282. package/dist/esm/utilities/imageToWorldCoords.d.ts +1 -1
  283. package/dist/esm/utilities/index.d.ts +3 -8
  284. package/dist/esm/utilities/index.js +4 -8
  285. package/dist/esm/utilities/indexWithinDimensions.d.ts +1 -1
  286. package/dist/esm/utilities/invertRgbTransferFunction.d.ts +2 -1
  287. package/dist/esm/utilities/isEqual.js +6 -1
  288. package/dist/esm/utilities/isPTPrescaledWithSUV.d.ts +1 -1
  289. package/dist/esm/utilities/isPTPrescaledWithSUV.js +1 -1
  290. package/dist/esm/utilities/isTypedArray.d.ts +1 -1
  291. package/dist/esm/utilities/loadImageToCanvas.d.ts +6 -6
  292. package/dist/esm/utilities/makeVolumeMetadata.d.ts +2 -2
  293. package/dist/esm/utilities/planar.d.ts +2 -2
  294. package/dist/esm/utilities/renderToCanvasCPU.d.ts +1 -1
  295. package/dist/esm/utilities/renderToCanvasGPU.d.ts +2 -2
  296. package/dist/esm/utilities/renderToCanvasGPU.js +1 -1
  297. package/dist/esm/utilities/scaleRgbTransferFunction.d.ts +2 -1
  298. package/dist/esm/utilities/snapFocalPointToSlice.d.ts +1 -1
  299. package/dist/esm/utilities/sortImageIdsAndGetSpacing.d.ts +5 -5
  300. package/dist/esm/utilities/transformCanvasToIJK.d.ts +2 -2
  301. package/dist/esm/utilities/transformIJKToCanvas.d.ts +1 -1
  302. package/dist/esm/utilities/triggerEvent.js +1 -1
  303. package/dist/esm/utilities/updateVTKImageDataWithCornerstoneImage.d.ts +2 -2
  304. package/dist/esm/utilities/updateVTKImageDataWithCornerstoneImage.js +1 -1
  305. package/dist/esm/utilities/uuidv4.js +3 -1
  306. package/dist/esm/utilities/worldToImageCoords.d.ts +1 -1
  307. package/dist/umd/index.js +1 -1
  308. package/dist/umd/index.js.map +1 -1
  309. package/package.json +5 -6
  310. package/dist/esm/cache/utils/restoreImagesFromBuffer.d.ts +0 -2
  311. package/dist/esm/cache/utils/restoreImagesFromBuffer.js +0 -28
  312. package/dist/esm/enums/SharedArrayBufferModes.d.ts +0 -6
  313. package/dist/esm/enums/SharedArrayBufferModes.js +0 -7
  314. package/dist/esm/utilities/cacheUtils.d.ts +0 -2
  315. package/dist/esm/utilities/cacheUtils.js +0 -86
  316. package/dist/esm/utilities/createFloat32SharedArray.d.ts +0 -2
  317. package/dist/esm/utilities/createFloat32SharedArray.js +0 -27
  318. package/dist/esm/utilities/createInt16SharedArray.d.ts +0 -2
  319. package/dist/esm/utilities/createInt16SharedArray.js +0 -11
  320. package/dist/esm/utilities/createUInt16SharedArray.d.ts +0 -2
  321. package/dist/esm/utilities/createUInt16SharedArray.js +0 -11
  322. package/dist/esm/utilities/createUint8SharedArray.d.ts +0 -2
  323. package/dist/esm/utilities/createUint8SharedArray.js +0 -12
  324. package/dist/esm/utilities/getScalarDataType.d.ts +0 -2
  325. package/dist/esm/utilities/getScalarDataType.js +0 -19
@@ -3,10 +3,10 @@ import spatialRegistrationMetadataProvider from './spatialRegistrationMetadataPr
3
3
  import { metaData } from '..';
4
4
  const ALLOWED_DELTA = 0.05;
5
5
  function calculateViewportsSpatialRegistration(viewport1, viewport2) {
6
- const imageId1 = viewport1.getCurrentImageId();
7
- const imageId2 = viewport2.getCurrentImageId();
8
- const imagePlaneModule1 = metaData.get('imagePlaneModule', imageId1);
9
- const imagePlaneModule2 = metaData.get('imagePlaneModule', imageId2);
6
+ const imageId1 = viewport1.getSliceIndex();
7
+ const imageId2 = viewport2.getSliceIndex();
8
+ const imagePlaneModule1 = metaData.get('imagePlaneModule', imageId1.toString());
9
+ const imagePlaneModule2 = metaData.get('imagePlaneModule', imageId2.toString());
10
10
  if (!imagePlaneModule1 || !imagePlaneModule2) {
11
11
  console.log('Viewport spatial registration requires image plane module');
12
12
  return;
@@ -1,4 +1,4 @@
1
- import { IImageCalibration } from '../types';
1
+ import type { IImageCalibration } from '../types/IImageCalibration';
2
2
  declare const metadataProvider: {
3
3
  add: (imageId: string, payload: IImageCalibration) => void;
4
4
  get: (type: string, imageId: string) => IImageCalibration;
@@ -1,4 +1,4 @@
1
- import { ColormapPublic, ColormapRegistration } from '../types';
1
+ import type { ColormapPublic, ColormapRegistration } from '../types';
2
2
  declare function registerColormap(colormap: ColormapRegistration): void;
3
3
  declare function getColormap(name: any): any;
4
4
  declare function getColormapNames(): any[];
@@ -1,5 +1,5 @@
1
- import { IStackViewport, IVolumeViewport, Point3 } from '../types';
2
- import { OrientationAxis } from '../enums';
1
+ import type { IStackViewport, IVolumeViewport, Point3 } from '../types';
2
+ import type { OrientationAxis } from '../enums';
3
3
  declare function convertStackToVolumeViewport({ viewport, options, }: {
4
4
  viewport: IStackViewport;
5
5
  options: {
@@ -1,5 +1,5 @@
1
1
  import { setVolumesForViewports } from '../RenderingEngine/helpers';
2
- import { createAndCacheEmptyVolume, getUnknownVolumeLoaderSchema, } from '../loaders/volumeLoader';
2
+ import { createAndCacheVolume, getUnknownVolumeLoaderSchema, } from '../loaders/volumeLoader';
3
3
  import { Events, ViewportType } from '../enums';
4
4
  async function convertStackToVolumeViewport({ viewport, options, }) {
5
5
  const renderingEngine = viewport.getRenderingEngine();
@@ -21,12 +21,12 @@ async function convertStackToVolumeViewport({ viewport, options, }) {
21
21
  orientation: options.orientation,
22
22
  },
23
23
  });
24
- const volume = await createAndCacheEmptyVolume(volumeId, {
24
+ const volume = await createAndCacheVolume(volumeId, {
25
25
  imageIds,
26
26
  });
27
27
  volume.load();
28
- const volumeViewport = (renderingEngine.getViewport(viewportId));
29
- setVolumesForViewports(renderingEngine, [
28
+ const volumeViewport = renderingEngine.getViewport(viewportId);
29
+ await setVolumesForViewports(renderingEngine, [
30
30
  {
31
31
  volumeId,
32
32
  },
@@ -1,4 +1,4 @@
1
- import * as Types from '../types';
1
+ import type * as Types from '../types';
2
2
  declare function convertVolumeToStackViewport({ viewport, options, }: {
3
3
  viewport: Types.IVolumeViewport;
4
4
  options: {
@@ -22,7 +22,7 @@ async function convertVolumeToStackViewport({ viewport, options, }) {
22
22
  };
23
23
  const prevView = volumeViewport.getViewReference();
24
24
  renderingEngine.enableElement(viewportInput);
25
- const stackViewport = (renderingEngine.getViewport(viewportId));
25
+ const stackViewport = renderingEngine.getViewport(viewportId);
26
26
  await stackViewport.setStack(volume.imageIds);
27
27
  stackViewport.setViewReference(prevView);
28
28
  stackViewport.render();
@@ -1,3 +1,3 @@
1
1
  import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
2
- import { VOIRange } from '../types';
2
+ import type { VOIRange } from '../types/voi';
3
3
  export default function createLinearRGBTransferFunction(voiRange: VOIRange): vtkColorTransferFunction;
@@ -3,9 +3,7 @@ export default function createLinearRGBTransferFunction(voiRange) {
3
3
  const cfun = vtkColorTransferFunction.newInstance();
4
4
  let lower = 0;
5
5
  let upper = 1024;
6
- if (voiRange &&
7
- voiRange.lower !== undefined &&
8
- voiRange.upper !== undefined) {
6
+ if (voiRange.lower !== undefined && voiRange.upper !== undefined) {
9
7
  lower = voiRange.lower;
10
8
  upper = voiRange.upper;
11
9
  }
@@ -1,3 +1,2 @@
1
- import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
2
- import { VOIRange } from '../types';
3
- export default function createSigmoidRGBTransferFunction(voiRange: VOIRange, approximationNodes?: number): vtkColorTransferFunction;
1
+ import type { VOIRange } from '../types/voi';
2
+ export default function createSigmoidRGBTransferFunction(voiRange: VOIRange, approximationNodes?: number): unknown;
@@ -9,14 +9,15 @@ export default function createSigmoidRGBTransferFunction(voiRange, approximation
9
9
  const logit = (y, wc, ww) => {
10
10
  return wc - (ww / 4) * Math.log((1 - y) / y);
11
11
  };
12
- const range = [...Array(approximationNodes + 2).keys()]
13
- .map((v) => v / (approximationNodes + 2))
14
- .slice(1, -1);
15
- const table = range.reduce((res, y) => {
12
+ const range = Array.from({ length: approximationNodes }, (_, i) => (i + 1) / (approximationNodes + 2));
13
+ const table = range.flatMap((y) => {
16
14
  const x = logit(y, windowCenter, windowWidth);
17
- return res.concat(x, y, y, y, 0.5, 0.0);
18
- }, []);
15
+ return [x, y, y, y, 0.5, 0.0];
16
+ });
19
17
  const cfun = vtkColorTransferFunction.newInstance();
20
- cfun.buildFunctionFromArray(vtkDataArray.newInstance({ values: table, numberOfComponents: 6 }));
18
+ cfun.buildFunctionFromArray(vtkDataArray.newInstance({
19
+ values: table,
20
+ numberOfComponents: 6,
21
+ }));
21
22
  return cfun;
22
23
  }
@@ -1 +1 @@
1
- export default function decimate(list: Array<unknown>, interleave: number, offset?: number): number[];
1
+ export default function decimate(list: unknown[], interleave: number, offset?: number): number[];
@@ -67,7 +67,7 @@ class TargetEventListeners {
67
67
  listenersMap = new Map();
68
68
  this._eventListeners.set(type, listenersMap);
69
69
  }
70
- const useCapture = options?.capture ?? false;
70
+ const useCapture = options.capture ?? false;
71
71
  const listenerPhase = useCapture
72
72
  ? EventListenerPhases.Capture
73
73
  : EventListenerPhases.Bubble;
@@ -80,7 +80,7 @@ class TargetEventListeners {
80
80
  this._target.addEventListener(type, callback, options);
81
81
  }
82
82
  _removeEventListener(type, callback, options) {
83
- const useCapture = options?.capture ?? false;
83
+ const useCapture = options.capture ?? false;
84
84
  const listenerPhase = useCapture
85
85
  ? EventListenerPhases.Capture
86
86
  : EventListenerPhases.Bubble;
@@ -122,7 +122,9 @@ class TargetEventListeners {
122
122
  });
123
123
  }
124
124
  _unregisterAllEvents() {
125
- Array.from(this._eventListeners.entries()).forEach(([type, listenersMap]) => this._unregisterAllListeners(type, listenersMap));
125
+ Array.from(this._eventListeners.entries()).forEach(([type, listenersMap]) => {
126
+ this._unregisterAllListeners(type, listenersMap);
127
+ });
126
128
  }
127
129
  }
128
130
  export { TargetEventListeners as default, TargetEventListeners };
@@ -1,3 +1,3 @@
1
- import { ImageVolumeProps } from '../types';
1
+ import type { ImageVolumeProps } from '../types';
2
2
  declare function generateVolumePropsFromImageIds(imageIds: string[], volumeId: string): ImageVolumeProps;
3
3
  export { generateVolumePropsFromImageIds };
@@ -1,27 +1,12 @@
1
1
  import { vec3 } from 'gl-matrix';
2
- import { canRenderFloatTextures, getConfiguration, getShouldUseSharedArrayBuffer, } from '../init';
3
- import createFloat32SharedArray from './createFloat32SharedArray';
4
- import createInt16SharedArray from './createInt16SharedArray';
5
- import createUint16SharedArray from './createUInt16SharedArray';
6
- import createUint8SharedArray from './createUint8SharedArray';
7
- import getScalingParameters from './getScalingParameters';
8
2
  import makeVolumeMetadata from './makeVolumeMetadata';
9
3
  import sortImageIdsAndGetSpacing from './sortImageIdsAndGetSpacing';
4
+ import getScalingParameters from './getScalingParameters';
10
5
  import { hasFloatScalingParameters } from './hasFloatScalingParameters';
11
- import cache from '../cache';
12
- import { Events } from '../enums';
6
+ import { canRenderFloatTextures } from '../init';
13
7
  function generateVolumePropsFromImageIds(imageIds, volumeId) {
14
- const { useNorm16Texture, preferSizeOverAccuracy } = getConfiguration().rendering;
15
- const use16BitDataType = useNorm16Texture || preferSizeOverAccuracy;
16
8
  const volumeMetadata = makeVolumeMetadata(imageIds);
17
- const imageIdIndex = Math.floor(imageIds.length / 2);
18
- const imageId = imageIds[imageIdIndex];
19
- const scalingParameters = getScalingParameters(imageId);
20
- const hasNegativeRescale = scalingParameters.rescaleIntercept < 0 ||
21
- scalingParameters.rescaleSlope < 0;
22
- const floatAfterScale = hasFloatScalingParameters(scalingParameters);
23
- const canRenderFloat = canRenderFloatTextures();
24
- const { BitsAllocated, PixelRepresentation, PhotometricInterpretation, ImageOrientationPatient, PixelSpacing, Columns, Rows, } = volumeMetadata;
9
+ const { ImageOrientationPatient, PixelSpacing, Columns, Rows } = volumeMetadata;
25
10
  const rowCosineVec = vec3.fromValues(ImageOrientationPatient[0], ImageOrientationPatient[1], ImageOrientationPatient[2]);
26
11
  const colCosineVec = vec3.fromValues(ImageOrientationPatient[3], ImageOrientationPatient[4], ImageOrientationPatient[5]);
27
12
  const scanAxisNormal = vec3.create();
@@ -35,84 +20,52 @@ function generateVolumePropsFromImageIds(imageIds, volumeId) {
35
20
  ...colCosineVec,
36
21
  ...scanAxisNormal,
37
22
  ];
38
- const signed = PixelRepresentation === 1;
39
- const numComponents = PhotometricInterpretation === 'RGB' ? 3 : 1;
40
- const useSharedArrayBuffer = getShouldUseSharedArrayBuffer();
41
- const length = dimensions[0] * dimensions[1] * dimensions[2];
42
- const handleCache = (sizeInBytes) => {
43
- if (!cache.isCacheable(sizeInBytes)) {
44
- throw new Error(Events.CACHE_SIZE_EXCEEDED);
45
- }
46
- cache.decacheIfNecessaryUntilBytesAvailable(sizeInBytes);
23
+ return {
24
+ dimensions,
25
+ spacing,
26
+ origin,
27
+ dataType: _determineDataType(sortedImageIds, volumeMetadata),
28
+ direction,
29
+ metadata: volumeMetadata,
30
+ imageIds: sortedImageIds,
31
+ volumeId,
32
+ voxelManager: null,
33
+ numberOfComponents: volumeMetadata.PhotometricInterpretation === 'RGB' ? 3 : 1,
47
34
  };
48
- let scalarData, sizeInBytes;
35
+ }
36
+ function _determineDataType(imageIds, volumeMetadata) {
37
+ const { BitsAllocated, PixelRepresentation, PhotometricInterpretation } = volumeMetadata;
38
+ const signed = PixelRepresentation === 1;
39
+ const imageIdIndex = Math.floor(imageIds.length / 2);
40
+ const imageId = imageIds[imageIdIndex];
41
+ const scalingParameters = getScalingParameters(imageId);
42
+ const hasNegativeRescale = scalingParameters.rescaleIntercept < 0 ||
43
+ scalingParameters.rescaleSlope < 0;
44
+ const floatAfterScale = hasFloatScalingParameters(scalingParameters);
45
+ const canRenderFloat = canRenderFloatTextures();
49
46
  switch (BitsAllocated) {
50
47
  case 8:
51
48
  if (signed) {
52
49
  throw new Error('8 Bit signed images are not yet supported by this plugin.');
53
50
  }
54
- sizeInBytes = length * numComponents;
55
- handleCache(sizeInBytes);
56
- scalarData = useSharedArrayBuffer
57
- ? createUint8SharedArray(length * numComponents)
58
- : new Uint8Array(length * numComponents);
59
- break;
51
+ return 'Uint8Array';
60
52
  case 16:
61
- if (!use16BitDataType || (canRenderFloat && floatAfterScale)) {
62
- sizeInBytes = length * 4;
63
- scalarData = useSharedArrayBuffer
64
- ? createFloat32SharedArray(length)
65
- : new Float32Array(length);
66
- break;
53
+ if (canRenderFloat && floatAfterScale) {
54
+ return 'Float32Array';
67
55
  }
68
- sizeInBytes = length * 2;
69
56
  if (signed || hasNegativeRescale) {
70
- handleCache(sizeInBytes);
71
- scalarData = useSharedArrayBuffer
72
- ? createInt16SharedArray(length)
73
- : new Int16Array(length);
74
- break;
57
+ return 'Int16Array';
75
58
  }
76
59
  if (!signed && !hasNegativeRescale) {
77
- handleCache(sizeInBytes);
78
- scalarData = useSharedArrayBuffer
79
- ? createUint16SharedArray(length)
80
- : new Uint16Array(length);
81
- break;
60
+ return 'Uint16Array';
82
61
  }
83
- sizeInBytes = length * 4;
84
- handleCache(sizeInBytes);
85
- scalarData = useSharedArrayBuffer
86
- ? createFloat32SharedArray(length)
87
- : new Float32Array(length);
88
- break;
62
+ return 'Float32Array';
89
63
  case 24:
90
- sizeInBytes = length * numComponents;
91
- handleCache(sizeInBytes);
92
- scalarData = useSharedArrayBuffer
93
- ? createUint8SharedArray(length * numComponents)
94
- : new Uint8Array(length * numComponents);
95
- break;
64
+ return 'Uint8Array';
96
65
  case 32:
97
- sizeInBytes = length * 4;
98
- handleCache(sizeInBytes);
99
- scalarData = useSharedArrayBuffer
100
- ? createFloat32SharedArray(length)
101
- : new Float32Array(length);
102
- break;
66
+ return 'Float32Array';
103
67
  default:
104
68
  throw new Error(`Bits allocated of ${BitsAllocated} is not defined to generate scalarData for the volume.`);
105
69
  }
106
- return {
107
- dimensions,
108
- spacing,
109
- origin,
110
- direction,
111
- scalarData,
112
- sizeInBytes,
113
- metadata: volumeMetadata,
114
- imageIds: sortedImageIds,
115
- volumeId,
116
- };
117
70
  }
118
71
  export { generateVolumePropsFromImageIds };
@@ -1,6 +1,13 @@
1
1
  declare const metadataProvider: {
2
- add: (imageId: string, payload: any) => void;
3
- get: (type: string, imageId: string) => any;
2
+ add: (imageId: string, payload: {
3
+ metadata: unknown;
4
+ type: string;
5
+ }) => void;
6
+ addRaw: (imageId: string, payload: {
7
+ metadata: unknown;
8
+ type: string;
9
+ }) => void;
10
+ get: (type: string, imageId: string) => unknown;
4
11
  clear: () => void;
5
12
  };
6
13
  export default metadataProvider;
@@ -2,11 +2,17 @@ import { addProvider } from '../metaData';
2
2
  let state = {};
3
3
  const metadataProvider = {
4
4
  add: (imageId, payload) => {
5
+ metadataProvider.addRaw(imageId, {
6
+ ...payload,
7
+ metadata: structuredClone(payload.metadata),
8
+ });
9
+ },
10
+ addRaw: (imageId, payload) => {
5
11
  const type = payload.type;
6
12
  if (!state[imageId]) {
7
13
  state[imageId] = {};
8
14
  }
9
- state[imageId][type] = JSON.parse(JSON.stringify(payload.metadata));
15
+ state[imageId][type] = payload.metadata;
10
16
  },
11
17
  get: (type, imageId) => {
12
18
  return state[imageId]?.[type];
@@ -1,9 +1,8 @@
1
- import { PixelDataTypedArray, PixelDataTypedArrayString } from '../types';
1
+ import type { PixelDataTypedArray, PixelDataTypedArrayString } from '../types';
2
2
  declare function getBufferConfiguration(targetBufferType: PixelDataTypedArrayString, length: number, options?: {
3
- use16BitTexture?: boolean;
4
3
  isVolumeBuffer?: boolean;
5
4
  }): {
6
5
  numBytes: number;
7
- TypedArrayConstructor: new (length: number | SharedArrayBuffer) => PixelDataTypedArray;
6
+ TypedArrayConstructor: new (length: number) => PixelDataTypedArray;
8
7
  };
9
8
  export { getBufferConfiguration };
@@ -1,5 +1,5 @@
1
1
  function getBufferConfiguration(targetBufferType, length, options = {}) {
2
- const { use16BitTexture = false, isVolumeBuffer = false } = options;
2
+ const { isVolumeBuffer = false } = options;
3
3
  switch (targetBufferType) {
4
4
  case 'Float32Array':
5
5
  return { numBytes: length * 4, TypedArrayConstructor: Float32Array };
@@ -10,26 +10,16 @@ function getBufferConfiguration(targetBufferType, length, options = {}) {
10
10
  return { numBytes: length * 2, TypedArrayConstructor: Uint16Array };
11
11
  }
12
12
  else {
13
- if (use16BitTexture) {
14
- return { numBytes: length * 2, TypedArrayConstructor: Uint16Array };
15
- }
16
- else {
17
- console.warn('Uint16Array is not supported for volume rendering, switching back to Float32Array');
18
- return { numBytes: length * 4, TypedArrayConstructor: Float32Array };
19
- }
13
+ console.warn('Uint16Array is not supported for volume rendering, switching back to Float32Array');
14
+ return { numBytes: length * 4, TypedArrayConstructor: Float32Array };
20
15
  }
21
16
  case 'Int16Array':
22
17
  if (!isVolumeBuffer) {
23
18
  return { numBytes: length * 2, TypedArrayConstructor: Int16Array };
24
19
  }
25
20
  else {
26
- if (use16BitTexture) {
27
- return { numBytes: length * 2, TypedArrayConstructor: Int16Array };
28
- }
29
- else {
30
- console.warn('Int16Array is not supported for volume rendering, switching back to Float32Array');
31
- return { numBytes: length * 4, TypedArrayConstructor: Float32Array };
32
- }
21
+ console.warn('Int16Array is not supported for volume rendering, switching back to Float32Array');
22
+ return { numBytes: length * 4, TypedArrayConstructor: Float32Array };
33
23
  }
34
24
  default:
35
25
  if (targetBufferType) {
@@ -7,7 +7,7 @@ export default function getClosestImageId(imageVolume, worldPos, viewPlaneNormal
7
7
  return;
8
8
  }
9
9
  const { direction, imageIds } = imageVolume;
10
- if (!imageIds || !imageIds.length) {
10
+ if (!imageIds.length) {
11
11
  return;
12
12
  }
13
13
  const kVector = direction.slice(6, 9);
@@ -1,4 +1,4 @@
1
- import { IStackViewport, Point3 } from '../types';
1
+ import type { IStackViewport, Point3 } from '../types';
2
2
  export default function getClosestStackImageIndexForPoint(point: Point3, viewport: IStackViewport): number | null;
3
3
  export declare function calculateMinimalDistanceForStackViewport(point: Point3, viewport: IStackViewport): {
4
4
  distance: number;
@@ -1,10 +1,9 @@
1
- import { mat4 } from 'gl-matrix';
2
- import { IVolumeViewport } from '../types';
1
+ import type { IVolumeViewport } from '../types';
3
2
  declare function getCurrentVolumeViewportSlice(viewport: IVolumeViewport): {
4
3
  width: number;
5
4
  height: number;
6
- scalarData: any;
7
- sliceToIndexMatrix: mat4;
8
- indexToSliceMatrix: mat4;
5
+ scalarData: import("../types").PixelDataTypedArray;
6
+ sliceToIndexMatrix: import("gl-matrix").mat4;
7
+ indexToSliceMatrix: import("gl-matrix").mat4;
9
8
  };
10
9
  export { getCurrentVolumeViewportSlice as default, getCurrentVolumeViewportSlice, };
@@ -1,9 +1,8 @@
1
- import { glMatrix, mat4, vec3 } from 'gl-matrix';
2
- import { transformIJKToCanvas } from './transformIJKToCanvas';
1
+ import { glMatrix, vec3 } from 'gl-matrix';
3
2
  import { transformCanvasToIJK } from './transformCanvasToIJK';
4
3
  function getCurrentVolumeViewportSlice(viewport) {
5
- const { dimensions, scalarData } = viewport.getImageData();
6
4
  const { width: canvasWidth, height: canvasHeight } = viewport.getCanvas();
5
+ const { sliceToIndexMatrix, indexToSliceMatrix } = viewport.getSliceViewInfo();
7
6
  const ijkOriginPoint = transformCanvasToIJK(viewport, [0, 0]);
8
7
  const ijkRowPoint = transformCanvasToIJK(viewport, [canvasWidth - 1, 0]);
9
8
  const ijkColPoint = transformCanvasToIJK(viewport, [0, canvasHeight - 1]);
@@ -18,62 +17,13 @@ function getCurrentVolumeViewportSlice(viewport) {
18
17
  if (!glMatrix.equals(1, maxIJKRowVec) || !glMatrix.equals(1, maxIJKColVec)) {
19
18
  throw new Error('Livewire is not available for rotate/oblique viewports');
20
19
  }
21
- const [sx, sy, sz] = dimensions;
22
- const ijkCorners = [
23
- [0, 0, 0],
24
- [sx - 1, 0, 0],
25
- [0, sy - 1, 0],
26
- [sx - 1, sy - 1, 0],
27
- [0, 0, sz - 1],
28
- [sx - 1, 0, sz - 1],
29
- [0, sy - 1, sz - 1],
30
- [sx - 1, sy - 1, sz - 1],
31
- ];
32
- const canvasCorners = ijkCorners.map((ijkCorner) => transformIJKToCanvas(viewport, ijkCorner));
33
- const canvasAABB = canvasCorners.reduce((aabb, canvasPoint) => {
34
- aabb.minX = Math.min(aabb.minX, canvasPoint[0]);
35
- aabb.minY = Math.min(aabb.minY, canvasPoint[1]);
36
- aabb.maxX = Math.max(aabb.maxX, canvasPoint[0]);
37
- aabb.maxY = Math.max(aabb.maxY, canvasPoint[1]);
38
- return aabb;
39
- }, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });
40
- const ijkTopLeft = transformCanvasToIJK(viewport, [
41
- canvasAABB.minX,
42
- canvasAABB.minY,
43
- ]);
44
- const ijkBottomRight = transformCanvasToIJK(viewport, [
45
- canvasAABB.maxX,
46
- canvasAABB.maxY,
47
- ]);
48
- const ijkDiagonal = vec3.sub(vec3.create(), ijkBottomRight, ijkTopLeft);
49
- const sliceToIndexMatrix = mat4.fromValues(ijkRowVec[0], ijkRowVec[1], ijkRowVec[2], 0, ijkColVec[0], ijkColVec[1], ijkColVec[2], 0, ijkSliceVec[0], ijkSliceVec[1], ijkSliceVec[2], 0, ijkTopLeft[0], ijkTopLeft[1], ijkTopLeft[2], 1);
50
- const indexToSliceMatrix = mat4.invert(mat4.create(), sliceToIndexMatrix);
51
- const sliceWidth = vec3.dot(ijkRowVec, ijkDiagonal) + 1;
52
- const sliceHeight = vec3.dot(ijkColVec, ijkDiagonal) + 1;
53
- const TypedArray = scalarData.constructor;
54
- const sliceData = new TypedArray(sliceWidth * sliceHeight);
55
- const pixelsPerSlice = dimensions[0] * dimensions[1];
56
- const ijkPixelRow = vec3.clone(ijkTopLeft);
57
- const ijkPixelCol = vec3.create();
58
- let slicePixelIndex = 0;
59
- for (let y = 0; y < sliceHeight; y++) {
60
- vec3.copy(ijkPixelCol, ijkPixelRow);
61
- for (let x = 0; x < sliceWidth; x++) {
62
- const volumePixelIndex = ijkPixelCol[2] * pixelsPerSlice +
63
- ijkPixelCol[1] * dimensions[0] +
64
- ijkPixelCol[0];
65
- if (volumePixelIndex < scalarData.length) {
66
- sliceData[slicePixelIndex] = scalarData[volumePixelIndex];
67
- }
68
- slicePixelIndex++;
69
- vec3.add(ijkPixelCol, ijkPixelCol, ijkRowVec);
70
- }
71
- vec3.add(ijkPixelRow, ijkPixelRow, ijkColVec);
72
- }
20
+ const { voxelManager } = viewport.getImageData();
21
+ const sliceViewInfo = viewport.getSliceViewInfo();
22
+ const scalarData = voxelManager.getSliceData(sliceViewInfo);
73
23
  return {
74
- width: sliceWidth,
75
- height: sliceHeight,
76
- scalarData: sliceData,
24
+ width: sliceViewInfo.width,
25
+ height: sliceViewInfo.height,
26
+ scalarData,
77
27
  sliceToIndexMatrix,
78
28
  indexToSliceMatrix,
79
29
  };
@@ -1,3 +1,3 @@
1
- import { Types } from '..';
1
+ import type { Types } from '..';
2
2
  declare function getImageLegacy(element: HTMLDivElement): Types.IImage | undefined;
3
3
  export default getImageLegacy;
@@ -1,3 +1,3 @@
1
- import { ImageSliceData, IVolumeViewport } from '../types';
1
+ import type { ImageSliceData, IVolumeViewport } from '../types';
2
2
  declare function getImageSliceDataForVolumeViewport(viewport: IVolumeViewport): ImageSliceData;
3
3
  export default getImageSliceDataForVolumeViewport;
@@ -1,4 +1,5 @@
1
- export default function getMinMax(storedPixelData: number[]): {
1
+ import type { PixelDataTypedArray } from '../types/PixelDataTypedArray';
2
+ export default function getMinMax(storedPixelData: PixelDataTypedArray): {
2
3
  min: number;
3
4
  max: number;
4
5
  };
@@ -1,2 +1,2 @@
1
- import { ScalingParameters } from '../types';
1
+ import type { ScalingParameters } from '../types';
2
2
  export default function getScalingParameters(imageId: string): ScalingParameters;
@@ -1,5 +1,5 @@
1
- import { mat3 } from 'gl-matrix';
2
- import { IImageVolume, Point3 } from '../types';
1
+ import type { mat3 } from 'gl-matrix';
2
+ import type { IImageVolume, Point3 } from '../types';
3
3
  export default function getSpacingInNormalDirection(imageVolume: IImageVolume | {
4
4
  direction: mat3;
5
5
  spacing: Point3;
@@ -1,4 +1,4 @@
1
- import { ICamera, IImageVolume, IVolumeViewport } from '../types';
1
+ import type { ICamera, IImageVolume, IVolumeViewport } from '../types';
2
2
  export default function getTargetVolumeAndSpacingInNormalDir(viewport: IVolumeViewport, camera: ICamera, targetId?: string, useSlabThickness?: boolean): {
3
3
  imageVolume: IImageVolume;
4
4
  spacingInNormalDirection: number;
@@ -9,7 +9,7 @@ const isPrimaryVolume = (volume) => !!getVolumeLoaderSchemes().find((scheme) =>
9
9
  export default function getTargetVolumeAndSpacingInNormalDir(viewport, camera, targetId, useSlabThickness = false) {
10
10
  const { viewPlaneNormal } = camera;
11
11
  const volumeActors = viewport.getActors();
12
- if (!volumeActors || !volumeActors.length) {
12
+ if (!volumeActors.length) {
13
13
  return {
14
14
  spacingInNormalDirection: null,
15
15
  imageVolume: null,
@@ -61,7 +61,7 @@ export default function getTargetVolumeAndSpacingInNormalDir(viewport, camera, t
61
61
  function getSpacingInNormal(imageVolume, viewPlaneNormal, viewport, useSlabThickness = false) {
62
62
  const { slabThickness } = viewport.getProperties();
63
63
  let spacingInNormalDirection = slabThickness;
64
- if (!slabThickness || useSlabThickness === false) {
64
+ if (!slabThickness || !useSlabThickness) {
65
65
  spacingInNormalDirection = getSpacingInNormalDirection(imageVolume, viewPlaneNormal);
66
66
  }
67
67
  return spacingInNormalDirection;
@@ -1,2 +1,2 @@
1
- import { IStackViewport, IVolumeViewport, Point3 } from '../types';
1
+ import type { IStackViewport, IVolumeViewport, Point3 } from '../types';
2
2
  export default function getViewportImageCornersInWorld(viewport: IStackViewport | IVolumeViewport): Point3[];
@@ -1,3 +1,3 @@
1
- import { IViewport } from '../types';
1
+ import type { IViewport } from '../types';
2
2
  declare function getViewportImageIds(viewport: IViewport): string[];
3
3
  export default getViewportImageIds;
@@ -1,3 +1,7 @@
1
- import type { IViewport } from '../types';
2
- declare function getViewportModality(viewport: IViewport, volumeId?: string): string;
3
- export { getViewportModality as default, getViewportModality };
1
+ import type { IViewport } from '../types/IViewport';
2
+ declare function _getViewportModality(viewport: IViewport, volumeId?: string, getVolume?: (volumeId: string) => {
3
+ metadata: {
4
+ Modality: string;
5
+ };
6
+ } | undefined): string;
7
+ export { _getViewportModality };
@@ -1,15 +1,18 @@
1
- import cache from '../cache';
2
- function getViewportModality(viewport, volumeId) {
1
+ function _getViewportModality(viewport, volumeId, getVolume) {
2
+ if (!getVolume) {
3
+ throw new Error('getVolume is required, use the utilities export instead ');
4
+ }
3
5
  if (viewport.modality) {
4
6
  return viewport.modality;
5
7
  }
6
8
  if (viewport.setVolumes) {
7
- volumeId = volumeId ?? viewport.getDefaultActor()?.uid;
8
- if (!volumeId) {
9
+ volumeId = volumeId ?? viewport.getDefaultActor().uid;
10
+ if (!volumeId || !getVolume) {
9
11
  return;
10
12
  }
11
- return cache.getVolume(volumeId)?.metadata.Modality;
13
+ const volume = getVolume(volumeId);
14
+ return volume.metadata.Modality;
12
15
  }
13
16
  throw new Error('Invalid viewport type');
14
17
  }
15
- export { getViewportModality as default, getViewportModality };
18
+ export { _getViewportModality };