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

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 (341) hide show
  1. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +23 -13
  2. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +52 -50
  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 +8 -10
  7. package/dist/esm/RenderingEngine/RenderingEngine.js +20 -18
  8. package/dist/esm/RenderingEngine/StackViewport.d.ts +28 -19
  9. package/dist/esm/RenderingEngine/StackViewport.js +81 -58
  10. package/dist/esm/RenderingEngine/VideoViewport.d.ts +19 -28
  11. package/dist/esm/RenderingEngine/VideoViewport.js +61 -24
  12. package/dist/esm/RenderingEngine/Viewport.d.ts +25 -14
  13. package/dist/esm/RenderingEngine/Viewport.js +24 -15
  14. package/dist/esm/RenderingEngine/VolumeViewport.d.ts +21 -9
  15. package/dist/esm/RenderingEngine/VolumeViewport.js +95 -10
  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 +3 -3
  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 +4 -7
  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 +13 -37
  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/helpers/volumeNewImageEventDispatcher.js +4 -4
  84. package/dist/esm/RenderingEngine/renderingEngineCache.d.ts +1 -1
  85. package/dist/esm/RenderingEngine/vtkClasses/vtkSlabCamera.d.ts +4 -2
  86. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLTexture.js +87 -78
  87. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLViewNodeFactory.js +1 -1
  88. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +83 -42
  89. package/dist/esm/Settings.d.ts +1 -1
  90. package/dist/esm/cache/cache.d.ts +15 -19
  91. package/dist/esm/cache/cache.js +112 -57
  92. package/dist/esm/cache/classes/Contour.d.ts +4 -4
  93. package/dist/esm/cache/classes/ContourSet.d.ts +3 -3
  94. package/dist/esm/cache/classes/ImageVolume.d.ts +19 -19
  95. package/dist/esm/cache/classes/ImageVolume.js +49 -254
  96. package/dist/esm/cache/classes/Surface.d.ts +3 -3
  97. package/dist/esm/cache/index.d.ts +1 -2
  98. package/dist/esm/cache/index.js +1 -2
  99. package/dist/esm/constants/cpuColormaps.d.ts +1 -1
  100. package/dist/esm/constants/viewportPresets.d.ts +1 -1
  101. package/dist/esm/enums/GenerateImageType.d.ts +5 -0
  102. package/dist/esm/enums/GenerateImageType.js +6 -0
  103. package/dist/esm/enums/MetadataModules.d.ts +2 -1
  104. package/dist/esm/enums/MetadataModules.js +1 -0
  105. package/dist/esm/enums/ViewportType.d.ts +2 -1
  106. package/dist/esm/enums/ViewportType.js +1 -0
  107. package/dist/esm/enums/index.d.ts +2 -2
  108. package/dist/esm/enums/index.js +2 -2
  109. package/dist/esm/eventTarget.js +2 -3
  110. package/dist/esm/getEnabledElement.d.ts +1 -1
  111. package/dist/esm/global.d.ts +0 -1
  112. package/dist/esm/index.d.ts +9 -5
  113. package/dist/esm/index.js +8 -4
  114. package/dist/esm/init.d.ts +5 -8
  115. package/dist/esm/init.js +22 -83
  116. package/dist/esm/loaders/ProgressiveRetrieveImages.d.ts +5 -5
  117. package/dist/esm/loaders/ProgressiveRetrieveImages.js +7 -3
  118. package/dist/esm/loaders/configuration/interleavedRetrieve.d.ts +1 -1
  119. package/dist/esm/loaders/fillNearbyFrames.d.ts +2 -2
  120. package/dist/esm/loaders/geometryLoader.d.ts +3 -3
  121. package/dist/esm/loaders/geometryLoader.js +1 -1
  122. package/dist/esm/loaders/imageLoader.d.ts +12 -17
  123. package/dist/esm/loaders/imageLoader.js +179 -96
  124. package/dist/esm/loaders/utils/contourSet/createContourSet.d.ts +1 -1
  125. package/dist/esm/loaders/utils/contourSet/validateContourSet.d.ts +1 -1
  126. package/dist/esm/loaders/utils/surface/createSurface.d.ts +1 -1
  127. package/dist/esm/loaders/utils/surface/validateSurface.d.ts +1 -1
  128. package/dist/esm/loaders/volumeLoader.d.ts +15 -22
  129. package/dist/esm/loaders/volumeLoader.js +88 -207
  130. package/dist/esm/metaData.d.ts +2 -4
  131. package/dist/esm/requestPool/requestPoolManager.d.ts +7 -9
  132. package/dist/esm/requestPool/requestPoolManager.js +1 -1
  133. package/dist/esm/types/AABB2.d.ts +2 -2
  134. package/dist/esm/types/AABB3.d.ts +2 -2
  135. package/dist/esm/types/ActorSliceRange.d.ts +5 -5
  136. package/dist/esm/types/BoundsIJK.d.ts +1 -1
  137. package/dist/esm/types/BoundsLPS.d.ts +1 -1
  138. package/dist/esm/types/CPUFallbackColormap.d.ts +3 -3
  139. package/dist/esm/types/CPUFallbackColormapData.d.ts +4 -4
  140. package/dist/esm/types/CPUFallbackColormapsData.d.ts +3 -5
  141. package/dist/esm/types/CPUFallbackEnabledElement.d.ts +2 -37
  142. package/dist/esm/types/CPUFallbackLUT.d.ts +4 -3
  143. package/dist/esm/types/CPUFallbackLookupTable.d.ts +2 -2
  144. package/dist/esm/types/CPUFallbackRenderingTools.d.ts +5 -5
  145. package/dist/esm/types/CPUFallbackTransform.d.ts +3 -3
  146. package/dist/esm/types/CPUFallbackViewport.d.ts +6 -6
  147. package/dist/esm/types/CPUFallbackViewportDisplayedArea.d.ts +3 -3
  148. package/dist/esm/types/CPUIImageData.d.ts +17 -9
  149. package/dist/esm/types/Color.d.ts +1 -1
  150. package/dist/esm/types/Colormap.d.ts +7 -7
  151. package/dist/esm/types/ContourData.d.ts +6 -6
  152. package/dist/esm/types/Cornerstone3DConfig.d.ts +7 -7
  153. package/dist/esm/types/CustomEventType.d.ts +2 -2
  154. package/dist/esm/types/EventTypes.d.ts +55 -55
  155. package/dist/esm/types/FlipDirection.d.ts +3 -3
  156. package/dist/esm/types/IActor.d.ts +3 -3
  157. package/dist/esm/types/ICache.d.ts +4 -4
  158. package/dist/esm/types/ICachedGeometry.d.ts +3 -3
  159. package/dist/esm/types/ICachedImage.d.ts +3 -2
  160. package/dist/esm/types/ICachedVolume.d.ts +3 -2
  161. package/dist/esm/types/ICamera.d.ts +3 -3
  162. package/dist/esm/types/IContour.d.ts +4 -3
  163. package/dist/esm/types/IContourSet.d.ts +5 -2
  164. package/dist/esm/types/IDynamicImageVolume.d.ts +3 -3
  165. package/dist/esm/types/IEnabledElement.d.ts +2 -2
  166. package/dist/esm/types/IGeometry.d.ts +4 -4
  167. package/dist/esm/types/IImage.d.ts +48 -11
  168. package/dist/esm/types/IImageCalibration.d.ts +2 -2
  169. package/dist/esm/types/IImageData.d.ts +11 -4
  170. package/dist/esm/types/IImageFrame.d.ts +42 -0
  171. package/dist/esm/types/IImageFrame.js +1 -0
  172. package/dist/esm/types/IImageVolume.d.ts +17 -14
  173. package/dist/esm/types/ILoadObject.d.ts +3 -3
  174. package/dist/esm/types/IPointsManager.d.ts +23 -0
  175. package/dist/esm/types/IPointsManager.js +1 -0
  176. package/dist/esm/types/IRLEVoxelMap.d.ts +16 -0
  177. package/dist/esm/types/IRLEVoxelMap.js +1 -0
  178. package/dist/esm/types/IRegisterImageLoader.d.ts +2 -2
  179. package/dist/esm/types/IRenderingEngine.d.ts +11 -12
  180. package/dist/esm/types/IRetrieveConfiguration.d.ts +6 -6
  181. package/dist/esm/types/IStackInput.d.ts +1 -1
  182. package/dist/esm/types/IStackViewport.d.ts +69 -2
  183. package/dist/esm/types/IStreamingImageVolume.d.ts +3 -4
  184. package/dist/esm/types/IStreamingVolumeProperties.d.ts +5 -5
  185. package/dist/esm/types/ISurface.d.ts +1 -1
  186. package/dist/esm/types/ITransferFunctionNode.d.ts +9 -0
  187. package/dist/esm/types/ITransferFunctionNode.js +1 -0
  188. package/dist/esm/types/IVideoViewport.d.ts +40 -2
  189. package/dist/esm/types/IViewport.d.ts +62 -41
  190. package/dist/esm/types/IVolume.d.ts +2 -2
  191. package/dist/esm/types/IVolumeInput.d.ts +2 -2
  192. package/dist/esm/types/IVolumeViewport.d.ts +17 -16
  193. package/dist/esm/types/IVoxelManager.d.ts +54 -0
  194. package/dist/esm/types/IVoxelManager.js +1 -0
  195. package/dist/esm/types/IWSIViewport.d.ts +16 -0
  196. package/dist/esm/types/IWSIViewport.js +1 -0
  197. package/dist/esm/types/ImageLoadListener.d.ts +2 -2
  198. package/dist/esm/types/ImageLoaderFn.d.ts +3 -3
  199. package/dist/esm/types/ImagePixelModule.d.ts +1 -1
  200. package/dist/esm/types/ImagePlaneModule.d.ts +2 -2
  201. package/dist/esm/types/ImageSliceData.d.ts +3 -3
  202. package/dist/esm/types/ImageVolumeProps.d.ts +4 -4
  203. package/dist/esm/types/Mat3.d.ts +1 -1
  204. package/dist/esm/types/Metadata.d.ts +6 -6
  205. package/dist/esm/types/MetadataModuleTypes.d.ts +65 -0
  206. package/dist/esm/types/MetadataModuleTypes.js +1 -0
  207. package/dist/esm/types/OrientationVectors.d.ts +4 -4
  208. package/dist/esm/types/Plane.d.ts +1 -1
  209. package/dist/esm/types/Point2.d.ts +1 -1
  210. package/dist/esm/types/Point3.d.ts +3 -3
  211. package/dist/esm/types/Point4.d.ts +1 -1
  212. package/dist/esm/types/RGB.d.ts +1 -1
  213. package/dist/esm/types/ScalingParameters.d.ts +7 -7
  214. package/dist/esm/types/StackViewportProperties.d.ts +3 -3
  215. package/dist/esm/types/SurfaceData.d.ts +5 -5
  216. package/dist/esm/types/TransformMatrix2D.d.ts +1 -1
  217. package/dist/esm/types/VideoViewportProperties.d.ts +3 -3
  218. package/dist/esm/types/VideoViewportTypes.d.ts +7 -7
  219. package/dist/esm/types/ViewportInputOptions.d.ts +7 -7
  220. package/dist/esm/types/ViewportPreset.d.ts +1 -1
  221. package/dist/esm/types/ViewportProperties.d.ts +5 -5
  222. package/dist/esm/types/VolumeLoaderFn.d.ts +4 -3
  223. package/dist/esm/types/VolumeProps.d.ts +10 -5
  224. package/dist/esm/types/VolumeViewportProperties.d.ts +3 -3
  225. package/dist/esm/types/WSIViewportProperties.d.ts +3 -0
  226. package/dist/esm/types/WSIViewportProperties.js +1 -0
  227. package/dist/esm/types/WSIViewportTypes.d.ts +13 -0
  228. package/dist/esm/types/WSIViewportTypes.js +1 -0
  229. package/dist/esm/types/displayArea.d.ts +4 -4
  230. package/dist/esm/types/index.d.ts +16 -8
  231. package/dist/esm/types/voi.d.ts +4 -4
  232. package/dist/esm/utilities/PointsManager.d.ts +8 -10
  233. package/dist/esm/utilities/ProgressiveIterator.d.ts +1 -1
  234. package/dist/esm/utilities/ProgressiveIterator.js +3 -1
  235. package/dist/esm/utilities/RLEVoxelMap.d.ts +3 -8
  236. package/dist/esm/utilities/RLEVoxelMap.js +19 -19
  237. package/dist/esm/utilities/VoxelManager.d.ts +82 -20
  238. package/dist/esm/utilities/VoxelManager.js +466 -60
  239. package/dist/esm/utilities/actorCheck.d.ts +1 -1
  240. package/dist/esm/utilities/applyPreset.d.ts +2 -2
  241. package/dist/esm/utilities/calculateViewportsSpatialRegistration.d.ts +1 -1
  242. package/dist/esm/utilities/calculateViewportsSpatialRegistration.js +5 -5
  243. package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.d.ts +1 -1
  244. package/dist/esm/utilities/colormap.d.ts +1 -1
  245. package/dist/esm/utilities/convertStackToVolumeViewport.d.ts +2 -2
  246. package/dist/esm/utilities/convertStackToVolumeViewport.js +4 -4
  247. package/dist/esm/utilities/convertVolumeToStackViewport.d.ts +1 -1
  248. package/dist/esm/utilities/convertVolumeToStackViewport.js +3 -2
  249. package/dist/esm/utilities/createLinearRGBTransferFunction.d.ts +1 -1
  250. package/dist/esm/utilities/createLinearRGBTransferFunction.js +1 -3
  251. package/dist/esm/utilities/createSigmoidRGBTransferFunction.d.ts +2 -3
  252. package/dist/esm/utilities/createSigmoidRGBTransferFunction.js +8 -7
  253. package/dist/esm/utilities/decimate.d.ts +1 -1
  254. package/dist/esm/utilities/eventListener/TargetEventListeners.js +5 -3
  255. package/dist/esm/utilities/generateVolumePropsFromImageIds.d.ts +1 -1
  256. package/dist/esm/utilities/generateVolumePropsFromImageIds.js +33 -80
  257. package/dist/esm/utilities/genericMetadataProvider.d.ts +9 -2
  258. package/dist/esm/utilities/genericMetadataProvider.js +7 -1
  259. package/dist/esm/utilities/getBufferConfiguration.d.ts +2 -3
  260. package/dist/esm/utilities/getBufferConfiguration.js +5 -15
  261. package/dist/esm/utilities/getClosestImageId.js +1 -1
  262. package/dist/esm/utilities/getClosestStackImageIndexForPoint.d.ts +1 -1
  263. package/dist/esm/utilities/getClosestStackImageIndexForPoint.js +2 -2
  264. package/dist/esm/utilities/getCurrentVolumeViewportSlice.d.ts +4 -5
  265. package/dist/esm/utilities/getCurrentVolumeViewportSlice.js +8 -58
  266. package/dist/esm/utilities/getImageLegacy.d.ts +1 -1
  267. package/dist/esm/utilities/getImageLegacy.js +1 -1
  268. package/dist/esm/utilities/getImageSliceDataForVolumeViewport.d.ts +1 -1
  269. package/dist/esm/utilities/getMinMax.d.ts +2 -1
  270. package/dist/esm/utilities/getScalingParameters.d.ts +1 -1
  271. package/dist/esm/utilities/getScalingParameters.js +4 -4
  272. package/dist/esm/utilities/getSpacingInNormalDirection.d.ts +2 -2
  273. package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.d.ts +1 -1
  274. package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.js +2 -2
  275. package/dist/esm/utilities/getViewportImageCornersInWorld.d.ts +1 -1
  276. package/dist/esm/utilities/getViewportImageIds.d.ts +1 -1
  277. package/dist/esm/utilities/getViewportImageIds.js +1 -1
  278. package/dist/esm/utilities/getViewportModality.d.ts +7 -3
  279. package/dist/esm/utilities/getViewportModality.js +9 -6
  280. package/dist/esm/utilities/getViewportsWithImageURI.d.ts +2 -2
  281. package/dist/esm/utilities/getViewportsWithVolumeId.d.ts +2 -2
  282. package/dist/esm/utilities/getViewportsWithVolumeId.js +3 -7
  283. package/dist/esm/utilities/getVoiFromSigmoidRGBTransferFunction.d.ts +1 -1
  284. package/dist/esm/utilities/getVolumeActorCorners.d.ts +2 -2
  285. package/dist/esm/utilities/getVolumeId.js +2 -2
  286. package/dist/esm/utilities/getVolumeSliceRangeInfo.d.ts +1 -1
  287. package/dist/esm/utilities/getVolumeViewportScrollInfo.d.ts +1 -1
  288. package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.d.ts +2 -2
  289. package/dist/esm/utilities/hasFloatScalingParameters.d.ts +1 -1
  290. package/dist/esm/utilities/imageRetrieveMetadataProvider.d.ts +1 -1
  291. package/dist/esm/utilities/imageToWorldCoords.d.ts +1 -1
  292. package/dist/esm/utilities/imageToWorldCoords.js +2 -2
  293. package/dist/esm/utilities/index.d.ts +3 -8
  294. package/dist/esm/utilities/index.js +4 -8
  295. package/dist/esm/utilities/indexWithinDimensions.d.ts +1 -1
  296. package/dist/esm/utilities/invertRgbTransferFunction.d.ts +2 -1
  297. package/dist/esm/utilities/isEqual.js +6 -1
  298. package/dist/esm/utilities/isPTPrescaledWithSUV.d.ts +1 -1
  299. package/dist/esm/utilities/isPTPrescaledWithSUV.js +1 -1
  300. package/dist/esm/utilities/isValidVolume.js +1 -1
  301. package/dist/esm/utilities/loadImageToCanvas.d.ts +6 -6
  302. package/dist/esm/utilities/loadImageToCanvas.js +1 -1
  303. package/dist/esm/utilities/makeVolumeMetadata.d.ts +2 -2
  304. package/dist/esm/utilities/makeVolumeMetadata.js +5 -5
  305. package/dist/esm/utilities/planar.d.ts +2 -2
  306. package/dist/esm/utilities/renderToCanvasCPU.d.ts +1 -1
  307. package/dist/esm/utilities/renderToCanvasGPU.d.ts +2 -2
  308. package/dist/esm/utilities/renderToCanvasGPU.js +1 -1
  309. package/dist/esm/utilities/scaleRgbTransferFunction.d.ts +2 -1
  310. package/dist/esm/utilities/snapFocalPointToSlice.d.ts +1 -1
  311. package/dist/esm/utilities/sortImageIdsAndGetSpacing.d.ts +5 -5
  312. package/dist/esm/utilities/sortImageIdsAndGetSpacing.js +2 -1
  313. package/dist/esm/utilities/transformCanvasToIJK.d.ts +2 -2
  314. package/dist/esm/utilities/transformIJKToCanvas.d.ts +1 -1
  315. package/dist/esm/utilities/triggerEvent.js +1 -1
  316. package/dist/esm/utilities/updateVTKImageDataWithCornerstoneImage.d.ts +2 -2
  317. package/dist/esm/utilities/updateVTKImageDataWithCornerstoneImage.js +1 -1
  318. package/dist/esm/utilities/uuidv4.js +3 -1
  319. package/dist/esm/utilities/worldToImageCoords.d.ts +1 -1
  320. package/dist/esm/utilities/worldToImageCoords.js +2 -2
  321. package/dist/umd/index.js +1 -1
  322. package/dist/umd/index.js.map +1 -1
  323. package/package.json +6 -6
  324. package/dist/esm/cache/utils/restoreImagesFromBuffer.d.ts +0 -2
  325. package/dist/esm/cache/utils/restoreImagesFromBuffer.js +0 -28
  326. package/dist/esm/enums/SharedArrayBufferModes.d.ts +0 -6
  327. package/dist/esm/enums/SharedArrayBufferModes.js +0 -7
  328. package/dist/esm/utilities/cacheUtils.d.ts +0 -2
  329. package/dist/esm/utilities/cacheUtils.js +0 -86
  330. package/dist/esm/utilities/createFloat32SharedArray.d.ts +0 -2
  331. package/dist/esm/utilities/createFloat32SharedArray.js +0 -27
  332. package/dist/esm/utilities/createInt16SharedArray.d.ts +0 -2
  333. package/dist/esm/utilities/createInt16SharedArray.js +0 -11
  334. package/dist/esm/utilities/createUInt16SharedArray.d.ts +0 -2
  335. package/dist/esm/utilities/createUInt16SharedArray.js +0 -11
  336. package/dist/esm/utilities/createUint8SharedArray.d.ts +0 -2
  337. package/dist/esm/utilities/createUint8SharedArray.js +0 -12
  338. package/dist/esm/utilities/getScalarDataType.d.ts +0 -2
  339. package/dist/esm/utilities/getScalarDataType.js +0 -19
  340. package/dist/esm/utilities/isTypedArray.d.ts +0 -1
  341. package/dist/esm/utilities/isTypedArray.js +0 -11
@@ -1,22 +1,31 @@
1
- import { BlendModes, InterpolationType, OrientationAxis } from '../enums';
1
+ import type { mat4 } from 'gl-matrix';
2
+ import type { BlendModes, InterpolationType, OrientationAxis } from '../enums';
2
3
  import type { FlipDirection, IImageData, IVolumeInput, OrientationVectors, Point2, Point3, VolumeViewportProperties, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewReference, IVolumeViewport } from '../types';
3
- import { VoiModifiedEventDetail } from '../types/EventTypes';
4
+ import type { VoiModifiedEventDetail } from '../types/EventTypes';
4
5
  import type { ViewportInput } from '../types/IViewport';
6
+ import type { TransferFunctionNodes } from '../types/ITransferFunctionNode';
5
7
  import Viewport from './Viewport';
6
8
  declare abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
7
9
  useCPURendering: boolean;
8
- useNativeDataType: boolean;
9
10
  private _FrameOfReferenceUID;
10
- protected initialTransferFunctionNodes: any;
11
+ protected initialTransferFunctionNodes: TransferFunctionNodes;
11
12
  private globalDefaultProperties;
12
13
  private perVolumeIdDefaultProperties;
13
14
  protected initialViewUp: Point3;
14
15
  protected viewportProperties: VolumeViewportProperties;
16
+ private volumeIds;
15
17
  constructor(props: ViewportInput);
16
18
  static get useCustomRenderingPipeline(): boolean;
19
+ getSliceViewInfo(): {
20
+ width: number;
21
+ height: number;
22
+ sliceIndex: number;
23
+ slicePlane: number;
24
+ sliceToIndexMatrix: mat4;
25
+ indexToSliceMatrix: mat4;
26
+ };
17
27
  protected applyViewOrientation(orientation: OrientationAxis | OrientationVectors, resetCamera?: boolean): void;
18
28
  private initializeVolumeNewImageEventDispatcher;
19
- protected resetVolumeViewportClippingRange(): void;
20
29
  private setVOILUTFunction;
21
30
  private setColormap;
22
31
  private setOpacity;
@@ -39,9 +48,9 @@ declare abstract class BaseVolumeViewport extends Viewport implements IVolumeVie
39
48
  getDefaultProperties: (volumeId?: string) => VolumeViewportProperties;
40
49
  getProperties: (volumeId?: string) => VolumeViewportProperties;
41
50
  private getColormap;
42
- setVolumes(volumeInputArray: Array<IVolumeInput>, immediate?: boolean, suppressEvents?: boolean): Promise<void>;
43
- addVolumes(volumeInputArray: Array<IVolumeInput>, immediate?: boolean, suppressEvents?: boolean): Promise<void>;
44
- removeVolumeActors(actorUIDs: Array<string>, immediate?: boolean): void;
51
+ setVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>;
52
+ addVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>;
53
+ removeVolumeActors(actorUIDs: string[], immediate?: boolean): void;
45
54
  setOrientation(_orientation: OrientationAxis | OrientationVectors, _immediate?: boolean): void;
46
55
  private initializeColorTransferFunction;
47
56
  private _getApplicableVolumeActor;
@@ -59,12 +68,13 @@ declare abstract class BaseVolumeViewport extends Viewport implements IVolumeVie
59
68
  protected _getOrientationVectors(orientation: OrientationAxis | OrientationVectors): OrientationVectors;
60
69
  getSlabThickness(): number;
61
70
  getIntensityFromWorld(point: Point3): number;
62
- getImageIds: (volumeId?: string) => Array<string>;
63
- abstract getCurrentImageId(): string;
64
- protected getVolumeId(specifier?: ViewReferenceSpecifier): string;
71
+ getImageIds: (volumeId?: string) => string[];
72
+ abstract getCurrentImageId(): string | undefined;
73
+ getVolumeId(specifier?: ViewReferenceSpecifier): string;
65
74
  getViewReferenceId(specifier?: ViewReferenceSpecifier): string;
66
- abstract setBlendMode(blendMode: BlendModes, filterActorUIDs?: Array<string>, immediate?: boolean): void;
67
- abstract setSlabThickness(slabThickness: number, filterActorUIDs?: Array<string>): void;
75
+ private _addVolumeId;
76
+ abstract setBlendMode(blendMode: BlendModes, filterActorUIDs?: string[], immediate?: boolean): void;
77
+ abstract setSlabThickness(slabThickness: number, filterActorUIDs?: string[]): void;
68
78
  abstract resetSlabThickness(): void;
69
79
  abstract resetProperties(volumeId?: string): void;
70
80
  }
@@ -2,28 +2,37 @@ import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransf
2
2
  import vtkColorMaps from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps';
3
3
  import vtkPiecewiseFunction from '@kitware/vtk.js/Common/DataModel/PiecewiseFunction';
4
4
  import { vec2, vec3 } from 'gl-matrix';
5
- import cache from '../cache';
5
+ import cache from '../cache/cache';
6
6
  import { MPR_CAMERA_VALUES, RENDERING_DEFAULTS, VIEWPORT_PRESETS, } from '../constants';
7
- import { Events, ViewportStatus, VOILUTFunctionType, } from '../enums';
7
+ import { Events, ViewportStatus, VOILUTFunctionType } from '../enums';
8
8
  import ViewportType from '../enums/ViewportType';
9
9
  import eventTarget from '../eventTarget';
10
10
  import { getShouldUseCPURendering } from '../init';
11
- import { loadVolume } from '../loaders/volumeLoader';
12
- import { actorIsA, applyPreset, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, imageIdToURI, invertRgbTransferFunction, triggerEvent, colormap as colormapUtils, isEqualNegative, getVolumeViewportScrollInfo, snapFocalPointToSlice, isEqual, } from '../utilities';
13
- import { createVolumeActor } from './helpers';
14
- import volumeNewImageEventDispatcher, { resetVolumeNewImageState, } from './helpers/volumeNewImageEventDispatcher';
15
- import Viewport from './Viewport';
16
- import vtkSlabCamera from './vtkClasses/vtkSlabCamera';
11
+ import triggerEvent from '../utilities/triggerEvent';
12
+ import * as colormapUtils from '../utilities/colormap';
13
+ import invertRgbTransferFunction from '../utilities/invertRgbTransferFunction';
14
+ import createSigmoidRGBTransferFunction from '../utilities/createSigmoidRGBTransferFunction';
17
15
  import transformWorldToIndex from '../utilities/transformWorldToIndex';
18
16
  import { findMatchingColormap } from '../utilities/colormap';
19
17
  import { getTransferFunctionNodes } from '../utilities/transferFunctionUtils';
18
+ import createVolumeActor from './helpers/createVolumeActor';
19
+ import volumeNewImageEventDispatcher, { resetVolumeNewImageState, } from './helpers/volumeNewImageEventDispatcher';
20
+ import Viewport from './Viewport';
21
+ import vtkSlabCamera from './vtkClasses/vtkSlabCamera';
22
+ import getVolumeViewportScrollInfo from '../utilities/getVolumeViewportScrollInfo';
23
+ import { actorIsA } from '../utilities/actorCheck';
24
+ import snapFocalPointToSlice from '../utilities/snapFocalPointToSlice';
25
+ import getVoiFromSigmoidRGBTransferFunction from '../utilities/getVoiFromSigmoidRGBTransferFunction';
26
+ import isEqual, { isEqualNegative } from '../utilities/isEqual';
27
+ import applyPreset from '../utilities/applyPreset';
28
+ import imageIdToURI from '../utilities/imageIdToURI';
20
29
  class BaseVolumeViewport extends Viewport {
21
30
  constructor(props) {
22
31
  super(props);
23
32
  this.useCPURendering = false;
24
- this.useNativeDataType = false;
25
33
  this.perVolumeIdDefaultProperties = new Map();
26
34
  this.viewportProperties = {};
35
+ this.volumeIds = new Set();
27
36
  this.setRotation = (rotation) => {
28
37
  const panFit = this.getPan(this.fitToCanvasCamera);
29
38
  const pan = this.getPan();
@@ -177,14 +186,14 @@ class BaseVolumeViewport extends Viewport {
177
186
  canvasCoord[0] / devicePixelRatio,
178
187
  canvasCoord[1] / devicePixelRatio,
179
188
  ];
180
- vtkCamera.setIsPerformingCoordinateTransformation?.(false);
189
+ vtkCamera.setIsPerformingCoordinateTransformation(false);
181
190
  return canvasCoordWithDPR;
182
191
  };
183
192
  this.hasImageURI = (imageURI) => {
184
193
  const volumeActors = this.getActors().filter((actorEntry) => actorIsA(actorEntry, 'vtkVolume'));
185
194
  return volumeActors.some(({ uid }) => {
186
195
  const volume = cache.getVolume(uid);
187
- if (!volume || !volume.imageIds) {
196
+ if (!volume?.imageIds) {
188
197
  return false;
189
198
  }
190
199
  const volumeImageURIs = volume.imageIds.map(imageIdToURI);
@@ -204,7 +213,6 @@ class BaseVolumeViewport extends Viewport {
204
213
  return imageVolume.imageIds;
205
214
  };
206
215
  this.useCPURendering = getShouldUseCPURendering();
207
- this.useNativeDataType = this._shouldUseNativeDataType();
208
216
  if (this.useCPURendering) {
209
217
  throw new Error('VolumeViewports cannot be used whilst CPU Fallback Rendering is enabled.');
210
218
  }
@@ -229,6 +237,9 @@ class BaseVolumeViewport extends Viewport {
229
237
  static get useCustomRenderingPipeline() {
230
238
  return false;
231
239
  }
240
+ getSliceViewInfo() {
241
+ throw new Error('Method not implemented.');
242
+ }
232
243
  applyViewOrientation(orientation, resetCamera = true) {
233
244
  const { viewPlaneNormal, viewUp } = this._getOrientationVectors(orientation);
234
245
  const camera = this.getVtkActiveCamera();
@@ -266,17 +277,8 @@ class BaseVolumeViewport extends Viewport {
266
277
  this.element.addEventListener(Events.CAMERA_MODIFIED, volumeNewImageHandlerBound);
267
278
  eventTarget.addEventListener(Events.ELEMENT_DISABLED, volumeNewImageCleanUpBound);
268
279
  }
269
- resetVolumeViewportClippingRange() {
270
- const activeCamera = this.getVtkActiveCamera();
271
- if (activeCamera.getParallelProjection()) {
272
- activeCamera.setClippingRange(-RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE, RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
273
- }
274
- else {
275
- activeCamera.setClippingRange(RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS, RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
276
- }
277
- }
278
280
  setVOILUTFunction(voiLUTFunction, volumeId, suppressEvents) {
279
- if (Object.values(VOILUTFunctionType).indexOf(voiLUTFunction) === -1) {
281
+ if (!Object.values(VOILUTFunctionType).includes(voiLUTFunction)) {
280
282
  voiLUTFunction = VOILUTFunctionType.LINEAR;
281
283
  }
282
284
  const { voiRange } = this.getProperties();
@@ -474,7 +476,7 @@ class BaseVolumeViewport extends Viewport {
474
476
  return target;
475
477
  }
476
478
  const { viewPlaneNormal } = target;
477
- const delta = viewRefSpecifier.sliceIndex - this.getSliceIndex();
479
+ const delta = viewRefSpecifier?.sliceIndex - this.getSliceIndex();
478
480
  const { sliceRangeInfo } = getVolumeViewportScrollInfo(this, volumeId, true);
479
481
  const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
480
482
  const { focalPoint, position } = camera;
@@ -538,7 +540,8 @@ class BaseVolumeViewport extends Viewport {
538
540
  else if (refFrameOfReference === this.getFrameOfReferenceUID()) {
539
541
  if (refViewPlaneNormal && !isNegativeNormal && !isSameNormal) {
540
542
  this.setOrientation({ viewPlaneNormal: refViewPlaneNormal, viewUp });
541
- return this.setViewReference(viewRef);
543
+ this.setViewReference(viewRef);
544
+ return;
542
545
  }
543
546
  if (cameraFocalPoint) {
544
547
  const focalDelta = vec3.subtract([0, 0, 0], cameraFocalPoint, focalPoint);
@@ -646,15 +649,18 @@ class BaseVolumeViewport extends Viewport {
646
649
  async setVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
647
650
  const firstImageVolume = cache.getVolume(volumeInputArray[0].volumeId);
648
651
  if (!firstImageVolume) {
649
- throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
652
+ throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist, you need to create/allocate the volume first`);
650
653
  }
651
654
  const FrameOfReferenceUID = firstImageVolume.metadata.FrameOfReferenceUID;
652
- await this._isValidVolumeInputArray(volumeInputArray, FrameOfReferenceUID);
655
+ this._isValidVolumeInputArray(volumeInputArray, FrameOfReferenceUID);
653
656
  this._FrameOfReferenceUID = FrameOfReferenceUID;
657
+ volumeInputArray.forEach((volumeInput) => {
658
+ this._addVolumeId(volumeInput.volumeId);
659
+ });
654
660
  const volumeActors = [];
655
661
  for (let i = 0; i < volumeInputArray.length; i++) {
656
662
  const { volumeId, actorUID, slabThickness } = volumeInputArray[i];
657
- const actor = await createVolumeActor(volumeInputArray[i], this.element, this.id, suppressEvents, this.useNativeDataType);
663
+ const actor = await createVolumeActor(volumeInputArray[i], this.element, this.id, suppressEvents);
658
664
  const uid = actorUID || volumeId;
659
665
  volumeActors.push({
660
666
  uid,
@@ -680,11 +686,14 @@ class BaseVolumeViewport extends Viewport {
680
686
  throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
681
687
  }
682
688
  const volumeActors = [];
683
- await this._isValidVolumeInputArray(volumeInputArray, this._FrameOfReferenceUID);
689
+ this._isValidVolumeInputArray(volumeInputArray, this._FrameOfReferenceUID);
690
+ volumeInputArray.forEach((volumeInput) => {
691
+ this._addVolumeId(volumeInput.volumeId);
692
+ });
684
693
  for (let i = 0; i < volumeInputArray.length; i++) {
685
694
  const { volumeId, visibility, actorUID, slabThickness } = volumeInputArray[i];
686
- const actor = await createVolumeActor(volumeInputArray[i], this.element, this.id, suppressEvents, this.useNativeDataType);
687
- if (visibility === false) {
695
+ const actor = await createVolumeActor(volumeInputArray[i], this.element, this.id, suppressEvents);
696
+ if (!visibility) {
688
697
  actor.setVisibility(false);
689
698
  }
690
699
  const uid = actorUID || volumeId;
@@ -727,7 +736,7 @@ class BaseVolumeViewport extends Viewport {
727
736
  }
728
737
  let volumeActor;
729
738
  if (volumeId) {
730
- volumeActor = this.getActor(volumeId)?.actor;
739
+ volumeActor = this.getActor(volumeId).actor;
731
740
  }
732
741
  if (!volumeActor) {
733
742
  volumeActor = actorEntries[0].actor;
@@ -738,11 +747,7 @@ class BaseVolumeViewport extends Viewport {
738
747
  async _isValidVolumeInputArray(volumeInputArray, FrameOfReferenceUID) {
739
748
  const numVolumes = volumeInputArray.length;
740
749
  for (let i = 1; i < numVolumes; i++) {
741
- const volumeInput = volumeInputArray[i];
742
- const imageVolume = await loadVolume(volumeInput.volumeId);
743
- if (!imageVolume) {
744
- throw new Error(`imageVolume with id: ${imageVolume.volumeId} does not exist`);
745
- }
750
+ const imageVolume = cache.getVolume(volumeInputArray[i].volumeId);
746
751
  if (FrameOfReferenceUID !== imageVolume.metadata.FrameOfReferenceUID) {
747
752
  throw new Error(`Volumes being added to viewport ${this.id} do not share the same FrameOfReferenceUID. This is not yet supported`);
748
753
  }
@@ -758,10 +763,7 @@ class BaseVolumeViewport extends Viewport {
758
763
  super.flip(flipDirection);
759
764
  }
760
765
  hasVolumeId(volumeId) {
761
- const actorEntries = this.getActors();
762
- return actorEntries.some((actorEntry) => {
763
- return actorEntry.uid === volumeId;
764
- });
766
+ return this.volumeIds.has(volumeId);
765
767
  }
766
768
  getImageData(volumeId) {
767
769
  const defaultActor = this.getDefaultActor();
@@ -782,16 +784,17 @@ class BaseVolumeViewport extends Viewport {
782
784
  spacing: vtkImageData.getSpacing(),
783
785
  origin: vtkImageData.getOrigin(),
784
786
  direction: vtkImageData.getDirection(),
785
- scalarData: vtkImageData.getPointData().getScalars().isDeleted()
786
- ? null
787
- : vtkImageData.getPointData().getScalars().getData(),
788
787
  imageData: actor.getMapper().getInputData(),
789
788
  metadata: {
790
789
  Modality: volume?.metadata?.Modality,
791
790
  FrameOfReferenceUID: volume?.metadata?.FrameOfReferenceUID,
792
791
  },
792
+ get scalarData() {
793
+ return volume?.voxelManager?.getScalarData();
794
+ },
793
795
  scaling: volume?.scaling,
794
796
  hasPixelSpacing: true,
797
+ voxelManager: volume?.voxelManager,
795
798
  };
796
799
  }
797
800
  _setVolumeActors(volumeActorEntries) {
@@ -836,12 +839,8 @@ class BaseVolumeViewport extends Viewport {
836
839
  const { actor, uid } = actorEntry;
837
840
  const imageData = actor.getMapper().getInputData();
838
841
  const volume = cache.getVolume(uid);
839
- const { dimensions } = volume;
840
842
  const index = transformWorldToIndex(imageData, point);
841
- const voxelIndex = index[2] * dimensions[0] * dimensions[1] +
842
- index[1] * dimensions[0] +
843
- index[0];
844
- return volume.getScalarData()[voxelIndex];
843
+ return volume.voxelManager.getAtIJKPoint(index);
845
844
  }
846
845
  getVolumeId(specifier) {
847
846
  const actorEntries = this.getActors();
@@ -852,7 +851,7 @@ class BaseVolumeViewport extends Viewport {
852
851
  return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
853
852
  }
854
853
  return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume' &&
855
- actorEntry.uid === specifier.volumeId)?.uid;
854
+ actorEntry.uid === specifier?.volumeId)?.uid;
856
855
  }
857
856
  getViewReferenceId(specifier = {}) {
858
857
  let { volumeId, sliceIndex: sliceIndex } = specifier;
@@ -866,8 +865,11 @@ class BaseVolumeViewport extends Viewport {
866
865
  const currentIndex = this.getSliceIndex();
867
866
  sliceIndex ??= currentIndex;
868
867
  const { viewPlaneNormal, focalPoint } = this.getCamera();
869
- const querySeparator = volumeId.indexOf('?') > -1 ? '&' : '?';
868
+ const querySeparator = volumeId.includes('?') ? '&' : '?';
870
869
  return `volumeId:${volumeId}${querySeparator}sliceIndex=${sliceIndex}&viewPlaneNormal=${viewPlaneNormal.join(',')}&focalPoint=${focalPoint.join(',')}`;
871
870
  }
871
+ _addVolumeId(volumeId) {
872
+ this.volumeIds.add(volumeId);
873
+ }
872
874
  }
873
875
  export default BaseVolumeViewport;
@@ -1,4 +1,4 @@
1
- import CanvasActor from '.';
1
+ import type CanvasActor from '.';
2
2
  export default class CanvasMapper {
3
3
  private actor;
4
4
  constructor(actor: CanvasActor);
@@ -1,4 +1,4 @@
1
- import CanvasActor from '.';
1
+ import type CanvasActor from '.';
2
2
  export default class CanvasProperties {
3
3
  private actor;
4
4
  private opacity;
@@ -75,7 +75,8 @@ export default class CanvasActor {
75
75
  const { voxelManager } = image;
76
76
  if (voxelManager) {
77
77
  if (voxelManager.map.getRun) {
78
- return this.renderRLE(viewport, context, voxelManager);
78
+ this.renderRLE(viewport, context, voxelManager);
79
+ return;
79
80
  }
80
81
  }
81
82
  let { canvas } = this;
@@ -1,14 +1,12 @@
1
1
  import type IStackViewport from '../types/IStackViewport';
2
- import type IVideoViewport from '../types/IVideoViewport';
3
2
  import type IRenderingEngine from '../types/IRenderingEngine';
4
3
  import type IVolumeViewport from '../types/IVolumeViewport';
5
- import type { IViewport } from '../types/IViewport';
6
- import type { PublicViewportInput } from '../types/IViewport';
4
+ import type { PublicViewportInput, IViewport } from '../types/IViewport';
7
5
  declare class RenderingEngine implements IRenderingEngine {
8
6
  readonly id: string;
9
7
  hasBeenDestroyed: boolean;
10
8
  offscreenMultiRenderWindow: any;
11
- readonly offScreenCanvasContainer: any;
9
+ readonly offScreenCanvasContainer: HTMLDivElement;
12
10
  private _viewports;
13
11
  private _needsRender;
14
12
  private _animationFrameSet;
@@ -17,16 +15,16 @@ declare class RenderingEngine implements IRenderingEngine {
17
15
  constructor(id?: string);
18
16
  enableElement(viewportInputEntry: PublicViewportInput): void;
19
17
  disableElement(viewportId: string): void;
20
- setViewports(publicViewportInputEntries: Array<PublicViewportInput>): void;
18
+ setViewports(publicViewportInputEntries: PublicViewportInput[]): void;
21
19
  resize(immediate?: boolean, keepCamera?: boolean): void;
22
20
  getViewport(viewportId: string): IViewport;
23
- getViewports(): Array<IViewport>;
24
- getStackViewports(): Array<IStackViewport>;
25
- getVideoViewports(): Array<IVideoViewport>;
26
- getVolumeViewports(): Array<IVolumeViewport>;
21
+ getViewports(): IViewport[];
22
+ getStackViewport(viewportId: string): IStackViewport;
23
+ getStackViewports(): IStackViewport[];
24
+ getVolumeViewports(): IVolumeViewport[];
27
25
  render(): void;
28
26
  renderFrameOfReference: (FrameOfReferenceUID: string) => void;
29
- renderViewports(viewportIds: Array<string>): void;
27
+ renderViewports(viewportIds: string[]): void;
30
28
  renderViewport(viewportId: string): void;
31
29
  destroy(): void;
32
30
  fillCanvasWithBackgroundColor(canvas: HTMLCanvasElement, backgroundColor: [number, number, number]): void;
@@ -1,7 +1,8 @@
1
1
  import Events from '../enums/Events';
2
2
  import renderingEngineCache from './renderingEngineCache';
3
3
  import eventTarget from '../eventTarget';
4
- import { triggerEvent, uuidv4 } from '../utilities';
4
+ import uuidv4 from '../utilities/uuidv4';
5
+ import triggerEvent from '../utilities/triggerEvent';
5
6
  import { vtkOffscreenMultiRenderWindow } from './vtkClasses';
6
7
  import ViewportType from '../enums/ViewportType';
7
8
  import VolumeViewport from './VolumeViewport';
@@ -10,7 +11,6 @@ import StackViewport from './StackViewport';
10
11
  import viewportTypeUsesCustomRenderingPipeline from './helpers/viewportTypeUsesCustomRenderingPipeline';
11
12
  import getOrCreateCanvas from './helpers/getOrCreateCanvas';
12
13
  import { getShouldUseCPURendering, isCornerstoneInitialized } from '../init';
13
- import VideoViewport from './VideoViewport';
14
14
  import viewportTypeToViewportClass from './helpers/viewportTypeToViewportClass';
15
15
  import { OrientationAxis } from '../enums';
16
16
  import VolumeViewport3D from './VolumeViewport3D';
@@ -27,7 +27,7 @@ class RenderingEngine {
27
27
  return vp.id;
28
28
  }
29
29
  });
30
- return this.renderViewports(viewportIdsWithSameFrameOfReferenceUID);
30
+ this.renderViewports(viewportIdsWithSameFrameOfReferenceUID);
31
31
  };
32
32
  this._renderFlaggedViewports = () => {
33
33
  this._throwIfDestroyed();
@@ -165,21 +165,21 @@ class RenderingEngine {
165
165
  this._throwIfDestroyed();
166
166
  return this._getViewportsAsArray();
167
167
  }
168
- getStackViewports() {
168
+ getStackViewport(viewportId) {
169
169
  this._throwIfDestroyed();
170
- const viewports = this.getViewports();
171
- const isStackViewport = (viewport) => {
172
- return viewport instanceof StackViewport;
173
- };
174
- return viewports.filter(isStackViewport);
170
+ const viewport = this.getViewport(viewportId);
171
+ if (!viewport) {
172
+ throw new Error(`Viewport with Id ${viewportId} does not exist`);
173
+ }
174
+ if (!(viewport instanceof StackViewport)) {
175
+ throw new Error(`Viewport with Id ${viewportId} is not a StackViewport.`);
176
+ }
177
+ return viewport;
175
178
  }
176
- getVideoViewports() {
179
+ getStackViewports() {
177
180
  this._throwIfDestroyed();
178
181
  const viewports = this.getViewports();
179
- const isVideoViewport = (viewport) => {
180
- return viewport instanceof VideoViewport;
181
- };
182
- return viewports.filter(isVideoViewport);
182
+ return viewports.filter((vp) => vp instanceof StackViewport);
183
183
  }
184
184
  getVolumeViewports() {
185
185
  this._throwIfDestroyed();
@@ -270,7 +270,7 @@ class RenderingEngine {
270
270
  vp.setCamera(prevCamera);
271
271
  }
272
272
  });
273
- if (immediate === true) {
273
+ if (immediate) {
274
274
  this.render();
275
275
  }
276
276
  }
@@ -314,7 +314,7 @@ class RenderingEngine {
314
314
  }
315
315
  }
316
316
  });
317
- if (immediate === true) {
317
+ if (immediate) {
318
318
  this.render();
319
319
  }
320
320
  }
@@ -426,7 +426,9 @@ class RenderingEngine {
426
426
  triggerEvent(eventTarget, Events.ELEMENT_ENABLED, eventDetail);
427
427
  }
428
428
  setCustomViewports(viewportInputEntries) {
429
- viewportInputEntries.forEach((vpie) => this.addCustomViewport(vpie));
429
+ viewportInputEntries.forEach((vpie) => {
430
+ this.addCustomViewport(vpie);
431
+ });
430
432
  }
431
433
  setVtkjsDrivenViewports(viewportInputEntries) {
432
434
  if (viewportInputEntries.length) {
@@ -517,7 +519,7 @@ class RenderingEngine {
517
519
  this._render();
518
520
  }
519
521
  _render() {
520
- if (this._needsRender.size > 0 && this._animationFrameSet === false) {
522
+ if (this._needsRender.size > 0 && !this._animationFrameSet) {
521
523
  this._animationFrameHandle = window.requestAnimationFrame(this._renderFlaggedViewports);
522
524
  this._animationFrameSet = true;
523
525
  }
@@ -1,12 +1,12 @@
1
1
  import type { vtkImageData as vtkImageDataType } from '@kitware/vtk.js/Common/DataModel/ImageData';
2
- import type { ActorEntry, CPUIImageData, ICamera, IImage, IImageData, IImagesLoader, IStackInput, IStackViewport, ImageLoadListener, Mat3, Point2, Point3, Scaling, StackViewportProperties, ViewReference } from '../types';
3
- import { ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewportInput } from '../types/IViewport';
2
+ import { mat4 } from 'gl-matrix';
3
+ import type { ActorEntry, CPUIImageData, ICamera, IImage, IImageData, IImagesLoader, IStackInput, IStackViewport, ImageLoadListener, Mat3, Point2, Point3, Scaling, StackViewportProperties, ViewReference, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewportInput, ImagePixelModule, ImagePlaneModule } from '../types';
4
4
  import Viewport from './Viewport';
5
5
  import { InterpolationType, RequestType, ViewportStatus } from '../enums';
6
- import { ImagePixelModule, ImagePlaneModule } from '../types';
7
- interface ImageDataMetaData {
6
+ import type vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
7
+ export interface ImageDataMetaData {
8
8
  bitsAllocated: number;
9
- numComps: number;
9
+ numberOfComponents: number;
10
10
  origin: Point3;
11
11
  direction: Mat3;
12
12
  dimensions: Point3;
@@ -38,7 +38,6 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
38
38
  private _calibrationEvent;
39
39
  private _cpuFallbackEnabledElement?;
40
40
  private useCPURendering;
41
- private useNativeDataType;
42
41
  private cpuImagePixelData;
43
42
  private cpuRenderingInvalidated;
44
43
  private csImage;
@@ -61,12 +60,12 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
61
60
  resetCamera: (options?: any) => boolean;
62
61
  canvasToWorld: (canvasPos: Point2) => Point3;
63
62
  worldToCanvas: (worldPos: Point3) => Point2;
64
- getRenderer: () => any;
63
+ getRenderer: () => vtkRenderer;
65
64
  getDefaultActor: () => ActorEntry;
66
- getActors: () => Array<ActorEntry>;
65
+ getActors: () => ActorEntry[];
67
66
  getActor: (actorUID: string) => ActorEntry;
68
- setActors: (actors: Array<ActorEntry>) => void;
69
- addActors: (actors: Array<ActorEntry>) => void;
67
+ setActors: (actors: ActorEntry[]) => void;
68
+ addActors: (actors: ActorEntry[]) => void;
70
69
  addActor: (actorEntry: ActorEntry) => void;
71
70
  removeAllActors: () => void;
72
71
  private setVOI;
@@ -118,16 +117,16 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
118
117
  getImageDataMetadata(image: IImage): ImageDataMetaData;
119
118
  getImagePlaneReferenceData(sliceIndex?: number): ViewReference;
120
119
  private _getCameraOrientation;
121
- createVTKImageData({ origin, direction, dimensions, spacing, numComps, pixelArray, }: {
120
+ createVTKImageData({ origin, direction, dimensions, spacing, numberOfComponents, pixelArray, }: {
122
121
  origin: any;
123
122
  direction: any;
124
123
  dimensions: any;
125
124
  spacing: any;
126
- numComps: any;
125
+ numberOfComponents: any;
127
126
  pixelArray: any;
128
127
  }): vtkImageDataType;
129
128
  private _createVTKImageData;
130
- setStack(imageIds: Array<string>, currentImageIdIndex?: number): Promise<string>;
129
+ setStack(imageIds: string[], currentImageIdIndex?: number): Promise<string>;
131
130
  private _throwIfDestroyed;
132
131
  private _checkVTKImageDataMatchesCornerstoneImage;
133
132
  private _updateVTKImageDataFromCornerstoneImage;
@@ -136,12 +135,8 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
136
135
  successCallback(imageId: any, image: any): void;
137
136
  errorCallback(imageId: any, permanent: any, error: any): void;
138
137
  getLoaderImageOptions(imageId: string): {
139
- targetBuffer: {
140
- type: string;
141
- };
142
138
  useRGBA: boolean;
143
139
  transferSyntaxUID: any;
144
- useNativeDataType: boolean;
145
140
  priority: number;
146
141
  requestType: RequestType;
147
142
  additionalDetails: {
@@ -154,7 +149,15 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
154
149
  renderImageObject: (image: any) => void;
155
150
  private _setCSImage;
156
151
  private _updateToDisplayImageCPU;
157
- addImages(stackInputs: Array<IStackInput>): void;
152
+ getSliceViewInfo(): {
153
+ width: number;
154
+ height: number;
155
+ sliceIndex: number;
156
+ slicePlane: number;
157
+ sliceToIndexMatrix: mat4;
158
+ indexToSliceMatrix: mat4;
159
+ };
160
+ addImages(stackInputs: IStackInput[]): void;
158
161
  private _updateActorToDisplayImageId;
159
162
  private _getInitialVOIRange;
160
163
  private _getPTPreScaledRange;
@@ -178,12 +181,18 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
178
181
  private _getValidVOILUTFunction;
179
182
  getCurrentImageIdIndex: () => number;
180
183
  getSliceIndex: () => number;
184
+ getSliceInfo(): {
185
+ sliceIndex: number;
186
+ slicePlane: number;
187
+ width: number;
188
+ height: number;
189
+ };
181
190
  isReferenceViewable(viewRef: ViewReference, options?: ReferenceCompatibleOptions): boolean | unknown;
182
191
  getViewReference(viewRefSpecifier?: ViewReferenceSpecifier): ViewReference;
183
192
  setViewReference(viewRef: ViewReference): void;
184
193
  getViewReferenceId(specifier?: ViewReferenceSpecifier): string;
185
194
  getTargetImageIdIndex: () => number;
186
- getImageIds: () => Array<string>;
195
+ getImageIds: () => string[];
187
196
  getCurrentImageId: () => string;
188
197
  hasImageId: (imageId: string) => boolean;
189
198
  hasImageURI: (imageURI: string) => boolean;