@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
@@ -1,108 +1,117 @@
1
1
  import macro from '@kitware/vtk.js/macros';
2
2
  import vtkOpenGLTexture from '@kitware/vtk.js/Rendering/OpenGL/Texture';
3
- import HalfFloat from '@kitware/vtk.js/Common/Core/HalfFloat';
4
- import { getConfiguration } from '../../init';
3
+ import cache from '../../cache';
5
4
  function vtkStreamingOpenGLTexture(publicAPI, model) {
6
5
  model.classHierarchy.push('vtkStreamingOpenGLTexture');
6
+ model.updatedFrames = [];
7
+ model.volumeId = null;
7
8
  const superCreate3DFilterableFromRaw = publicAPI.create3DFilterableFromRaw;
8
- publicAPI.create3DFilterableFromRaw = (width, height, depth, numComps, dataType, data, preferSizeOverAccuracy) => {
9
+ publicAPI.create3DFilterableFromRaw = (width, height, depth, numberOfComponents, dataType, data, preferSizeOverAccuracy) => {
9
10
  model.inputDataType = dataType;
10
- model.inputNumComps = numComps;
11
- superCreate3DFilterableFromRaw(width, height, depth, numComps, dataType, data, preferSizeOverAccuracy);
11
+ model.inputNumComps = numberOfComponents;
12
+ superCreate3DFilterableFromRaw(width, height, depth, numberOfComponents, dataType, data, preferSizeOverAccuracy);
12
13
  };
13
- publicAPI.update3DFromRaw = (data) => {
14
- const { updatedFrames } = model;
15
- if (!updatedFrames.length) {
14
+ publicAPI.update3DFromRaw = () => {
15
+ const { volumeId } = model;
16
+ if (!volumeId) {
16
17
  return;
17
18
  }
19
+ const volume = cache.getVolume(volumeId);
18
20
  model._openGLRenderWindow.activateTexture(publicAPI);
19
21
  publicAPI.createTexture();
20
22
  publicAPI.bind();
21
- let bytesPerVoxel;
22
- let TypedArrayConstructor;
23
- if (data instanceof Uint8Array) {
24
- bytesPerVoxel = 1;
25
- TypedArrayConstructor = Uint8Array;
26
- }
27
- else if (data instanceof Int16Array) {
28
- bytesPerVoxel = 2;
29
- TypedArrayConstructor = Int16Array;
30
- }
31
- else if (data instanceof Uint16Array) {
32
- bytesPerVoxel = 2;
33
- TypedArrayConstructor = Uint16Array;
23
+ if (volume.isDynamicVolume()) {
24
+ updateDynamicVolumeTexture();
25
+ return;
34
26
  }
35
- else if (data instanceof Float32Array) {
36
- bytesPerVoxel = 4;
37
- TypedArrayConstructor = Float32Array;
27
+ return (publicAPI.hasUpdatedFrames() && updateTextureImagesUsingVoxelManager());
28
+ };
29
+ const superModified = publicAPI.modified;
30
+ publicAPI.setUpdatedFrame = (frameIndex) => {
31
+ model.updatedFrames[frameIndex] = true;
32
+ superModified();
33
+ };
34
+ publicAPI.modified = () => {
35
+ superModified();
36
+ const volume = cache.getVolume(model.volumeId);
37
+ if (!volume) {
38
+ return;
38
39
  }
39
- else {
40
- throw new Error(`No support for given TypedArray.`);
40
+ const imageIds = volume.imageIds;
41
+ for (let i = 0; i < imageIds.length; i++) {
42
+ model.updatedFrames[i] = true;
41
43
  }
42
- for (let i = 0; i < updatedFrames.length; i++) {
43
- if (updatedFrames[i]) {
44
- model.fillSubImage3D(data, i, bytesPerVoxel, TypedArrayConstructor);
44
+ };
45
+ function updateTextureImagesUsingVoxelManager() {
46
+ const volume = cache.getVolume(model.volumeId);
47
+ const imageIds = volume.imageIds;
48
+ for (let i = 0; i < model.updatedFrames.length; i++) {
49
+ if (model.updatedFrames[i]) {
50
+ const image = cache.getImage(imageIds[i]);
51
+ if (!image) {
52
+ continue;
53
+ }
54
+ const data = image.voxelManager.getScalarData();
55
+ const gl = model.context;
56
+ const dataType = data.constructor.name;
57
+ const [pixData] = publicAPI.updateArrayDataTypeForGL(dataType, [data]);
58
+ publicAPI.bind();
59
+ const zOffset = i;
60
+ gl.texSubImage3D(model.target, 0, 0, 0, zOffset, model.width, model.height, 1, model.format, model.openGLDataType, pixData);
61
+ publicAPI.deactivate();
62
+ model.updatedFrames[i] = null;
45
63
  }
46
64
  }
47
- model.updatedFrames = [];
48
65
  if (model.generateMipmap) {
49
66
  model.context.generateMipmap(model.target);
50
67
  }
51
68
  publicAPI.deactivate();
52
69
  return true;
53
- };
54
- model.fillSubImage3D = (data, frameIndex, bytesPerVoxel, TypedArrayConstructor) => {
55
- const buffer = data.buffer;
56
- const frameLength = model.width * model.height;
57
- const frameLengthInBytes = frameLength * model.components * bytesPerVoxel;
58
- const zOffset = frameIndex * frameLengthInBytes;
59
- const rowLength = model.width * model.components;
60
- const gl = model.context;
61
- const MAX_TEXTURE_SIZE = gl.getParameter(gl.MAX_TEXTURE_SIZE);
62
- let blockHeight = Math.floor((bytesPerVoxel * MAX_TEXTURE_SIZE) / model.width);
63
- blockHeight = Math.min(blockHeight, model.height);
64
- const { useNorm16Texture, preferSizeOverAccuracy } = getConfiguration().rendering;
65
- if (useNorm16Texture && !preferSizeOverAccuracy) {
66
- blockHeight = 1;
67
- }
68
- const multiRowBlockLength = rowLength * blockHeight;
69
- const multiRowBlockLengthInBytes = multiRowBlockLength * bytesPerVoxel;
70
- const normalBlocks = Math.floor(model.height / blockHeight);
71
- const lastBlockHeight = model.height % blockHeight;
72
- const multiRowLastBlockLength = rowLength * lastBlockHeight;
73
- for (let block = 0; block < normalBlocks; block++) {
74
- const yOffset = block * blockHeight;
75
- let dataView = new TypedArrayConstructor(buffer, zOffset + block * multiRowBlockLengthInBytes, multiRowBlockLength);
76
- if (model.useHalfFloat &&
77
- (TypedArrayConstructor === Uint16Array ||
78
- TypedArrayConstructor === Int16Array)) {
79
- for (let idx = 0; idx < dataView.length; idx++) {
80
- dataView[idx] = HalfFloat.toHalf(dataView[idx]);
81
- }
82
- if (TypedArrayConstructor === Int16Array) {
83
- dataView = new Uint16Array(dataView);
84
- }
70
+ }
71
+ function updateDynamicVolumeTexture() {
72
+ const volume = cache.getVolume(model.volumeId);
73
+ const imageIds = volume.getCurrentTimePointImageIds();
74
+ for (let i = 0; i < imageIds.length; i++) {
75
+ const imageId = imageIds[i];
76
+ const image = cache.getImage(imageId);
77
+ if (!image) {
78
+ continue;
85
79
  }
86
- gl.texSubImage3D(model.target, 0, 0, yOffset, frameIndex, model.width, blockHeight, 1, model.format, model.openGLDataType, dataView);
80
+ const data = image.voxelManager.getScalarData();
81
+ const gl = model.context;
82
+ const dataType = data.constructor.name;
83
+ const [pixData] = publicAPI.updateArrayDataTypeForGL(dataType, [data]);
84
+ publicAPI.bind();
85
+ let zOffset = i;
86
+ gl.texSubImage3D(model.target, 0, 0, 0, zOffset, model.width, model.height, 1, model.format, model.openGLDataType, pixData);
87
+ publicAPI.deactivate();
87
88
  }
88
- if (lastBlockHeight !== 0) {
89
- const yOffset = normalBlocks * blockHeight;
90
- const dataView = new TypedArrayConstructor(buffer, zOffset + normalBlocks * multiRowBlockLengthInBytes, multiRowLastBlockLength);
91
- gl.texSubImage3D(model.target, 0, 0, yOffset, frameIndex, model.width, lastBlockHeight, 1, model.format, model.openGLDataType, dataView);
89
+ if (model.generateMipmap) {
90
+ model.context.generateMipmap(model.target);
92
91
  }
92
+ publicAPI.deactivate();
93
+ return true;
94
+ }
95
+ publicAPI.hasUpdatedFrames = () => !model.updatedFrames.length || model.updatedFrames.some((frame) => frame);
96
+ publicAPI.getUpdatedFrames = () => model.updatedFrames;
97
+ publicAPI.setVolumeId = (volumeId) => {
98
+ model.volumeId = volumeId;
93
99
  };
94
- publicAPI.getTextureParameters = () => {
95
- return {
96
- width: model.width,
97
- height: model.height,
98
- depth: model.depth,
99
- numComps: model.inputNumComps,
100
- dataType: model.inputDataType,
101
- };
102
- };
103
- publicAPI.setUpdatedFrame = (frameIndex) => {
104
- model.updatedFrames[frameIndex] = true;
100
+ publicAPI.getVolumeId = () => model.volumeId;
101
+ publicAPI.setTextureParameters = ({ width, height, depth, numberOfComponents, dataType, }) => {
102
+ model.width ??= width;
103
+ model.height ??= height;
104
+ model.depth ??= depth;
105
+ model.inputNumComps ??= numberOfComponents;
106
+ model.inputDataType ??= dataType;
105
107
  };
108
+ publicAPI.getTextureParameters = () => ({
109
+ width: model.width,
110
+ height: model.height,
111
+ depth: model.depth,
112
+ numberOfComponents: model.inputNumComps,
113
+ dataType: model.inputDataType,
114
+ });
106
115
  }
107
116
  const DEFAULT_VALUES = {
108
117
  updatedFrames: [],
@@ -31,7 +31,7 @@ function vtkStreamingOpenGLViewNodeFactory(publicAPI, model) {
31
31
  let isObject = false;
32
32
  const keys = Object.keys(model.overrides);
33
33
  while (className && !isObject) {
34
- if (keys.indexOf(className) !== -1) {
34
+ if (keys.includes(className)) {
35
35
  isObject = true;
36
36
  }
37
37
  else {
@@ -2,8 +2,10 @@ import macro from '@kitware/vtk.js/macros';
2
2
  import vtkOpenGLVolumeMapper from '@kitware/vtk.js/Rendering/OpenGL/VolumeMapper';
3
3
  import { Filter } from '@kitware/vtk.js/Rendering/OpenGL/Texture/Constants';
4
4
  import { VtkDataTypes } from '@kitware/vtk.js/Common/Core/DataArray/Constants';
5
+ import { getTransferFunctionHash } from '@kitware/vtk.js/Rendering/OpenGL/RenderWindow/resourceSharingHelper';
5
6
  import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray';
6
7
  import { Representation } from '@kitware/vtk.js/Rendering/Core/Property/Constants';
8
+ import vtkOpenGLTexture from '@kitware/vtk.js/Rendering/OpenGL/Texture';
7
9
  function vtkStreamingOpenGLVolumeMapper(publicAPI, model) {
8
10
  model.classHierarchy.push('vtkStreamingOpenGLVolumeMapper');
9
11
  publicAPI.buildBufferObjects = (ren, actor) => {
@@ -11,10 +13,6 @@ function vtkStreamingOpenGLVolumeMapper(publicAPI, model) {
11
13
  if (!image) {
12
14
  return;
13
15
  }
14
- const scalars = image.getPointData() && image.getPointData().getScalars();
15
- if (!scalars) {
16
- return;
17
- }
18
16
  const vprop = actor.getProperty();
19
17
  if (!model.jitterTexture.getHandle()) {
20
18
  const oTable = new Uint8Array(32 * 32);
@@ -25,18 +23,22 @@ function vtkStreamingOpenGLVolumeMapper(publicAPI, model) {
25
23
  model.jitterTexture.setMagnificationFilter(Filter.LINEAR);
26
24
  model.jitterTexture.create2DFromRaw(32, 32, 1, VtkDataTypes.UNSIGNED_CHAR, oTable);
27
25
  }
28
- const numComp = scalars.getNumberOfComponents();
29
- const iComps = vprop.getIndependentComponents();
30
- const numIComps = iComps ? numComp : 1;
31
- let toString = `${vprop.getMTime()}`;
32
- if (model.opacityTextureString !== toString) {
26
+ const { numberOfComponents: numIComps } = image.get('numberOfComponents');
27
+ const useIndependentComps = publicAPI.useIndependentComponents(vprop);
28
+ const scalarOpacityFunc = vprop.getScalarOpacity();
29
+ const opTex = model._openGLRenderWindow.getGraphicsResourceForObject(scalarOpacityFunc);
30
+ let toString = getTransferFunctionHash(scalarOpacityFunc, useIndependentComps, numIComps);
31
+ const reBuildOp = !opTex?.oglObject || opTex.hash !== toString;
32
+ if (reBuildOp) {
33
+ model.opacityTexture = vtkOpenGLTexture.newInstance();
34
+ model.opacityTexture.setOpenGLRenderWindow(model._openGLRenderWindow);
33
35
  const oWidth = 1024;
34
36
  const oSize = oWidth * 2 * numIComps;
35
37
  const ofTable = new Float32Array(oSize);
36
38
  const tmpTable = new Float32Array(oWidth);
37
39
  for (let c = 0; c < numIComps; ++c) {
38
40
  const ofun = vprop.getScalarOpacity(c);
39
- const opacityFactor = model.renderable.getSampleDistance() /
41
+ const opacityFactor = publicAPI.getCurrentSampleDistance(ren) /
40
42
  vprop.getScalarOpacityUnitDistance(c);
41
43
  const oRange = ofun.getRange();
42
44
  ofun.getTable(oRange[0], oRange[1], oWidth, tmpTable, 1);
@@ -46,7 +48,7 @@ function vtkStreamingOpenGLVolumeMapper(publicAPI, model) {
46
48
  ofTable[c * oWidth * 2 + i + oWidth] = ofTable[c * oWidth * 2 + i];
47
49
  }
48
50
  }
49
- model.opacityTexture.releaseGraphicsResources(model._openGLRenderWindow);
51
+ model.opacityTexture.resetFormatAndType();
50
52
  model.opacityTexture.setMinificationFilter(Filter.LINEAR);
51
53
  model.opacityTexture.setMagnificationFilter(Filter.LINEAR);
52
54
  if (model._openGLRenderWindow.getWebgl2() ||
@@ -55,19 +57,34 @@ function vtkStreamingOpenGLVolumeMapper(publicAPI, model) {
55
57
  model.opacityTexture.create2DFromRaw(oWidth, 2 * numIComps, 1, VtkDataTypes.FLOAT, ofTable);
56
58
  }
57
59
  else {
58
- const oTable = new Uint8Array(oSize);
60
+ const oTable = new Uint8ClampedArray(oSize);
59
61
  for (let i = 0; i < oSize; ++i) {
60
62
  oTable[i] = 255.0 * ofTable[i];
61
63
  }
62
64
  model.opacityTexture.create2DFromRaw(oWidth, 2 * numIComps, 1, VtkDataTypes.UNSIGNED_CHAR, oTable);
63
65
  }
64
- model.opacityTextureString = toString;
66
+ if (scalarOpacityFunc) {
67
+ model._openGLRenderWindow.setGraphicsResourceForObject(scalarOpacityFunc, model.opacityTexture, toString);
68
+ if (scalarOpacityFunc !== model._scalarOpacityFunc) {
69
+ model._openGLRenderWindow.registerGraphicsResourceUser(scalarOpacityFunc, publicAPI);
70
+ model._openGLRenderWindow.unregisterGraphicsResourceUser(model._scalarOpacityFunc, publicAPI);
71
+ }
72
+ model._scalarOpacityFunc = scalarOpacityFunc;
73
+ }
74
+ }
75
+ else {
76
+ model.opacityTexture = opTex.oglObject;
65
77
  }
66
- toString = `${vprop.getMTime()}`;
67
- if (model.colorTextureString !== toString) {
78
+ const colorTransferFunc = vprop.getRGBTransferFunction();
79
+ toString = getTransferFunctionHash(colorTransferFunc, useIndependentComps, numIComps);
80
+ const cTex = model._openGLRenderWindow.getGraphicsResourceForObject(colorTransferFunc);
81
+ const reBuildC = !cTex?.oglObject?.getHandle() || cTex?.hash !== toString;
82
+ if (reBuildC) {
83
+ model.colorTexture = vtkOpenGLTexture.newInstance();
84
+ model.colorTexture.setOpenGLRenderWindow(model._openGLRenderWindow);
68
85
  const cWidth = 1024;
69
86
  const cSize = cWidth * 2 * numIComps * 3;
70
- const cTable = new Uint8Array(cSize);
87
+ const cTable = new Uint8ClampedArray(cSize);
71
88
  const tmpTable = new Float32Array(cWidth * 3);
72
89
  for (let c = 0; c < numIComps; ++c) {
73
90
  const cfun = vprop.getRGBTransferFunction(c);
@@ -78,39 +95,57 @@ function vtkStreamingOpenGLVolumeMapper(publicAPI, model) {
78
95
  cTable[c * cWidth * 6 + i + cWidth * 3] = 255.0 * tmpTable[i];
79
96
  }
80
97
  }
81
- model.colorTexture.releaseGraphicsResources(model._openGLRenderWindow);
98
+ model.colorTexture.resetFormatAndType();
82
99
  model.colorTexture.setMinificationFilter(Filter.LINEAR);
83
100
  model.colorTexture.setMagnificationFilter(Filter.LINEAR);
84
101
  model.colorTexture.create2DFromRaw(cWidth, 2 * numIComps, 3, VtkDataTypes.UNSIGNED_CHAR, cTable);
85
- model.colorTextureString = toString;
102
+ if (colorTransferFunc) {
103
+ model._openGLRenderWindow.setGraphicsResourceForObject(colorTransferFunc, model.colorTexture, toString);
104
+ if (colorTransferFunc !== model._colorTransferFunc) {
105
+ model._openGLRenderWindow.registerGraphicsResourceUser(colorTransferFunc, publicAPI);
106
+ model._openGLRenderWindow.unregisterGraphicsResourceUser(model._colorTransferFunc, publicAPI);
107
+ }
108
+ model._colorTransferFunc = colorTransferFunc;
109
+ }
110
+ }
111
+ else {
112
+ model.colorTexture = cTex.oglObject;
86
113
  }
87
114
  publicAPI.updateLabelOutlineThicknessTexture(actor);
88
- toString = `${image.getMTime()}`;
115
+ toString = `${image.getMTime()}-${model.scalarTexture.getMTime()}`;
89
116
  if (model.scalarTextureString !== toString) {
90
117
  const dims = image.getDimensions();
118
+ model.scalarTexture.setOpenGLRenderWindow(model._openGLRenderWindow);
119
+ model.scalarTexture.enableUseHalfFloat(false);
91
120
  const previousTextureParameters = model.scalarTexture.getTextureParameters();
92
- const dataType = image.getPointData().getScalars().getDataType();
93
- const data = image.getPointData().getScalars().getData();
121
+ const dataType = image.get('dataType').dataType;
94
122
  let shouldReset = true;
95
- if (previousTextureParameters.dataType &&
96
- previousTextureParameters.dataType === dataType) {
97
- const previousTextureSize = previousTextureParameters.width *
98
- previousTextureParameters.height *
99
- previousTextureParameters.depth *
100
- previousTextureParameters.numComps;
101
- if (data.length === previousTextureSize) {
102
- shouldReset = false;
123
+ if (previousTextureParameters?.dataType === dataType) {
124
+ if (previousTextureParameters?.width === dims[0]) {
125
+ if (previousTextureParameters?.height === dims[1]) {
126
+ if (previousTextureParameters?.depth === dims[2]) {
127
+ shouldReset = false;
128
+ }
129
+ }
103
130
  }
104
131
  }
105
132
  if (shouldReset) {
106
- model.scalarTexture.setOglNorm16Ext(model.context.getExtension('EXT_texture_norm16'));
107
- model.scalarTexture.releaseGraphicsResources(model._openGLRenderWindow);
133
+ const norm16Ext = model.context.getExtension('EXT_texture_norm16');
134
+ model.scalarTexture.setOglNorm16Ext(norm16Ext);
108
135
  model.scalarTexture.resetFormatAndType();
109
- model.scalarTexture.create3DFilterableFromRaw(dims[0], dims[1], dims[2], numComp, scalars.getDataType(), scalars.getData(), model.renderable.getPreferSizeOverAccuracy());
136
+ model.scalarTexture.setTextureParameters({
137
+ width: dims[0],
138
+ height: dims[1],
139
+ depth: dims[2],
140
+ numberOfComponents: numIComps,
141
+ dataType,
142
+ });
143
+ model.scalarTexture.create3DFromRaw(dims[0], dims[1], dims[2], numIComps, dataType, null);
144
+ model.scalarTexture.update3DFromRaw();
110
145
  }
111
146
  else {
112
147
  model.scalarTexture.deactivate();
113
- model.scalarTexture.update3DFromRaw(data);
148
+ model.scalarTexture.update3DFromRaw();
114
149
  }
115
150
  model.scalarTextureString = toString;
116
151
  }
@@ -146,16 +181,22 @@ function vtkStreamingOpenGLVolumeMapper(publicAPI, model) {
146
181
  }
147
182
  model.VBOBuildTime.modified();
148
183
  };
149
- publicAPI.getRenderTargetSize = () => {
150
- if (model._useSmallViewport) {
151
- return [model._smallViewportWidth, model._smallViewportHeight];
184
+ publicAPI.getNeedToRebuildBufferObjects = (ren, actor) => {
185
+ if (model.VBOBuildTime.getMTime() < publicAPI.getMTime() ||
186
+ model.VBOBuildTime.getMTime() < actor.getMTime() ||
187
+ model.VBOBuildTime.getMTime() < model.renderable.getMTime() ||
188
+ model.VBOBuildTime.getMTime() < actor.getProperty().getMTime() ||
189
+ model.VBOBuildTime.getMTime() < model.currentInput.getMTime() ||
190
+ model.VBOBuildTime.getMTime() < model.scalarTexture?.getMTime() ||
191
+ model.VBOBuildTime.getMTime() < model.colorTexture?.getMTime() ||
192
+ model.VBOBuildTime.getMTime() <
193
+ model.labelOutlineThicknessTexture?.getMTime() ||
194
+ !model.scalarTexture?.getHandle() ||
195
+ !model.colorTexture?.getHandle() ||
196
+ !model.labelOutlineThicknessTexture?.getHandle()) {
197
+ return true;
152
198
  }
153
- const { usize, vsize } = model._openGLRenderer.getTiledSizeAndOrigin();
154
- return [usize, vsize];
155
- };
156
- publicAPI.getRenderTargetOffset = () => {
157
- const { lowerLeftU, lowerLeftV } = model._openGLRenderer.getTiledSizeAndOrigin();
158
- return [lowerLeftU, lowerLeftV];
199
+ return false;
159
200
  };
160
201
  }
161
202
  const DEFAULT_VALUES = {};
@@ -8,7 +8,7 @@ export default class Settings {
8
8
  import(root: Record<string, unknown>): void;
9
9
  dump(): Record<string, unknown>;
10
10
  static assert(subject: Settings): Settings;
11
- static getDefaultSettings(subfield?: any): Settings | any;
11
+ static getDefaultSettings(subfield?: any): Settings | unknown;
12
12
  static getRuntimeSettings(): Settings;
13
13
  static getObjectSettings(subject: unknown, from?: unknown): Settings;
14
14
  static extendRuntimeSettings(): Settings;
@@ -1,48 +1,44 @@
1
- import { ICache, IImage, IGeometry, IImageLoadObject, IVolumeLoadObject, IGeometryLoadObject, ICachedImage, IImageVolume } from '../types';
1
+ import type { ICache, IImage, IGeometry, IImageLoadObject, IVolumeLoadObject, IGeometryLoadObject, ICachedImage, IImageVolume } from '../types';
2
2
  declare class Cache implements ICache {
3
3
  private readonly _imageCache;
4
4
  private readonly _volumeCache;
5
5
  private readonly _geometryCache;
6
6
  private _imageCacheSize;
7
- private _volumeCacheSize;
8
7
  private _maxCacheSize;
9
- private _maxInstanceSize;
10
- constructor();
11
8
  setMaxCacheSize: (newMaxCacheSize: number) => void;
12
- isCacheable: (byteLength: number) => boolean;
9
+ isCacheable: (byteLength: any) => boolean;
13
10
  getMaxCacheSize: () => number;
14
- getMaxInstanceSize: () => number;
15
11
  getCacheSize: () => number;
16
12
  getBytesAvailable(): number;
17
13
  private _decacheImage;
18
14
  private _decacheVolume;
19
15
  purgeCache: () => void;
20
16
  purgeVolumeCache: () => void;
21
- decacheIfNecessaryUntilBytesAvailable(numBytes: number, volumeImageIds?: Array<string>): number | undefined;
17
+ decacheIfNecessaryUntilBytesAvailable(numBytes: number, volumeImageIds?: string[]): number | undefined;
22
18
  private _putImageCommon;
23
- putImageLoadObject(imageId: string, imageLoadObject: IImageLoadObject): Promise<any>;
19
+ putImageLoadObject(imageId: string, imageLoadObject: IImageLoadObject): Promise<void>;
24
20
  putImageSync(imageId: string, image: IImage): void;
25
- getImageLoadObject(imageId: string): IImageLoadObject;
21
+ getImageLoadObject(imageId: string): IImageLoadObject | undefined;
26
22
  isLoaded(imageId: string): boolean;
27
23
  getVolumeContainingImageId(imageId: string): {
28
24
  volume: IImageVolume;
29
25
  imageIdIndex: number;
30
- };
26
+ } | undefined;
31
27
  getCachedImageBasedOnImageURI(imageId: string): ICachedImage | undefined;
32
- putVolumeLoadObject(volumeId: string, volumeLoadObject: IVolumeLoadObject): Promise<any>;
33
- getVolumeLoadObject: (volumeId: string) => IVolumeLoadObject;
34
- getGeometry: (geometryId: string) => IGeometry;
35
- getImage: (imageId: string) => IImage;
36
- getVolume: (volumeId: string) => IImageVolume;
37
- getVolumes: () => Array<IImageVolume>;
38
- filterVolumesByReferenceId: (volumeId: string) => Array<IImageVolume>;
28
+ private _putVolumeCommon;
29
+ putVolumeSync(volumeId: string, volume: IImageVolume): void;
30
+ putVolumeLoadObject(volumeId: string, volumeLoadObject: IVolumeLoadObject): Promise<void>;
31
+ getVolumeLoadObject: (volumeId: string) => IVolumeLoadObject | undefined;
32
+ getGeometry: (geometryId: string) => IGeometry | undefined;
33
+ getImage: (imageId: string) => IImage | undefined;
34
+ getVolume: (volumeId: string) => IImageVolume | undefined;
35
+ getVolumes: () => IImageVolume[];
36
+ filterVolumesByReferenceId: (volumeId: string) => IImageVolume[];
39
37
  removeImageLoadObject: (imageId: string) => void;
40
38
  removeVolumeLoadObject: (volumeId: string) => void;
41
39
  putGeometryLoadObject: (geometryId: string, geometryLoadObject: IGeometryLoadObject) => Promise<void>;
42
40
  incrementImageCacheSize: (increment: number) => void;
43
- incrementVolumeCacheSize: (increment: number) => void;
44
41
  decrementImageCacheSize: (decrement: number) => void;
45
- decrementVolumeCacheSize: (decrement: number) => void;
46
42
  }
47
43
  declare const cache: Cache;
48
44
  export default cache;