@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
@@ -0,0 +1,414 @@
1
+ import { vec3 } from 'gl-matrix';
2
+ import { Events as EVENTS, MetadataModules } from '../enums';
3
+ import uuidv4 from '../utilities/uuidv4';
4
+ import * as metaData from '../metaData';
5
+ import { Transform } from './helpers/cpuFallback/rendering/transform';
6
+ import Viewport from './Viewport';
7
+ import { getOrCreateCanvas } from './helpers';
8
+ import { EPSILON } from '../constants';
9
+ import { triggerEvent } from '../utilities';
10
+ import { peerImport } from '../init';
11
+ const _map = Symbol.for('map');
12
+ const EVENT_POSTRENDER = 'postrender';
13
+ class WSIViewport extends Viewport {
14
+ constructor(props) {
15
+ super({
16
+ ...props,
17
+ canvas: props.canvas || getOrCreateCanvas(props.element),
18
+ });
19
+ this.internalCamera = {
20
+ rotation: 0,
21
+ centerIndex: [0, 0],
22
+ extent: [0, -2, 1, -1],
23
+ xSpacing: 1,
24
+ ySpacing: 1,
25
+ resolution: 1,
26
+ zoom: 1,
27
+ };
28
+ this.voiRange = {
29
+ lower: 0,
30
+ upper: 255,
31
+ };
32
+ this.getProperties = () => {
33
+ return {};
34
+ };
35
+ this.resetCamera = () => {
36
+ return true;
37
+ };
38
+ this.getNumberOfSlices = () => {
39
+ return 1;
40
+ };
41
+ this.getFrameOfReferenceUID = () => {
42
+ return this.frameOfReferenceUID;
43
+ };
44
+ this.resize = () => {
45
+ const canvas = this.canvas;
46
+ const { clientWidth, clientHeight } = canvas;
47
+ if (canvas.width !== clientWidth || canvas.height !== clientHeight) {
48
+ canvas.width = clientWidth;
49
+ canvas.height = clientHeight;
50
+ }
51
+ this.refreshRenderValues();
52
+ };
53
+ this.canvasToWorld = (canvasPos) => {
54
+ if (!this.metadata) {
55
+ return;
56
+ }
57
+ const [px, py] = this.canvasToIndex(canvasPos);
58
+ const { origin, spacing, direction } = this.getImageData();
59
+ const worldPos = vec3.fromValues(0, 0, 0);
60
+ const iVector = direction.slice(0, 3);
61
+ const jVector = direction.slice(3, 6);
62
+ vec3.scaleAndAdd(worldPos, origin, iVector, px * spacing[0]);
63
+ vec3.scaleAndAdd(worldPos, worldPos, jVector, py * spacing[1]);
64
+ return [worldPos[0], worldPos[1], worldPos[2]];
65
+ };
66
+ this.worldToCanvas = (worldPos) => {
67
+ if (!this.metadata) {
68
+ return;
69
+ }
70
+ const { spacing, direction, origin } = this.metadata;
71
+ const iVector = direction.slice(0, 3);
72
+ const jVector = direction.slice(3, 6);
73
+ const diff = vec3.subtract([0, 0, 0], worldPos, origin);
74
+ const indexPoint = [
75
+ vec3.dot(diff, iVector) / spacing[0],
76
+ vec3.dot(diff, jVector) / spacing[1],
77
+ ];
78
+ const canvasPoint = this.indexToCanvas(indexPoint);
79
+ return canvasPoint;
80
+ };
81
+ this.postrender = () => {
82
+ this.refreshRenderValues();
83
+ triggerEvent(this.element, EVENTS.IMAGE_RENDERED, {
84
+ element: this.element,
85
+ viewportId: this.id,
86
+ viewport: this,
87
+ renderingEngineId: this.renderingEngineId,
88
+ });
89
+ };
90
+ this.getRotation = () => 0;
91
+ this.canvasToIndex = (canvasPos) => {
92
+ const transform = this.getTransform();
93
+ transform.invert();
94
+ return transform.transformPoint(canvasPos);
95
+ };
96
+ this.indexToCanvas = (indexPos) => {
97
+ const transform = this.getTransform();
98
+ return transform.transformPoint(indexPos);
99
+ };
100
+ this.customRenderViewportToCanvas = () => {
101
+ };
102
+ this.renderingEngineId = props.renderingEngineId;
103
+ this.element.setAttribute('data-viewport-uid', this.id);
104
+ this.element.setAttribute('data-rendering-engine-uid', this.renderingEngineId);
105
+ this.element.style.position = 'relative';
106
+ this.microscopyElement = document.createElement('div');
107
+ this.microscopyElement.id = uuidv4();
108
+ this.microscopyElement.innerText = 'Initial';
109
+ this.microscopyElement.style.background = 'grey';
110
+ this.microscopyElement.style.width = '100%';
111
+ this.microscopyElement.style.height = '100%';
112
+ this.microscopyElement.style.position = 'absolute';
113
+ this.microscopyElement.style.left = '0';
114
+ this.microscopyElement.style.top = '0';
115
+ const cs3dElement = this.element.firstElementChild;
116
+ cs3dElement.insertBefore(this.microscopyElement, cs3dElement.childNodes[1]);
117
+ this.addEventListeners();
118
+ this.resize();
119
+ }
120
+ static get useCustomRenderingPipeline() {
121
+ return true;
122
+ }
123
+ addEventListeners() {
124
+ this.canvas.addEventListener(EVENTS.ELEMENT_DISABLED, this.elementDisabledHandler);
125
+ }
126
+ removeEventListeners() {
127
+ this.canvas.removeEventListener(EVENTS.ELEMENT_DISABLED, this.elementDisabledHandler);
128
+ }
129
+ elementDisabledHandler() {
130
+ this.removeEventListeners();
131
+ }
132
+ getImageDataMetadata(imageIndex = 0) {
133
+ const maxImage = this.metadataDicomweb.reduce((maxImage, image) => {
134
+ return maxImage?.NumberOfFrames < image.NumberOfFrames ? image : maxImage;
135
+ });
136
+ const { TotalPixelMatrixColumns: columns, TotalPixelMatrixRows: rows, ImageOrientationSlide, ImagedVolumeWidth: width, ImagedVolumeHeight: height, ImagedVolumeDepth: depth, } = maxImage;
137
+ const imagePlaneModule = metaData.get(MetadataModules.IMAGE_PLANE, this.imageIds[imageIndex]);
138
+ let rowCosines = ImageOrientationSlide.slice(0, 3);
139
+ let columnCosines = ImageOrientationSlide.slice(3, 6);
140
+ if (rowCosines == null || columnCosines == null) {
141
+ rowCosines = [1, 0, 0];
142
+ columnCosines = [0, 1, 0];
143
+ }
144
+ const rowCosineVec = vec3.fromValues(rowCosines[0], rowCosines[1], rowCosines[2]);
145
+ const colCosineVec = vec3.fromValues(columnCosines[0], columnCosines[1], columnCosines[2]);
146
+ const scanAxisNormal = vec3.create();
147
+ vec3.cross(scanAxisNormal, rowCosineVec, colCosineVec);
148
+ const { XOffsetInSlideCoordinateSystem = 0, YOffsetInSlideCoordinateSystem = 0, ZOffsetInSlideCoordinateSystem = 0, } = maxImage.TotalPixelMatrixOriginSequence?.[0] || {};
149
+ const origin = [
150
+ XOffsetInSlideCoordinateSystem,
151
+ YOffsetInSlideCoordinateSystem,
152
+ ZOffsetInSlideCoordinateSystem,
153
+ ];
154
+ const xSpacing = width / columns;
155
+ const ySpacing = height / rows;
156
+ const xVoxels = columns;
157
+ const yVoxels = rows;
158
+ const zSpacing = depth;
159
+ const zVoxels = 1;
160
+ this.hasPixelSpacing = !!(width && height);
161
+ return {
162
+ bitsAllocated: 8,
163
+ numberOfComponents: 3,
164
+ origin,
165
+ direction: [...rowCosineVec, ...colCosineVec, ...scanAxisNormal],
166
+ dimensions: [xVoxels, yVoxels, zVoxels],
167
+ spacing: [xSpacing, ySpacing, zSpacing],
168
+ hasPixelSpacing: this.hasPixelSpacing,
169
+ numVoxels: xVoxels * yVoxels * zVoxels,
170
+ imagePlaneModule,
171
+ };
172
+ }
173
+ async setFrameNumber(frame) {
174
+ }
175
+ setProperties(props) {
176
+ }
177
+ resetProperties() {
178
+ this.setProperties({});
179
+ }
180
+ getScalarData() {
181
+ return null;
182
+ }
183
+ getImageData() {
184
+ const { metadata } = this;
185
+ if (!metadata) {
186
+ return null;
187
+ }
188
+ const { spacing } = metadata;
189
+ return {
190
+ dimensions: metadata.dimensions,
191
+ spacing,
192
+ numberOfComponents: 3,
193
+ origin: metadata.origin,
194
+ direction: metadata.direction,
195
+ metadata: {
196
+ Modality: this.modality,
197
+ FrameOfReferenceUID: this.frameOfReferenceUID,
198
+ },
199
+ imageData: {
200
+ getDirection: () => metadata.direction,
201
+ getDimensions: () => metadata.dimensions,
202
+ getRange: () => [0, 255],
203
+ getScalarData: () => this.getScalarData(),
204
+ getSpacing: () => metadata.spacing,
205
+ worldToIndex: (point) => {
206
+ const canvasPoint = this.worldToCanvas(point);
207
+ const pixelCoord = this.canvasToIndex(canvasPoint);
208
+ return [pixelCoord[0], pixelCoord[1], 0];
209
+ },
210
+ indexToWorld: (point) => {
211
+ const canvasPoint = this.indexToCanvas([point[0], point[1]]);
212
+ return this.canvasToWorld(canvasPoint);
213
+ },
214
+ },
215
+ hasPixelSpacing: this.hasPixelSpacing,
216
+ calibration: this.calibration,
217
+ preScale: {
218
+ scaled: false,
219
+ },
220
+ scalarData: this.getScalarData(),
221
+ };
222
+ }
223
+ hasImageURI(imageURI) {
224
+ return true;
225
+ }
226
+ setCamera(camera) {
227
+ const previousCamera = this.getCamera();
228
+ const { parallelScale, focalPoint } = camera;
229
+ const view = this.getView();
230
+ const { xSpacing } = this.internalCamera;
231
+ if (parallelScale) {
232
+ const worldToCanvasRatio = this.element.clientHeight / parallelScale;
233
+ const resolution = 1 / xSpacing / worldToCanvasRatio;
234
+ view.setResolution(resolution);
235
+ }
236
+ if (focalPoint) {
237
+ const newCanvas = this.worldToCanvas(focalPoint);
238
+ const newIndex = this.canvasToIndex(newCanvas);
239
+ view.setCenter(newIndex);
240
+ }
241
+ const updatedCamera = this.getCamera();
242
+ this.triggerCameraModifiedEventIfNecessary(previousCamera, updatedCamera);
243
+ }
244
+ getCurrentImageId() {
245
+ return this.imageIds[0];
246
+ }
247
+ getFrameNumber() {
248
+ return 1;
249
+ }
250
+ getCamera() {
251
+ this.refreshRenderValues();
252
+ const { resolution, xSpacing } = this.internalCamera;
253
+ const canvasToWorldRatio = resolution * xSpacing;
254
+ const canvasCenter = [
255
+ this.element.clientWidth / 2,
256
+ this.element.clientHeight / 2,
257
+ ];
258
+ const focalPoint = this.canvasToWorld(canvasCenter);
259
+ return {
260
+ parallelProjection: true,
261
+ focalPoint,
262
+ position: focalPoint,
263
+ viewUp: [0, -1, 0],
264
+ parallelScale: this.element.clientHeight * canvasToWorldRatio,
265
+ viewPlaneNormal: [0, 0, 1],
266
+ };
267
+ }
268
+ static { this.getDicomMicroscopyViewer = async () => {
269
+ return peerImport('dicom-microscopy-viewer');
270
+ }; }
271
+ setDataIds(imageIds) {
272
+ const webClient = metaData.get(MetadataModules.WADO_WEB_CLIENT, imageIds[0]);
273
+ if (!webClient) {
274
+ throw new Error(`To use setDataIds on WSI data, you must provide metaData.webClient for ${imageIds[0]}`);
275
+ }
276
+ return this.setWSI(imageIds, webClient);
277
+ }
278
+ async setWSI(imageIds, client) {
279
+ this.microscopyElement.style.background = 'black';
280
+ this.microscopyElement.innerText = 'Loading';
281
+ this.imageIds = imageIds;
282
+ const DicomMicroscopyViewer = await WSIViewport.getDicomMicroscopyViewer();
283
+ this.frameOfReferenceUID = null;
284
+ const metadataDicomweb = this.imageIds.map((imageId) => {
285
+ const imageMetadata = client.getDICOMwebMetadata(imageId);
286
+ Object.defineProperty(imageMetadata, 'isMultiframe', {
287
+ value: imageMetadata.isMultiframe,
288
+ enumerable: false,
289
+ });
290
+ Object.defineProperty(imageMetadata, 'frameNumber', {
291
+ value: undefined,
292
+ enumerable: false,
293
+ });
294
+ const imageType = imageMetadata['00080008']?.Value;
295
+ if (imageType?.length === 1) {
296
+ imageMetadata['00080008'].Value = imageType[0].split('\\');
297
+ }
298
+ const frameOfReference = imageMetadata['00200052']?.Value?.[0];
299
+ if (!this.frameOfReferenceUID) {
300
+ this.frameOfReferenceUID = frameOfReference;
301
+ }
302
+ else if (frameOfReference !== this.frameOfReferenceUID) {
303
+ imageMetadata['00200052'].Value = [this.frameOfReferenceUID];
304
+ }
305
+ return imageMetadata;
306
+ });
307
+ const volumeImages = [];
308
+ metadataDicomweb.forEach((m) => {
309
+ const image = new DicomMicroscopyViewer.metadata.VLWholeSlideMicroscopyImage({
310
+ metadata: m,
311
+ });
312
+ const imageFlavor = image.ImageType[2];
313
+ if (imageFlavor === 'VOLUME' || imageFlavor === 'THUMBNAIL') {
314
+ volumeImages.push(image);
315
+ }
316
+ else {
317
+ console.log('Unknown image type', image.ImageType);
318
+ }
319
+ });
320
+ this.metadataDicomweb = volumeImages;
321
+ const viewer = new DicomMicroscopyViewer.viewer.VolumeImageViewer({
322
+ client,
323
+ metadata: volumeImages,
324
+ controls: [],
325
+ bindings: {},
326
+ });
327
+ viewer.render({ container: this.microscopyElement });
328
+ this.metadata = this.getImageDataMetadata();
329
+ viewer.deactivateDragPanInteraction();
330
+ this.viewer = viewer;
331
+ this.map = viewer[_map];
332
+ this.map.on(EVENT_POSTRENDER, this.postrender);
333
+ this.resize();
334
+ this.microscopyElement.innerText = '';
335
+ Object.assign(this.microscopyElement.style, {
336
+ '--ol-partial-background-color': 'rgba(127, 127, 127, 0.7)',
337
+ '--ol-foreground-color': '#000000',
338
+ '--ol-subtle-foreground-color': '#000',
339
+ '--ol-subtle-background-color': 'rgba(78, 78, 78, 0.5)',
340
+ background: 'none',
341
+ });
342
+ }
343
+ scroll(delta) {
344
+ const camera = this.getCamera();
345
+ this.setCamera({
346
+ parallelScale: camera.parallelScale * (1 + 0.1 * delta),
347
+ });
348
+ }
349
+ getSliceIndex() {
350
+ return 0;
351
+ }
352
+ getView() {
353
+ if (!this.viewer) {
354
+ return;
355
+ }
356
+ const map = this.viewer[_map];
357
+ const anyWindow = window;
358
+ anyWindow.map = map;
359
+ anyWindow.viewer = this.viewer;
360
+ anyWindow.view = map?.getView();
361
+ anyWindow.wsi = this;
362
+ return map?.getView();
363
+ }
364
+ refreshRenderValues() {
365
+ const view = this.getView();
366
+ if (!view) {
367
+ return;
368
+ }
369
+ const resolution = view.getResolution();
370
+ if (!resolution || resolution < EPSILON) {
371
+ return;
372
+ }
373
+ const centerIndex = view.getCenter();
374
+ const extent = view.getProjection().getExtent();
375
+ const rotation = view.getRotation();
376
+ const zoom = view.getZoom();
377
+ const { metadata: { spacing: [xSpacing, ySpacing], }, } = this;
378
+ const worldToCanvasRatio = 1 / resolution / xSpacing;
379
+ Object.assign(this.internalCamera, {
380
+ extent,
381
+ centerIndex,
382
+ worldToCanvasRatio,
383
+ xSpacing,
384
+ ySpacing,
385
+ resolution,
386
+ rotation,
387
+ zoom,
388
+ });
389
+ }
390
+ getZoom() {
391
+ return this.getView()?.getZoom();
392
+ }
393
+ setZoom(zoom) {
394
+ this.getView()?.setZoom(zoom);
395
+ }
396
+ getTransform() {
397
+ this.refreshRenderValues();
398
+ const { centerIndex: center, resolution, rotation } = this.internalCamera;
399
+ const halfCanvas = [this.canvas.width / 2, this.canvas.height / 2];
400
+ const transform = new Transform();
401
+ transform.translate(halfCanvas[0], halfCanvas[1]);
402
+ transform.rotate(rotation);
403
+ transform.scale(1 / resolution, -1 / resolution);
404
+ transform.translate(-center[0], -center[1]);
405
+ return transform;
406
+ }
407
+ getReferenceId() {
408
+ return `imageId:${this.getCurrentImageId()}`;
409
+ }
410
+ getCurrentImageIdIndex() {
411
+ return 0;
412
+ }
413
+ }
414
+ export default WSIViewport;
@@ -1,3 +1,3 @@
1
1
  import type { IStackInput, IRenderingEngine } from '../../types';
2
- declare function addImageSlicesToViewports(renderingEngine: IRenderingEngine, stackInputs: Array<IStackInput>, viewportIds: Array<string>): Promise<void>;
2
+ declare function addImageSlicesToViewports(renderingEngine: IRenderingEngine, stackInputs: IStackInput[], viewportIds: string[]): Promise<void>;
3
3
  export default addImageSlicesToViewports;
@@ -1,6 +1,6 @@
1
1
  async function addImageSlicesToViewports(renderingEngine, stackInputs, viewportIds) {
2
2
  for (const viewportId of viewportIds) {
3
- const viewport = renderingEngine.getViewport(viewportId);
3
+ const viewport = renderingEngine.getStackViewport(viewportId);
4
4
  if (!viewport) {
5
5
  throw new Error(`Viewport with Id ${viewportId} does not exist`);
6
6
  }
@@ -10,8 +10,8 @@ async function addImageSlicesToViewports(renderingEngine, stackInputs, viewportI
10
10
  }
11
11
  }
12
12
  const addStackPromises = viewportIds.map(async (viewportId) => {
13
- const viewport = renderingEngine.getViewport(viewportId);
14
- return viewport.addImages(stackInputs);
13
+ const viewport = renderingEngine.getStackViewport(viewportId);
14
+ viewport.addImages(stackInputs);
15
15
  });
16
16
  await Promise.all(addStackPromises);
17
17
  }
@@ -1,3 +1,3 @@
1
1
  import type { IVolumeInput, IRenderingEngine } from '../../types';
2
- declare function addVolumesToViewports(renderingEngine: IRenderingEngine, volumeInputs: Array<IVolumeInput>, viewportIds: Array<string>, immediateRender?: boolean, suppressEvents?: boolean): Promise<void>;
2
+ declare function addVolumesToViewports(renderingEngine: IRenderingEngine, volumeInputs: IVolumeInput[], viewportIds: string[], immediateRender?: boolean, suppressEvents?: boolean): Promise<void>;
3
3
  export default addVolumesToViewports;
@@ -1,3 +1,3 @@
1
- import { CPUFallbackColormap, CPUFallbackColormapData } from '../../../../types';
1
+ import type { CPUFallbackColormap, CPUFallbackColormapData } from '../../../../types';
2
2
  export declare function getColormapsList(): any[];
3
3
  export declare function getColormap(id: string, colormapData?: CPUFallbackColormapData): CPUFallbackColormap;
@@ -91,7 +91,7 @@ export function getColormapsList() {
91
91
  const colormaps = [];
92
92
  const keys = Object.keys(CPU_COLORMAPS);
93
93
  keys.forEach(function (key) {
94
- if (CPU_COLORMAPS.hasOwnProperty(key)) {
94
+ if (Object.prototype.hasOwnProperty.call(CPU_COLORMAPS, key)) {
95
95
  const colormap = CPU_COLORMAPS[key];
96
96
  colormaps.push({
97
97
  id: key,
@@ -1,4 +1,4 @@
1
- import { Point2, Point4, CPUFallbackLookupTable } from '../../../../types';
1
+ import type { Point2, Point4, CPUFallbackLookupTable } from '../../../../types';
2
2
  declare class LookupTable implements CPUFallbackLookupTable {
3
3
  NumberOfColors: number;
4
4
  Ramp: string;
@@ -28,6 +28,6 @@ declare class LookupTable implements CPUFallbackLookupTable {
28
28
  private buildSpecialColors;
29
29
  private mapValue;
30
30
  private getIndex;
31
- setTableValue(index: any, rgba: any): void;
31
+ setTableValue(index: number, rgba: Point4 | number, g?: number, b?: number, a?: number): void;
32
32
  }
33
33
  export default LookupTable;
@@ -227,17 +227,27 @@ class LookupTable {
227
227
  }
228
228
  return index;
229
229
  }
230
- setTableValue(index, rgba) {
231
- if (arguments.length === 5) {
232
- rgba = Array.prototype.slice.call(arguments, 1);
230
+ setTableValue(index, rgba, g, b, a) {
231
+ let colorArray;
232
+ if (typeof rgba === 'number' &&
233
+ g !== undefined &&
234
+ b !== undefined &&
235
+ a !== undefined) {
236
+ colorArray = [rgba, g, b, a];
237
+ }
238
+ else if (Array.isArray(rgba)) {
239
+ colorArray = rgba;
240
+ }
241
+ else {
242
+ throw new Error('Invalid arguments for setTableValue');
233
243
  }
234
244
  if (index < 0) {
235
245
  throw new Error(`Can't set the table value for negative index (${index})`);
236
246
  }
237
247
  if (index >= this.NumberOfColors) {
238
- new Error(`Index ${index} is greater than the number of colors ${this.NumberOfColors}`);
248
+ throw new Error(`Index ${index} is greater than the number of colors ${this.NumberOfColors}`);
239
249
  }
240
- this.Table[index] = rgba;
250
+ this.Table[index] = colorArray;
241
251
  if (index === 0 || index === this.NumberOfColors - 1) {
242
252
  this.buildSpecialColors();
243
253
  }
@@ -1,2 +1,2 @@
1
- import { CPUFallbackEnabledElement } from '../../../types';
1
+ import type { CPUFallbackEnabledElement } from '../../../types';
2
2
  export default function (enabledElement: CPUFallbackEnabledElement, invalidated: boolean): void;
@@ -1,2 +1,2 @@
1
- import { CPUFallbackEnabledElement, CPUFallbackTransform } from '../../../../types';
1
+ import type { CPUFallbackEnabledElement, CPUFallbackTransform } from '../../../../types';
2
2
  export default function (enabledElement: CPUFallbackEnabledElement, scale?: number): CPUFallbackTransform;
@@ -1,2 +1,2 @@
1
- import { Point2, CPUFallbackEnabledElement } from '../../../../types';
1
+ import type { Point2, CPUFallbackEnabledElement } from '../../../../types';
2
2
  export default function (enabledElement: CPUFallbackEnabledElement, pt: Point2): Point2;
@@ -1,7 +1,7 @@
1
- import { CPUFallbackViewport } from '../../../../types';
2
- type Shift = {
1
+ import type { CPUFallbackViewport } from '../../../../types';
2
+ interface Shift {
3
3
  x: number;
4
4
  y: number;
5
- };
5
+ }
6
6
  export default function (shift: Shift, viewportOrientation: CPUFallbackViewport): Shift;
7
7
  export {};
@@ -1,2 +1,2 @@
1
- import { CPUFallbackViewport } from '../../../../types';
1
+ import type { CPUFallbackViewport } from '../../../../types';
2
2
  export default function createViewport(): CPUFallbackViewport;
@@ -1,2 +1,2 @@
1
- import { CPUFallbackEnabledElement, IImage } from '../../../../types';
1
+ import type { CPUFallbackEnabledElement, IImage } from '../../../../types';
2
2
  export default function doesImageNeedToBeRendered(enabledElement: CPUFallbackEnabledElement, image: IImage): boolean;
@@ -1,2 +1,2 @@
1
- import { CPUFallbackEnabledElement } from '../../../../types';
1
+ import type { CPUFallbackEnabledElement } from '../../../../types';
2
2
  export default function (enabledElement: CPUFallbackEnabledElement): void;
@@ -1,2 +1,2 @@
1
- import { IImage, CPUFallbackLUT } from '../../../../types';
1
+ import type { IImage, CPUFallbackLUT } from '../../../../types';
2
2
  export default function generateColorLUT(image: IImage, windowWidth: number | number[], windowCenter: number | number[], invert: boolean, voiLUT?: CPUFallbackLUT): Uint8ClampedArray;
@@ -10,7 +10,7 @@ export default function generateColorLUT(image, windowWidth, windowCenter, inver
10
10
  }
11
11
  const lut = image.cachedLut.lutArray;
12
12
  const vlutfn = getVOILUT(Array.isArray(windowWidth) ? windowWidth[0] : windowWidth, Array.isArray(windowCenter) ? windowCenter[0] : windowCenter, voiLUT);
13
- if (invert === true) {
13
+ if (invert) {
14
14
  for (let storedValue = minPixelValue; storedValue <= maxPixelValue; storedValue++) {
15
15
  lut[storedValue + -offset] = 255 - vlutfn(storedValue);
16
16
  }
@@ -1,2 +1,2 @@
1
- import { IImage, CPUFallbackLUT } from '../../../../types';
1
+ import type { IImage, CPUFallbackLUT } from '../../../../types';
2
2
  export default function (image: IImage, windowWidth: number, windowCenter: number, invert: boolean, modalityLUT: CPUFallbackLUT, voiLUT: CPUFallbackLUT): Uint8ClampedArray;
@@ -13,7 +13,7 @@ export default function (image, windowWidth, windowCenter, invert, modalityLUT,
13
13
  const mlutfn = getModalityLut(image.slope, image.intercept, modalityLUT);
14
14
  const vlutfn = getVOILUT(windowWidth, windowCenter, voiLUT);
15
15
  if (image.isPreScaled) {
16
- if (invert === true) {
16
+ if (invert) {
17
17
  for (let storedValue = minPixelValue; storedValue <= maxPixelValue; storedValue++) {
18
18
  lut[storedValue + -offset] = 255 - vlutfn(storedValue);
19
19
  }
@@ -25,7 +25,7 @@ export default function (image, windowWidth, windowCenter, invert, modalityLUT,
25
25
  }
26
26
  }
27
27
  else {
28
- if (invert === true) {
28
+ if (invert) {
29
29
  for (let storedValue = minPixelValue; storedValue <= maxPixelValue; storedValue++) {
30
30
  lut[storedValue + -offset] = 255 - vlutfn(mlutfn(storedValue));
31
31
  }
@@ -1,2 +1,2 @@
1
- import { IImage, CPUFallbackColormap, CPUFallbackViewport } from '../../../../types';
1
+ import type { IImage, CPUFallbackColormap, CPUFallbackViewport } from '../../../../types';
2
2
  export default function (canvas: HTMLCanvasElement, image: IImage, modality?: string, colormap?: CPUFallbackColormap): CPUFallbackViewport;
@@ -1,4 +1,4 @@
1
- import { IImage } from '../../../../types';
1
+ import type { IImage } from '../../../../types';
2
2
  export default function (canvas: HTMLCanvasElement, image: IImage, rotation?: number | null): {
3
3
  verticalScale: number;
4
4
  horizontalScale: number;
@@ -1,4 +1,4 @@
1
- import { IImage } from '../../../../types';
1
+ import type { IImage } from '../../../../types';
2
2
  export default function (image: IImage, rotation?: any): {
3
3
  height: number;
4
4
  width: number;
@@ -1,2 +1,2 @@
1
- import { IImage, CPUFallbackViewport } from '../../../../types';
1
+ import type { IImage, CPUFallbackViewport } from '../../../../types';
2
2
  export default function (image: IImage, viewport: CPUFallbackViewport, invalidated: boolean): Uint8ClampedArray;
@@ -8,7 +8,7 @@ export default function (image, viewport, invalidated) {
8
8
  lutMatches(image.cachedLut.modalityLUT, viewport.modalityLUT) &&
9
9
  lutMatches(image.cachedLut.voiLUT, viewport.voiLUT) &&
10
10
  image.cachedLut.invert === viewport.invert &&
11
- invalidated !== true) {
11
+ !invalidated) {
12
12
  return image.cachedLut.lutArray;
13
13
  }
14
14
  computeAutoVoi(viewport, image);
@@ -1,2 +1,2 @@
1
- import { CPUFallbackEnabledElement, CPUFallbackTransform } from '../../../../types';
1
+ import type { CPUFallbackEnabledElement, CPUFallbackTransform } from '../../../../types';
2
2
  export default function (enabledElement: CPUFallbackEnabledElement): CPUFallbackTransform;
@@ -1,2 +1,2 @@
1
- import { CPUFallbackEnabledElement, IImage } from '../../../../types';
1
+ import type { CPUFallbackEnabledElement, IImage } from '../../../../types';
2
2
  export default function (enabledElement: CPUFallbackEnabledElement, image: IImage): void;
@@ -1 +1,2 @@
1
- export default function (a: any, b: any): boolean;
1
+ import type { CPUFallbackLUT } from '../../../../types';
2
+ export default function lutMatches(a: CPUFallbackLUT, b: CPUFallbackLUT): boolean;
@@ -1,4 +1,4 @@
1
- export default function (a, b) {
1
+ export default function lutMatches(a, b) {
2
2
  if (!a && !b) {
3
3
  return true;
4
4
  }
@@ -1,2 +1,2 @@
1
- import { CPUFallbackEnabledElement, Point2 } from '../../../../types';
1
+ import type { CPUFallbackEnabledElement, Point2 } from '../../../../types';
2
2
  export default function (enabledElement: CPUFallbackEnabledElement, pt: Point2): Point2;