@cornerstonejs/core 4.22.13 → 5.0.0

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 (404) hide show
  1. package/dist/esm/RenderingEngine/BaseRenderingEngine.d.ts +4 -5
  2. package/dist/esm/RenderingEngine/BaseRenderingEngine.js +48 -61
  3. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +10 -17
  4. package/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.d.ts +1 -0
  5. package/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.js +3 -0
  6. package/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.d.ts +10 -2
  7. package/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.js +64 -6
  8. package/dist/esm/RenderingEngine/CanvasActor/index.d.ts +4 -0
  9. package/dist/esm/RenderingEngine/CanvasActor/index.js +59 -48
  10. package/dist/esm/RenderingEngine/ContextPoolRenderingEngine.d.ts +3 -4
  11. package/dist/esm/RenderingEngine/ContextPoolRenderingEngine.js +52 -34
  12. package/dist/esm/RenderingEngine/ECGViewport.d.ts +1 -1
  13. package/dist/esm/RenderingEngine/ECGViewport.js +33 -160
  14. package/dist/esm/RenderingEngine/GenericViewport/DefaultRenderPathResolver.d.ts +10 -0
  15. package/dist/esm/RenderingEngine/GenericViewport/DefaultRenderPathResolver.js +25 -0
  16. package/dist/esm/RenderingEngine/GenericViewport/ECG/CanvasECGRenderPath.d.ts +17 -0
  17. package/dist/esm/RenderingEngine/GenericViewport/ECG/CanvasECGRenderPath.js +144 -0
  18. package/dist/esm/RenderingEngine/GenericViewport/ECG/DefaultECGDataProvider.d.ts +5 -0
  19. package/dist/esm/RenderingEngine/GenericViewport/ECG/DefaultECGDataProvider.js +13 -0
  20. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGProjectionTypes.d.ts +42 -0
  21. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGProjectionTypes.js +2 -0
  22. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGRenderPathResolver.d.ts +4 -0
  23. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGRenderPathResolver.js +8 -0
  24. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGResolvedView.d.ts +27 -0
  25. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGResolvedView.js +121 -0
  26. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewport.d.ts +55 -0
  27. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewport.js +289 -0
  28. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportLegacyAdapter.d.ts +13 -0
  29. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportLegacyAdapter.js +70 -0
  30. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportTypes.d.ts +69 -0
  31. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportTypes.js +0 -0
  32. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionAdapter.d.ts +8 -0
  33. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionAdapter.js +12 -0
  34. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionPresentation.d.ts +7 -0
  35. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionPresentation.js +52 -0
  36. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionSnapshot.d.ts +2 -0
  37. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionSnapshot.js +94 -0
  38. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgViewportCamera.d.ts +27 -0
  39. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgViewportCamera.js +82 -0
  40. package/dist/esm/RenderingEngine/GenericViewport/ECG/index.d.ts +10 -0
  41. package/dist/esm/RenderingEngine/GenericViewport/ECG/index.js +8 -0
  42. package/dist/esm/RenderingEngine/GenericViewport/GenericViewport.d.ts +82 -0
  43. package/dist/esm/RenderingEngine/GenericViewport/GenericViewport.js +369 -0
  44. package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuImageSliceRenderPath.d.ts +24 -0
  45. package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuImageSliceRenderPath.js +456 -0
  46. package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuVolumeSliceRenderPath.d.ts +25 -0
  47. package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuVolumeSliceRenderPath.js +514 -0
  48. package/dist/esm/RenderingEngine/GenericViewport/Planar/DefaultPlanarDataProvider.d.ts +6 -0
  49. package/dist/esm/RenderingEngine/GenericViewport/Planar/DefaultPlanarDataProvider.js +80 -0
  50. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUScalarViewportSampler.d.ts +47 -0
  51. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUScalarViewportSampler.js +439 -0
  52. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUVolumeSampler.d.ts +98 -0
  53. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUVolumeSampler.js +686 -0
  54. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarLegacyCompatibilityController.d.ts +81 -0
  55. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarLegacyCompatibilityController.js +526 -0
  56. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarMountedData.d.ts +34 -0
  57. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarMountedData.js +111 -0
  58. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarProjectionTypes.d.ts +58 -0
  59. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarProjectionTypes.js +2 -0
  60. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathDecisionService.d.ts +28 -0
  61. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathDecisionService.js +145 -0
  62. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathResolver.d.ts +4 -0
  63. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathResolver.js +16 -0
  64. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarResolvedView.d.ts +91 -0
  65. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarResolvedView.js +305 -0
  66. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewReferenceController.d.ts +72 -0
  67. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewReferenceController.js +406 -0
  68. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewport.d.ts +187 -0
  69. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewport.js +1175 -0
  70. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportLegacyAdapter.d.ts +44 -0
  71. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportLegacyAdapter.js +279 -0
  72. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportTypes.d.ts +151 -0
  73. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportTypes.js +0 -0
  74. package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkImageMapperRenderPath.d.ts +21 -0
  75. package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkImageMapperRenderPath.js +259 -0
  76. package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkVolumeSliceRenderPath.d.ts +23 -0
  77. package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkVolumeSliceRenderPath.js +289 -0
  78. package/dist/esm/RenderingEngine/GenericViewport/Planar/buildPlanarActorEntry.d.ts +10 -0
  79. package/dist/esm/RenderingEngine/GenericViewport/Planar/buildPlanarActorEntry.js +54 -0
  80. package/dist/esm/RenderingEngine/GenericViewport/Planar/index.d.ts +23 -0
  81. package/dist/esm/RenderingEngine/GenericViewport/Planar/index.js +20 -0
  82. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarActorCompatibility.d.ts +4 -0
  83. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarActorCompatibility.js +42 -0
  84. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarAdapterCoordinateTransforms.d.ts +44 -0
  85. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarAdapterCoordinateTransforms.js +129 -0
  86. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCPUVolumeSamplingUtils.d.ts +11 -0
  87. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCPUVolumeSamplingUtils.js +54 -0
  88. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCameraScale.d.ts +10 -0
  89. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCameraScale.js +35 -0
  90. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuImageTransforms.d.ts +3 -0
  91. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuImageTransforms.js +35 -0
  92. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuViewportMath.d.ts +10 -0
  93. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuViewportMath.js +35 -0
  94. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarImageEvents.d.ts +22 -0
  95. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarImageEvents.js +28 -0
  96. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarLegacyCompatibility.d.ts +13 -0
  97. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarLegacyCompatibility.js +136 -0
  98. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarMath.d.ts +3 -0
  99. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarMath.js +15 -0
  100. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarOrientationVectors.d.ts +12 -0
  101. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarOrientationVectors.js +37 -0
  102. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionAdapter.d.ts +7 -0
  103. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionAdapter.js +28 -0
  104. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionFallback.d.ts +4 -0
  105. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionFallback.js +25 -0
  106. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionPresentation.d.ts +5 -0
  107. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionPresentation.js +95 -0
  108. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionSnapshot.d.ts +6 -0
  109. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionSnapshot.js +126 -0
  110. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderCamera.d.ts +46 -0
  111. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderCamera.js +332 -0
  112. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathProjection.d.ts +51 -0
  113. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathProjection.js +96 -0
  114. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathSelector.d.ts +4 -0
  115. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathSelector.js +12 -0
  116. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRuntimeTypes.d.ts +86 -0
  117. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRuntimeTypes.js +0 -0
  118. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarSliceBasis.d.ts +51 -0
  119. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarSliceBasis.js +330 -0
  120. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewPresentation.d.ts +16 -0
  121. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewPresentation.js +25 -0
  122. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewReference.d.ts +46 -0
  123. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewReference.js +243 -0
  124. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewState.d.ts +5 -0
  125. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewState.js +59 -0
  126. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumePresentation.d.ts +10 -0
  127. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumePresentation.js +223 -0
  128. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumeSliceBlendMode.d.ts +5 -0
  129. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumeSliceBlendMode.js +36 -0
  130. package/dist/esm/RenderingEngine/GenericViewport/ResolvedViewportView.d.ts +12 -0
  131. package/dist/esm/RenderingEngine/GenericViewport/ResolvedViewportView.js +10 -0
  132. package/dist/esm/RenderingEngine/GenericViewport/Video/DefaultVideoDataProvider.d.ts +5 -0
  133. package/dist/esm/RenderingEngine/GenericViewport/Video/DefaultVideoDataProvider.js +18 -0
  134. package/dist/esm/RenderingEngine/GenericViewport/Video/HtmlVideoRenderPath.d.ts +19 -0
  135. package/dist/esm/RenderingEngine/GenericViewport/Video/HtmlVideoRenderPath.js +141 -0
  136. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoProjectionTypes.d.ts +45 -0
  137. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoProjectionTypes.js +2 -0
  138. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoRenderPathResolver.d.ts +4 -0
  139. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoRenderPathResolver.js +8 -0
  140. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoResolvedView.d.ts +29 -0
  141. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoResolvedView.js +108 -0
  142. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewport.d.ts +59 -0
  143. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewport.js +458 -0
  144. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportLegacyAdapter.d.ts +15 -0
  145. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportLegacyAdapter.js +114 -0
  146. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportTypes.d.ts +45 -0
  147. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportTypes.js +0 -0
  148. package/dist/esm/RenderingEngine/GenericViewport/Video/index.d.ts +10 -0
  149. package/dist/esm/RenderingEngine/GenericViewport/Video/index.js +8 -0
  150. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionAdapter.d.ts +8 -0
  151. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionAdapter.js +12 -0
  152. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionPresentation.d.ts +7 -0
  153. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionPresentation.js +66 -0
  154. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionSnapshot.d.ts +2 -0
  155. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionSnapshot.js +86 -0
  156. package/dist/esm/RenderingEngine/GenericViewport/Video/videoViewportCamera.d.ts +30 -0
  157. package/dist/esm/RenderingEngine/GenericViewport/Video/videoViewportCamera.js +105 -0
  158. package/dist/esm/RenderingEngine/GenericViewport/ViewportArchitectureTypes.d.ts +126 -0
  159. package/dist/esm/RenderingEngine/GenericViewport/ViewportArchitectureTypes.js +20 -0
  160. package/dist/esm/RenderingEngine/GenericViewport/ViewportCameraTypes.d.ts +12 -0
  161. package/dist/esm/RenderingEngine/GenericViewport/ViewportCameraTypes.js +0 -0
  162. package/dist/esm/RenderingEngine/GenericViewport/ViewportProjectionTypes.d.ts +101 -0
  163. package/dist/esm/RenderingEngine/GenericViewport/ViewportProjectionTypes.js +0 -0
  164. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/DefaultVolume3DDataProvider.d.ts +8 -0
  165. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/DefaultVolume3DDataProvider.js +58 -0
  166. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DProjectionTypes.d.ts +35 -0
  167. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DProjectionTypes.js +2 -0
  168. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DRenderPathResolver.d.ts +4 -0
  169. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DRenderPathResolver.js +9 -0
  170. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DResolvedView.d.ts +18 -0
  171. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DResolvedView.js +42 -0
  172. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VolumeViewport3DLegacyAdapter.d.ts +39 -0
  173. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VolumeViewport3DLegacyAdapter.js +296 -0
  174. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkGeometry3DRenderPath.d.ts +22 -0
  175. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkGeometry3DRenderPath.js +156 -0
  176. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkVolume3DRenderPath.d.ts +23 -0
  177. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkVolume3DRenderPath.js +205 -0
  178. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/applyVolume3DCamera.d.ts +4 -0
  179. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/applyVolume3DCamera.js +33 -0
  180. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/index.d.ts +10 -0
  181. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/index.js +8 -0
  182. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3D.d.ts +60 -0
  183. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3D.js +399 -0
  184. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3DTypes.d.ts +88 -0
  185. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3DTypes.js +0 -0
  186. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionAdapter.d.ts +7 -0
  187. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionAdapter.js +27 -0
  188. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionCamera.d.ts +12 -0
  189. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionCamera.js +35 -0
  190. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionPresentation.d.ts +4 -0
  191. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionPresentation.js +22 -0
  192. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionSnapshot.d.ts +2 -0
  193. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionSnapshot.js +52 -0
  194. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/vtkVolume3DInitialCamera.d.ts +3 -0
  195. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/vtkVolume3DInitialCamera.js +110 -0
  196. package/dist/esm/RenderingEngine/GenericViewport/WSI/DefaultWSIDataProvider.d.ts +6 -0
  197. package/dist/esm/RenderingEngine/GenericViewport/WSI/DefaultWSIDataProvider.js +35 -0
  198. package/dist/esm/RenderingEngine/GenericViewport/WSI/DicomMicroscopyRenderPath.d.ts +16 -0
  199. package/dist/esm/RenderingEngine/GenericViewport/WSI/DicomMicroscopyRenderPath.js +125 -0
  200. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIProjectionTypes.d.ts +40 -0
  201. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIProjectionTypes.js +2 -0
  202. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIRenderPathResolver.d.ts +4 -0
  203. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIRenderPathResolver.js +8 -0
  204. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIResolvedView.d.ts +26 -0
  205. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIResolvedView.js +104 -0
  206. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewport.d.ts +69 -0
  207. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewport.js +392 -0
  208. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportLegacyAdapter.d.ts +22 -0
  209. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportLegacyAdapter.js +144 -0
  210. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportTypes.d.ts +58 -0
  211. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportTypes.js +0 -0
  212. package/dist/esm/RenderingEngine/GenericViewport/WSI/index.d.ts +10 -0
  213. package/dist/esm/RenderingEngine/GenericViewport/WSI/index.js +8 -0
  214. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionAdapter.d.ts +8 -0
  215. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionAdapter.js +12 -0
  216. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionPresentation.d.ts +7 -0
  217. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionPresentation.js +47 -0
  218. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionSnapshot.d.ts +2 -0
  219. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionSnapshot.js +90 -0
  220. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiTransformUtils.d.ts +29 -0
  221. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiTransformUtils.js +128 -0
  222. package/dist/esm/RenderingEngine/GenericViewport/genericViewportDataSetAccess.d.ts +35 -0
  223. package/dist/esm/RenderingEngine/GenericViewport/genericViewportDataSetAccess.js +87 -0
  224. package/dist/esm/RenderingEngine/GenericViewport/genericViewportReferenceCompatibility.d.ts +18 -0
  225. package/dist/esm/RenderingEngine/GenericViewport/genericViewportReferenceCompatibility.js +238 -0
  226. package/dist/esm/RenderingEngine/GenericViewport/index.d.ts +23 -0
  227. package/dist/esm/RenderingEngine/GenericViewport/index.js +14 -0
  228. package/dist/esm/RenderingEngine/GenericViewport/setVtkCameraClippingRange.d.ts +2 -0
  229. package/dist/esm/RenderingEngine/GenericViewport/setVtkCameraClippingRange.js +8 -0
  230. package/dist/esm/RenderingEngine/GenericViewport/viewportProjection.d.ts +98 -0
  231. package/dist/esm/RenderingEngine/GenericViewport/viewportProjection.js +81 -0
  232. package/dist/esm/RenderingEngine/RenderingEngine.d.ts +3 -5
  233. package/dist/esm/RenderingEngine/RenderingEngine.js +3 -9
  234. package/dist/esm/RenderingEngine/StackViewport.d.ts +0 -1
  235. package/dist/esm/RenderingEngine/StackViewport.js +37 -45
  236. package/dist/esm/RenderingEngine/TiledRenderingEngine.d.ts +1 -0
  237. package/dist/esm/RenderingEngine/TiledRenderingEngine.js +23 -20
  238. package/dist/esm/RenderingEngine/VideoViewport.d.ts +5 -13
  239. package/dist/esm/RenderingEngine/VideoViewport.js +32 -68
  240. package/dist/esm/RenderingEngine/Viewport.d.ts +14 -5
  241. package/dist/esm/RenderingEngine/Viewport.js +60 -24
  242. package/dist/esm/RenderingEngine/VolumeViewport.js +20 -7
  243. package/dist/esm/RenderingEngine/WSIViewport.d.ts +12 -12
  244. package/dist/esm/RenderingEngine/WSIViewport.js +28 -101
  245. package/dist/esm/RenderingEngine/helpers/addVolumesToViewports.js +6 -8
  246. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.d.ts +4 -1
  247. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.js +157 -0
  248. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.d.ts +2 -3
  249. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.js +2 -3
  250. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/calculateTransform.js +13 -3
  251. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js +13 -3
  252. package/dist/esm/RenderingEngine/helpers/createVolumeSliceActor.d.ts +14 -0
  253. package/dist/esm/RenderingEngine/helpers/createVolumeSliceActor.js +69 -0
  254. package/dist/esm/RenderingEngine/helpers/getCameraVectors.d.ts +2 -1
  255. package/dist/esm/RenderingEngine/helpers/getCameraVectors.js +1 -1
  256. package/dist/esm/RenderingEngine/helpers/planarImageRendering.d.ts +51 -0
  257. package/dist/esm/RenderingEngine/helpers/planarImageRendering.js +116 -0
  258. package/dist/esm/RenderingEngine/helpers/planarVolumeRendering.d.ts +22 -0
  259. package/dist/esm/RenderingEngine/helpers/planarVolumeRendering.js +28 -0
  260. package/dist/esm/RenderingEngine/helpers/resolveViewportVolumeId.d.ts +1 -0
  261. package/dist/esm/RenderingEngine/helpers/resolveViewportVolumeId.js +19 -0
  262. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +3 -2
  263. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +46 -15
  264. package/dist/esm/RenderingEngine/helpers/setVolumesForViewports.js +6 -9
  265. package/dist/esm/RenderingEngine/helpers/stats/RenderModesPanel.d.ts +19 -0
  266. package/dist/esm/RenderingEngine/helpers/stats/RenderModesPanel.js +228 -0
  267. package/dist/esm/RenderingEngine/helpers/stats/StatsOverlay.d.ts +22 -3
  268. package/dist/esm/RenderingEngine/helpers/stats/StatsOverlay.js +192 -18
  269. package/dist/esm/RenderingEngine/helpers/stats/constants.d.ts +13 -1
  270. package/dist/esm/RenderingEngine/helpers/stats/constants.js +14 -1
  271. package/dist/esm/RenderingEngine/helpers/stats/enums.d.ts +2 -1
  272. package/dist/esm/RenderingEngine/helpers/stats/enums.js +1 -0
  273. package/dist/esm/RenderingEngine/helpers/stats/types.d.ts +1 -1
  274. package/dist/esm/RenderingEngine/helpers/supportsVolumeCompatibilityApi.d.ts +4 -0
  275. package/dist/esm/RenderingEngine/helpers/supportsVolumeCompatibilityApi.js +7 -0
  276. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +27 -4
  277. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js +126 -11
  278. package/dist/esm/RenderingEngine/helpers/viewportTypeUsesCustomRenderingPipeline.d.ts +3 -1
  279. package/dist/esm/RenderingEngine/helpers/viewportTypeUsesCustomRenderingPipeline.js +9 -2
  280. package/dist/esm/RenderingEngine/helpers/vtkCanvasCoordinateTransforms.d.ts +12 -0
  281. package/dist/esm/RenderingEngine/helpers/vtkCanvasCoordinateTransforms.js +57 -0
  282. package/dist/esm/RenderingEngine/index.d.ts +69 -1
  283. package/dist/esm/RenderingEngine/index.js +40 -1
  284. package/dist/esm/RenderingEngine/vtkClasses/index.d.ts +3 -1
  285. package/dist/esm/RenderingEngine/vtkClasses/index.js +3 -1
  286. package/dist/esm/RenderingEngine/vtkClasses/vtkSharedImageResliceMapper.d.ts +7 -0
  287. package/dist/esm/RenderingEngine/vtkClasses/vtkSharedImageResliceMapper.js +21 -0
  288. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLImageResliceMapper.d.ts +7 -0
  289. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLImageResliceMapper.js +420 -0
  290. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLViewNodeFactory.js +7 -0
  291. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +9 -3
  292. package/dist/esm/cache/cache.d.ts +1 -1
  293. package/dist/esm/cache/cache.js +4 -1
  294. package/dist/esm/cache/classes/BaseStreamingImageVolume.js +6 -6
  295. package/dist/esm/cache/classes/ImageVolume.js +5 -0
  296. package/dist/esm/enums/CalibrationTypes.d.ts +4 -12
  297. package/dist/esm/enums/CalibrationTypes.js +3 -13
  298. package/dist/esm/enums/MetadataModules.d.ts +3 -38
  299. package/dist/esm/enums/MetadataModules.js +2 -39
  300. package/dist/esm/enums/ViewportType.d.ts +6 -1
  301. package/dist/esm/enums/ViewportType.js +5 -0
  302. package/dist/esm/enums/ViewportTypes.d.ts +5 -0
  303. package/dist/esm/enums/ViewportTypes.js +23 -0
  304. package/dist/esm/enums/index.d.ts +2 -1
  305. package/dist/esm/enums/index.js +2 -1
  306. package/dist/esm/getEnabledElement.js +4 -1
  307. package/dist/esm/index.d.ts +72 -2
  308. package/dist/esm/index.js +41 -2
  309. package/dist/esm/init.d.ts +2 -1
  310. package/dist/esm/init.js +14 -1
  311. package/dist/esm/loaders/ProgressiveRetrieveImages.js +11 -11
  312. package/dist/esm/loaders/cornerstoneMeshLoader.js +1 -1
  313. package/dist/esm/loaders/imageLoader.d.ts +2 -1
  314. package/dist/esm/loaders/imageLoader.js +25 -10
  315. package/dist/esm/loaders/volumeLoader.js +8 -4
  316. package/dist/esm/metaData.d.ts +2 -8
  317. package/dist/esm/metaData.js +2 -75
  318. package/dist/esm/types/Cornerstone3DConfig.d.ts +11 -0
  319. package/dist/esm/types/EventTypes.d.ts +3 -3
  320. package/dist/esm/types/IActor.d.ts +33 -0
  321. package/dist/esm/types/IActor.js +8 -0
  322. package/dist/esm/types/ICamera.d.ts +2 -2
  323. package/dist/esm/types/IEnabledElement.d.ts +1 -1
  324. package/dist/esm/types/IImageCalibration.d.ts +2 -11
  325. package/dist/esm/types/IViewport.d.ts +9 -1
  326. package/dist/esm/types/IWSIViewport.d.ts +3 -2
  327. package/dist/esm/types/ImagePlaneModule.d.ts +3 -1
  328. package/dist/esm/types/MetadataModuleTypes.d.ts +1 -70
  329. package/dist/esm/types/ViewportTypeRegistry.d.ts +33 -0
  330. package/dist/esm/types/ViewportTypeRegistry.js +0 -0
  331. package/dist/esm/types/index.d.ts +7 -3
  332. package/dist/esm/types/index.js +2 -0
  333. package/dist/esm/utilities/ECGUtilities.d.ts +83 -0
  334. package/dist/esm/utilities/ECGUtilities.js +228 -0
  335. package/dist/esm/utilities/FrameRange.js +3 -2
  336. package/dist/esm/utilities/RLEVoxelMap.js +9 -7
  337. package/dist/esm/utilities/VideoUtilities.d.ts +34 -0
  338. package/dist/esm/utilities/VideoUtilities.js +102 -0
  339. package/dist/esm/utilities/VoxelManager.d.ts +20 -1
  340. package/dist/esm/utilities/VoxelManager.js +162 -27
  341. package/dist/esm/utilities/WSIUtilities.d.ts +119 -0
  342. package/dist/esm/utilities/WSIUtilities.js +110 -0
  343. package/dist/esm/utilities/buildMetadata.js +23 -23
  344. package/dist/esm/utilities/calculateSpacingBetweenImageIds.js +6 -5
  345. package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.d.ts +5 -5
  346. package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.js +2 -15
  347. package/dist/esm/utilities/clonePoint3.d.ts +3 -0
  348. package/dist/esm/utilities/clonePoint3.js +3 -0
  349. package/dist/esm/utilities/colormap.d.ts +2 -1
  350. package/dist/esm/utilities/colormap.js +43 -4
  351. package/dist/esm/utilities/deepClone.d.ts +1 -1
  352. package/dist/esm/utilities/deepClone.js +46 -17
  353. package/dist/esm/utilities/genericMetadataProvider.js +2 -1
  354. package/dist/esm/utilities/genericViewportDataSetMetadataProvider.d.ts +8 -0
  355. package/dist/esm/utilities/genericViewportDataSetMetadataProvider.js +23 -0
  356. package/dist/esm/utilities/getAcquisitionPlaneOrientation.d.ts +2 -0
  357. package/dist/esm/utilities/getAcquisitionPlaneOrientation.js +7 -0
  358. package/dist/esm/utilities/getClosestImageId.js +2 -1
  359. package/dist/esm/utilities/getClosestStackImageIndexForPoint.js +2 -1
  360. package/dist/esm/utilities/getPixelSpacingInformation.d.ts +5 -13
  361. package/dist/esm/utilities/getPixelSpacingInformation.js +4 -93
  362. package/dist/esm/utilities/getScalingParameters.js +4 -3
  363. package/dist/esm/utilities/getVOIRangeFromWindowLevel.d.ts +3 -0
  364. package/dist/esm/utilities/getVOIRangeFromWindowLevel.js +18 -0
  365. package/dist/esm/utilities/getViewportImageIds.js +1 -1
  366. package/dist/esm/utilities/getViewportsWithImageURI.d.ts +2 -4
  367. package/dist/esm/utilities/getViewportsWithImageURI.js +4 -1
  368. package/dist/esm/utilities/getViewportsWithVolumeId.d.ts +2 -2
  369. package/dist/esm/utilities/getViewportsWithVolumeId.js +4 -1
  370. package/dist/esm/utilities/getViewportsWithVolumeURI.d.ts +2 -2
  371. package/dist/esm/utilities/getViewportsWithVolumeURI.js +4 -1
  372. package/dist/esm/utilities/getVolumeViewReferenceId.d.ts +6 -0
  373. package/dist/esm/utilities/getVolumeViewReferenceId.js +6 -0
  374. package/dist/esm/utilities/getVolumeViewportScrollInfo.d.ts +1 -1
  375. package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.d.ts +2 -2
  376. package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.js +4 -1
  377. package/dist/esm/utilities/hasOwn.d.ts +1 -0
  378. package/dist/esm/utilities/hasOwn.js +3 -0
  379. package/dist/esm/utilities/imageIdToURI.d.ts +3 -1
  380. package/dist/esm/utilities/imageIdToURI.js +2 -7
  381. package/dist/esm/utilities/index.d.ts +11 -1
  382. package/dist/esm/utilities/index.js +11 -1
  383. package/dist/esm/utilities/isEqual.d.ts +3 -5
  384. package/dist/esm/utilities/isEqual.js +3 -48
  385. package/dist/esm/utilities/isValidVolume.js +19 -4
  386. package/dist/esm/utilities/isVideoTransferSyntax.d.ts +3 -1
  387. package/dist/esm/utilities/isVideoTransferSyntax.js +3 -25
  388. package/dist/esm/utilities/loadImageToCanvas.js +2 -2
  389. package/dist/esm/utilities/logger.d.ts +3 -14
  390. package/dist/esm/utilities/logger.js +2 -23
  391. package/dist/esm/utilities/rotateToViewCoordinates.js +7 -7
  392. package/dist/esm/utilities/scroll.d.ts +1 -1
  393. package/dist/esm/utilities/scroll.js +2 -1
  394. package/dist/esm/utilities/sortImageIdsAndGetSpacing.js +4 -3
  395. package/dist/esm/utilities/splitImageIdsBy4DTags.d.ts +2 -10
  396. package/dist/esm/utilities/splitImageIdsBy4DTags.js +2 -312
  397. package/dist/esm/utilities/toNumber.d.ts +3 -1
  398. package/dist/esm/utilities/toNumber.js +3 -3
  399. package/dist/esm/utilities/viewportCapabilities.d.ts +19 -0
  400. package/dist/esm/utilities/viewportCapabilities.js +32 -0
  401. package/dist/esm/version.d.ts +1 -1
  402. package/dist/esm/version.js +1 -1
  403. package/dist/esm/webWorkerManager/webWorkerManager.js +3 -1
  404. package/package.json +16 -8
@@ -0,0 +1,23 @@
1
+ export { defaultRenderPathResolver, DefaultRenderPathResolver, } from './DefaultRenderPathResolver';
2
+ export { default as GenericViewport } from './GenericViewport';
3
+ export { ViewportProjectionService, viewportProjection, } from './viewportProjection';
4
+ export type { BuiltInViewportProjectionByKind, BuiltInViewportProjectionByType, BuiltInViewportProjectionKind, BuiltInViewportProjectionType, ProjectionPresentationForKind, ProjectionPresentationForViewport, ProjectionPresentationForViewportType, ProjectionSnapshotForKind, ProjectionSnapshotForViewport, ProjectionSnapshotForViewportType, ProjectionViewStateForKind, ProjectionViewStateForViewport, ProjectionViewStateForViewportType, } from './viewportProjection';
5
+ export type { ProjectionPosition, ProjectionPresentation, ProjectionRequest, ProjectionScale, ProjectionSnapshot, ProjectionSpaces, ProjectionTransforms, ProjectionWriteOptions, ViewportProjectionAdapter, } from './ViewportProjectionTypes';
6
+ export type { CameraFrame, CameraScale, CameraScaleMode, ViewAnchor, ViewportCameraBase, } from './ViewportCameraTypes';
7
+ export type { BaseViewportRenderContext, BasePresentationProps, DataAddOptions, DataId, DataProvider, ICanvasWorldViewport, IFrameOfReferenceViewport, IPanViewport, IZoomViewport, LoadedData, MountedRendering, RenderPathDefinition, RenderPathAttachment, RenderPathResolver, RenderPath, ViewportDataBinding, ViewportDataReference, ViewportController, ViewportId, ViewportRenderContextType, } from './ViewportArchitectureTypes';
8
+ export { viewportHasCanvasWorldTransform, viewportHasFrameOfReferenceUID, viewportHasPan, viewportHasZoom, } from './ViewportArchitectureTypes';
9
+ export { default as ECGViewport } from './ECG';
10
+ export { createDefaultECGRenderPaths, createECGRenderPathResolver, DefaultECGDataProvider, ecgProjection, } from './ECG';
11
+ export type { ECGViewState, ECGDataPresentation, ECGChannelData, ECGProjectionPresentation, ECGProjectionRequest, ECGProjectionSnapshot, ECGPresentationProps, ECGProperties, ECGViewportInput, ECGGenericViewportInput, } from './ECG';
12
+ export { default as VideoViewport } from './Video';
13
+ export { createDefaultVideoRenderPaths, createVideoRenderPathResolver, DefaultVideoDataProvider, videoProjection, } from './Video';
14
+ export type { VideoViewState, VideoDataPresentation, VideoProjectionPresentation, VideoProjectionRequest, VideoProjectionSnapshot, VideoPresentationProps, VideoProperties, VideoViewportInput, VideoGenericViewportInput, } from './Video';
15
+ export { default as PlanarViewport } from './Planar';
16
+ export { createDefaultPlanarRenderPaths, createPlanarRenderPathResolver, DefaultPlanarDataProvider, planarProjection, } from './Planar';
17
+ export type { PlanarViewState, PlanarDataPresentation, PlanarOrientation, PlanarPresentationProps, PlanarProperties, PlanarRenderMode, PlanarSetDataOptions, PlanarSliceBasis, PlanarViewportInput, PlanarViewportInputOptions, PlanarResolvedICamera, PlanarProjectionPresentation, PlanarProjectionRequest, PlanarProjectionSnapshot, } from './Planar';
18
+ export { default as VolumeViewport3D } from './Volume3D';
19
+ export { createDefaultVolume3DRenderPaths, createVolume3DRenderPathResolver, DefaultVolume3DDataProvider, volume3DProjection, } from './Volume3D';
20
+ export type { Volume3DCamera, Volume3DDataPresentation, Volume3DPresentationProps, Volume3DProperties, Volume3DRequestedRenderMode, Volume3DSetDataOptions, Volume3DProjectionPresentation, Volume3DProjectionRequest, Volume3DProjectionSnapshot, VolumeViewport3DInput, } from './Volume3D';
21
+ export { default as WSIViewport } from './WSI';
22
+ export { createDefaultWSIRenderPaths, createWSIRenderPathResolver, DefaultWSIDataProvider, wsiProjection, } from './WSI';
23
+ export type { WSICamera, WSIDataPresentation, WSIDataSetOptions, WSIProjectionPresentation, WSIProjectionRequest, WSIProjectionSnapshot, WSIPresentationProps, WSIProperties, WSIViewState, WSIViewportInput, WSIGenericViewportInput, } from './WSI';
@@ -0,0 +1,14 @@
1
+ export { defaultRenderPathResolver, DefaultRenderPathResolver, } from './DefaultRenderPathResolver';
2
+ export { default as GenericViewport } from './GenericViewport';
3
+ export { ViewportProjectionService, viewportProjection, } from './viewportProjection';
4
+ export { viewportHasCanvasWorldTransform, viewportHasFrameOfReferenceUID, viewportHasPan, viewportHasZoom, } from './ViewportArchitectureTypes';
5
+ export { default as ECGViewport } from './ECG';
6
+ export { createDefaultECGRenderPaths, createECGRenderPathResolver, DefaultECGDataProvider, ecgProjection, } from './ECG';
7
+ export { default as VideoViewport } from './Video';
8
+ export { createDefaultVideoRenderPaths, createVideoRenderPathResolver, DefaultVideoDataProvider, videoProjection, } from './Video';
9
+ export { default as PlanarViewport } from './Planar';
10
+ export { createDefaultPlanarRenderPaths, createPlanarRenderPathResolver, DefaultPlanarDataProvider, planarProjection, } from './Planar';
11
+ export { default as VolumeViewport3D } from './Volume3D';
12
+ export { createDefaultVolume3DRenderPaths, createVolume3DRenderPathResolver, DefaultVolume3DDataProvider, volume3DProjection, } from './Volume3D';
13
+ export { default as WSIViewport } from './WSI';
14
+ export { createDefaultWSIRenderPaths, createWSIRenderPathResolver, DefaultWSIDataProvider, wsiProjection, } from './WSI';
@@ -0,0 +1,2 @@
1
+ import type vtkCamera from '@kitware/vtk.js/Rendering/Core/Camera';
2
+ export default function setVtkCameraClippingRange(camera: vtkCamera): void;
@@ -0,0 +1,8 @@
1
+ import { RENDERING_DEFAULTS } from '../../constants';
2
+ export default function setVtkCameraClippingRange(camera) {
3
+ if (camera.getParallelProjection()) {
4
+ camera.setClippingRange(-RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE, RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
5
+ return;
6
+ }
7
+ camera.setClippingRange(RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS, RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
8
+ }
@@ -0,0 +1,98 @@
1
+ import type { ProjectionPresentation, ProjectionRequest, ProjectionSnapshot, ProjectionWriteOptions, ViewportProjectionAdapter } from './ViewportProjectionTypes';
2
+ import { ViewportType } from '../../enums';
3
+ import type { ViewPresentation } from '../../types';
4
+ import type { PlanarProjectionRequest, PlanarProjectionSnapshot } from './Planar/PlanarProjectionTypes';
5
+ import type { PlanarViewPresentation, PlanarViewState } from './Planar/PlanarViewportTypes';
6
+ import type { Volume3DProjectionPresentation, Volume3DProjectionRequest, Volume3DProjectionSnapshot } from './Volume3D/Volume3DProjectionTypes';
7
+ import type { Volume3DCamera } from './Volume3D/viewport3DTypes';
8
+ import type { VideoProjectionRequest, VideoProjectionSnapshot } from './Video/VideoProjectionTypes';
9
+ import type { VideoViewState } from './Video/VideoViewportTypes';
10
+ import type { ECGProjectionRequest, ECGProjectionSnapshot } from './ECG/ECGProjectionTypes';
11
+ import type { ECGViewState } from './ECG/ECGViewportTypes';
12
+ import type { WSIProjectionRequest, WSIProjectionSnapshot } from './WSI/WSIProjectionTypes';
13
+ import type { WSIViewState } from './WSI/WSIViewportTypes';
14
+ type RegisteredProjectionAdapter = ViewportProjectionAdapter<unknown, unknown, ProjectionSnapshot<unknown, ProjectionPresentation<unknown>>>;
15
+ export type BuiltInViewportProjectionByKind = {
16
+ planar: {
17
+ presentation: PlanarViewPresentation;
18
+ request: PlanarProjectionRequest;
19
+ snapshot: PlanarProjectionSnapshot;
20
+ viewState: PlanarViewState;
21
+ viewportType: ViewportType.PLANAR_NEXT;
22
+ };
23
+ volume3d: {
24
+ presentation: Volume3DProjectionPresentation;
25
+ request: Volume3DProjectionRequest;
26
+ snapshot: Volume3DProjectionSnapshot;
27
+ viewState: Volume3DCamera;
28
+ viewportType: ViewportType.VOLUME_3D_NEXT;
29
+ };
30
+ video: {
31
+ presentation: ViewPresentation;
32
+ request: VideoProjectionRequest;
33
+ snapshot: VideoProjectionSnapshot;
34
+ viewState: VideoViewState;
35
+ viewportType: ViewportType.VIDEO_NEXT;
36
+ };
37
+ ecg: {
38
+ presentation: ViewPresentation;
39
+ request: ECGProjectionRequest;
40
+ snapshot: ECGProjectionSnapshot;
41
+ viewState: ECGViewState;
42
+ viewportType: ViewportType.ECG_NEXT;
43
+ };
44
+ wsi: {
45
+ presentation: ViewPresentation;
46
+ request: WSIProjectionRequest;
47
+ snapshot: WSIProjectionSnapshot;
48
+ viewState: WSIViewState;
49
+ viewportType: ViewportType.WHOLE_SLIDE_NEXT;
50
+ };
51
+ };
52
+ export type BuiltInViewportProjectionKind = keyof BuiltInViewportProjectionByKind;
53
+ export type BuiltInViewportProjectionByType = {
54
+ [ViewportType.PLANAR_NEXT]: BuiltInViewportProjectionByKind['planar'];
55
+ [ViewportType.VOLUME_3D_NEXT]: BuiltInViewportProjectionByKind['volume3d'];
56
+ [ViewportType.VIDEO_NEXT]: BuiltInViewportProjectionByKind['video'];
57
+ [ViewportType.ECG_NEXT]: BuiltInViewportProjectionByKind['ecg'];
58
+ [ViewportType.WHOLE_SLIDE_NEXT]: BuiltInViewportProjectionByKind['wsi'];
59
+ };
60
+ export type BuiltInViewportProjectionType = keyof BuiltInViewportProjectionByType;
61
+ export type ProjectionSnapshotForKind<TKind extends BuiltInViewportProjectionKind> = BuiltInViewportProjectionByKind[TKind]['snapshot'];
62
+ export type ProjectionPresentationForKind<TKind extends BuiltInViewportProjectionKind> = BuiltInViewportProjectionByKind[TKind]['presentation'];
63
+ export type ProjectionViewStateForKind<TKind extends BuiltInViewportProjectionKind> = BuiltInViewportProjectionByKind[TKind]['viewState'];
64
+ export type ProjectionSnapshotForViewportType<TViewportType extends BuiltInViewportProjectionType> = BuiltInViewportProjectionByType[TViewportType]['snapshot'];
65
+ export type ProjectionPresentationForViewportType<TViewportType extends BuiltInViewportProjectionType> = BuiltInViewportProjectionByType[TViewportType]['presentation'];
66
+ export type ProjectionViewStateForViewportType<TViewportType extends BuiltInViewportProjectionType> = BuiltInViewportProjectionByType[TViewportType]['viewState'];
67
+ type BuiltInProjectionViewport = {
68
+ type: BuiltInViewportProjectionType;
69
+ };
70
+ type ProjectionForViewport<TViewport> = TViewport extends {
71
+ type: infer TViewportType;
72
+ } ? TViewportType extends BuiltInViewportProjectionType ? BuiltInViewportProjectionByType[TViewportType] : never : never;
73
+ type ProjectionRequestForKind<TKind extends BuiltInViewportProjectionKind> = Omit<BuiltInViewportProjectionByKind[TKind]['request'], 'viewport'> & {
74
+ kind: TKind;
75
+ };
76
+ type ProjectionRequestForViewport<TViewport extends BuiltInProjectionViewport> = Omit<ProjectionForViewport<TViewport>['request'], 'viewport'>;
77
+ export type ProjectionSnapshotForViewport<TViewport extends BuiltInProjectionViewport> = ProjectionForViewport<TViewport>['snapshot'];
78
+ export type ProjectionPresentationForViewport<TViewport extends BuiltInProjectionViewport> = ProjectionForViewport<TViewport>['presentation'];
79
+ export type ProjectionViewStateForViewport<TViewport extends BuiltInProjectionViewport> = ProjectionForViewport<TViewport>['viewState'];
80
+ declare class ViewportProjectionService {
81
+ private readonly adapters;
82
+ register<TViewState, TPresentation, TSnapshot extends ProjectionSnapshot<TViewState, ProjectionPresentation<unknown>>>(adapter: ViewportProjectionAdapter<TViewState, TPresentation, TSnapshot>): void;
83
+ unregister(adapterId: string): void;
84
+ getAdapter(viewport: unknown, request?: Omit<ProjectionRequest, 'viewport'>): RegisteredProjectionAdapter | undefined;
85
+ get<TKind extends BuiltInViewportProjectionKind>(viewport: unknown, request: ProjectionRequestForKind<TKind>): ProjectionSnapshotForKind<TKind> | undefined;
86
+ get<TViewport extends BuiltInProjectionViewport>(viewport: TViewport, request?: ProjectionRequestForViewport<TViewport>): ProjectionSnapshotForViewport<TViewport> | undefined;
87
+ get<TSnapshot extends ProjectionSnapshot = ProjectionSnapshot>(viewport: unknown, request?: Omit<ProjectionRequest, 'viewport'>): TSnapshot | undefined;
88
+ getPresentation<TKind extends BuiltInViewportProjectionKind>(viewport: unknown, request: ProjectionRequestForKind<TKind>): ProjectionPresentationForKind<TKind> | undefined;
89
+ getPresentation<TViewport extends BuiltInProjectionViewport>(viewport: TViewport, request?: ProjectionRequestForViewport<TViewport>): ProjectionPresentationForViewport<TViewport> | undefined;
90
+ getPresentation<TPresentation = unknown>(viewport: unknown, request?: Omit<ProjectionRequest, 'viewport'>): TPresentation | undefined;
91
+ withPresentation<TKind extends BuiltInViewportProjectionKind>(viewport: unknown, presentation: Partial<ProjectionPresentationForKind<TKind>>, request: ProjectionRequestForKind<TKind>, options?: ProjectionWriteOptions): ProjectionViewStateForKind<TKind> | undefined;
92
+ withPresentation<TViewport extends BuiltInProjectionViewport>(viewport: TViewport, presentation: Partial<ProjectionPresentationForViewport<TViewport>>, request?: ProjectionRequestForViewport<TViewport>, options?: ProjectionWriteOptions): ProjectionViewStateForViewport<TViewport> | undefined;
93
+ withPresentation<TViewState = unknown, TPresentation = unknown>(viewport: unknown, presentation: Partial<TPresentation>, request?: Omit<ProjectionRequest, 'viewport'>, options?: ProjectionWriteOptions): TViewState | undefined;
94
+ getRegisteredAdapters(): RegisteredProjectionAdapter[];
95
+ clear(): void;
96
+ }
97
+ declare const viewportProjection: ViewportProjectionService;
98
+ export { ViewportProjectionService, viewportProjection };
@@ -0,0 +1,81 @@
1
+ import { ViewportType } from '../../enums';
2
+ import { planarProjectionAdapter } from './Planar/planarProjectionAdapter';
3
+ import { volume3DProjectionAdapter } from './Volume3D/volume3DProjectionAdapter';
4
+ import { videoProjectionAdapter } from './Video/videoProjectionAdapter';
5
+ import { ecgProjectionAdapter } from './ECG/ecgProjectionAdapter';
6
+ import { wsiProjectionAdapter } from './WSI/wsiProjectionAdapter';
7
+ function getViewportType(request) {
8
+ const viewportType = request.viewportType ??
9
+ request.viewport?.type;
10
+ return viewportType === undefined ? undefined : String(viewportType);
11
+ }
12
+ class ViewportProjectionService {
13
+ constructor() {
14
+ this.adapters = new Map();
15
+ }
16
+ register(adapter) {
17
+ this.adapters.set(adapter.id, adapter);
18
+ }
19
+ unregister(adapterId) {
20
+ this.adapters.delete(adapterId);
21
+ }
22
+ getAdapter(viewport, request = {}) {
23
+ const projectionRequest = {
24
+ ...request,
25
+ viewport,
26
+ };
27
+ const viewportType = getViewportType(projectionRequest);
28
+ for (const adapter of this.adapters.values()) {
29
+ if (request.kind && adapter.id !== request.kind) {
30
+ continue;
31
+ }
32
+ if (viewportType &&
33
+ !adapter.viewportTypes.some((type) => String(type) === viewportType)) {
34
+ continue;
35
+ }
36
+ return adapter;
37
+ }
38
+ }
39
+ get(viewport, request = {}) {
40
+ const adapter = this.getAdapter(viewport, request);
41
+ return adapter?.getSnapshot({
42
+ ...request,
43
+ viewport,
44
+ });
45
+ }
46
+ getPresentation(viewport, request = {}) {
47
+ const adapter = this.getAdapter(viewport, request);
48
+ const snapshot = adapter?.getSnapshot({
49
+ ...request,
50
+ viewport,
51
+ });
52
+ if (!snapshot) {
53
+ return;
54
+ }
55
+ return adapter.getPresentation(snapshot, request.selector);
56
+ }
57
+ withPresentation(viewport, presentation, request = {}, options) {
58
+ const adapter = this.getAdapter(viewport, request);
59
+ const snapshot = adapter?.getSnapshot({
60
+ ...request,
61
+ viewport,
62
+ });
63
+ if (!snapshot) {
64
+ return;
65
+ }
66
+ return adapter.withPresentation(snapshot, presentation, options);
67
+ }
68
+ getRegisteredAdapters() {
69
+ return Array.from(this.adapters.values());
70
+ }
71
+ clear() {
72
+ this.adapters.clear();
73
+ }
74
+ }
75
+ const viewportProjection = new ViewportProjectionService();
76
+ viewportProjection.register(planarProjectionAdapter);
77
+ viewportProjection.register(volume3DProjectionAdapter);
78
+ viewportProjection.register(videoProjectionAdapter);
79
+ viewportProjection.register(ecgProjectionAdapter);
80
+ viewportProjection.register(wsiProjectionAdapter);
81
+ export { ViewportProjectionService, viewportProjection };
@@ -1,19 +1,17 @@
1
- import type { IStackViewport, IVolumeViewport, IViewport, PublicViewportInput, VtkOffscreenMultiRenderWindow } from '../types';
1
+ import type { IViewport, PublicViewportInput, VtkOffscreenMultiRenderWindow } from '../types';
2
2
  declare class RenderingEngine {
3
3
  hasBeenDestroyed: boolean;
4
4
  offscreenMultiRenderWindow: VtkOffscreenMultiRenderWindow;
5
5
  private _implementation?;
6
6
  constructor(id?: string);
7
7
  get id(): string;
8
+ disableViewport(viewportId: string): void;
8
9
  enableElement(viewportInputEntry: PublicViewportInput): void;
9
10
  disableElement(viewportId: string): void;
10
11
  setViewports(publicViewportInputEntries: PublicViewportInput[]): void;
11
12
  resize(immediate?: boolean, keepCamera?: boolean): void;
12
- getViewport(viewportId: string): IViewport;
13
+ getViewport<T = IViewport>(viewportId: string): T;
13
14
  getViewports(): IViewport[];
14
- getStackViewport(viewportId: string): IStackViewport;
15
- getStackViewports(): IStackViewport[];
16
- getVolumeViewports(): IVolumeViewport[];
17
15
  getRenderer(viewportId: string): import("@kitware/vtk.js/Rendering/Core/Renderer").vtkRenderer;
18
16
  fillCanvasWithBackgroundColor(canvas: HTMLCanvasElement, backgroundColor: [number, number, number]): void;
19
17
  render(): void;
@@ -22,6 +22,9 @@ class RenderingEngine {
22
22
  get id() {
23
23
  return this._implementation.id;
24
24
  }
25
+ disableViewport(viewportId) {
26
+ return this._implementation.disableElement(viewportId);
27
+ }
25
28
  enableElement(viewportInputEntry) {
26
29
  return this._implementation.enableElement(viewportInputEntry);
27
30
  }
@@ -40,15 +43,6 @@ class RenderingEngine {
40
43
  getViewports() {
41
44
  return this._implementation.getViewports();
42
45
  }
43
- getStackViewport(viewportId) {
44
- return this._implementation.getStackViewport(viewportId);
45
- }
46
- getStackViewports() {
47
- return this._implementation.getStackViewports();
48
- }
49
- getVolumeViewports() {
50
- return this._implementation.getVolumeViewports();
51
- }
52
46
  getRenderer(viewportId) {
53
47
  return this._implementation.getRenderer(viewportId);
54
48
  }
@@ -178,7 +178,6 @@ declare class StackViewport extends Viewport {
178
178
  private _getPTPreScaledRange;
179
179
  private _isCurrentImagePTPrescaled;
180
180
  private _getDefaultPTPrescaledVOIRange;
181
- private _getVOIRangeFromWindowLevel;
182
181
  private _setImageIdIndex;
183
182
  private resetCameraCPU;
184
183
  private resetCameraGPU;
@@ -1,8 +1,6 @@
1
- import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray';
2
1
  import vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData';
3
2
  import extendedVtkCamera from './vtkClasses/extendedVtkCamera';
4
3
  import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
5
- import vtkColorMaps from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps';
6
4
  import vtkImageMapper from '@kitware/vtk.js/Rendering/Core/ImageMapper';
7
5
  import vtkImageSlice from '@kitware/vtk.js/Rendering/Core/ImageSlice';
8
6
  import { mat4, vec2, vec3 } from 'gl-matrix';
@@ -22,9 +20,12 @@ import { isEqual } from '../utilities/isEqual';
22
20
  import invertRgbTransferFunction from '../utilities/invertRgbTransferFunction';
23
21
  import imageRetrieveMetadataProvider from '../utilities/imageRetrieveMetadataProvider';
24
22
  import imageIdToURI from '../utilities/imageIdToURI';
23
+ import getVOIRangeFromWindowLevel from '../utilities/getVOIRangeFromWindowLevel';
25
24
  import Viewport from './Viewport';
26
25
  import drawImageSync from './helpers/cpuFallback/drawImageSync';
26
+ import { resolveCPUFallbackColormap } from './helpers/cpuFallback/colors';
27
27
  import { getImagePlaneModule } from '../utilities/buildMetadata';
28
+ import { createEmptyVTKImageData } from './helpers/planarImageRendering';
28
29
  import { Events, InterpolationType, MetadataModules, RequestType, VOILUTFunctionType, ViewportStatus, } from '../enums';
29
30
  import { loadAndCacheImage } from '../loaders/imageLoader';
30
31
  import imageLoadPoolManager from '../requestPool/imageLoadPoolManager';
@@ -34,7 +35,7 @@ import getDefaultViewport from './helpers/cpuFallback/rendering/getDefaultViewpo
34
35
  import pixelToCanvas from './helpers/cpuFallback/rendering/pixelToCanvas';
35
36
  import resize from './helpers/cpuFallback/rendering/resize';
36
37
  import cache from '../cache/cache';
37
- import { getConfiguration, getShouldUseCPURendering } from '../init';
38
+ import { getShouldUseCPURendering } from '../init';
38
39
  import { createProgressive } from '../loaders/ProgressiveRetrieveImages';
39
40
  import correctShift from './helpers/cpuFallback/rendering/correctShift';
40
41
  import resetCamera from './helpers/cpuFallback/rendering/resetCamera';
@@ -490,9 +491,12 @@ class StackViewport extends Viewport {
490
491
  this.modality = null;
491
492
  this.useCPURendering = getShouldUseCPURendering();
492
493
  this._configureRenderingPipeline();
493
- this.useCPURendering
494
- ? this._resetCPUFallbackElement()
495
- : this._resetGPUViewport();
494
+ if (this.useCPURendering) {
495
+ this._resetCPUFallbackElement();
496
+ }
497
+ else {
498
+ this._resetGPUViewport();
499
+ }
496
500
  this.currentImageIdIndex = 0;
497
501
  this.targetImageIdIndex = 0;
498
502
  this.resetCamera();
@@ -528,9 +532,12 @@ class StackViewport extends Viewport {
528
532
  }
529
533
  }
530
534
  }
531
- const result = this.useCPURendering
532
- ? this._resetCPUFallbackElement()
533
- : this._resetGPUViewport();
535
+ if (this.useCPURendering) {
536
+ this._resetCPUFallbackElement();
537
+ }
538
+ else {
539
+ this._resetGPUViewport();
540
+ }
534
541
  }
535
542
  _resetCPUFallbackElement() {
536
543
  this._cpuFallbackEnabledElement = {
@@ -1051,7 +1058,7 @@ class StackViewport extends Viewport {
1051
1058
  windowCenter: wcToUse,
1052
1059
  voiLUTFunction: image.voiLUTFunction,
1053
1060
  };
1054
- const { lower, upper } = windowLevelUtil.toLowHighRange(wwToUse, wcToUse, image.voiLUTFunction);
1061
+ const { lower, upper } = getVOIRangeFromWindowLevel(wwToUse, wcToUse, image.voiLUTFunction);
1055
1062
  voiRange = { lower, upper };
1056
1063
  }
1057
1064
  else {
@@ -1259,19 +1266,14 @@ class StackViewport extends Viewport {
1259
1266
  };
1260
1267
  }
1261
1268
  createVTKImageData({ origin, direction, dimensions, spacing, numberOfComponents, pixelArray, }) {
1262
- const values = new pixelArray.constructor(pixelArray.length);
1263
- const scalarArray = vtkDataArray.newInstance({
1264
- name: 'Pixels',
1265
- numberOfComponents: numberOfComponents,
1266
- values: values,
1269
+ return createEmptyVTKImageData({
1270
+ origin,
1271
+ direction,
1272
+ dimensions,
1273
+ spacing,
1274
+ numberOfComponents,
1275
+ pixelArray: new pixelArray.constructor(pixelArray.length),
1267
1276
  });
1268
- const imageData = vtkImageData.newInstance();
1269
- imageData.setDimensions(dimensions);
1270
- imageData.setSpacing(spacing);
1271
- imageData.setDirection(direction);
1272
- imageData.setOrigin(origin);
1273
- imageData.getPointData().setScalars(scalarArray);
1274
- return imageData;
1275
1277
  }
1276
1278
  _createVTKImageData({ origin, direction, dimensions, spacing, numberOfComponents, pixelArray, }) {
1277
1279
  try {
@@ -1406,7 +1408,7 @@ class StackViewport extends Viewport {
1406
1408
  let min = 65535;
1407
1409
  let max = 0;
1408
1410
  for (let i = 0; i < numPixels; i++) {
1409
- const rescaledPixel = Math.floor((pixelData[i] - intercept) / slope);
1411
+ const rescaledPixel = Math.max(0, Math.min(65535, Math.floor((pixelData[i] - intercept) / slope)));
1410
1412
  intPixelData[i] = rescaledPixel;
1411
1413
  min = Math.min(min, rescaledPixel);
1412
1414
  max = Math.max(max, rescaledPixel);
@@ -1516,7 +1518,7 @@ class StackViewport extends Viewport {
1516
1518
  }
1517
1519
  getLoaderImageOptions(imageId) {
1518
1520
  const imageIdIndex = this.imageIds.indexOf(imageId);
1519
- const { transferSyntaxUID } = metaData.get('transferSyntax', imageId) || {};
1521
+ const { transferSyntaxUID } = metaData.get(MetadataModules.TRANSFER_SYNTAX, imageId) || {};
1520
1522
  const options = {
1521
1523
  useRGBA: false,
1522
1524
  transferSyntaxUID,
@@ -1567,7 +1569,7 @@ class StackViewport extends Viewport {
1567
1569
  const metadata = this.getImageDataMetadata(image);
1568
1570
  const viewport = getDefaultViewport(this.canvas, image, this.modality, this._cpuFallbackEnabledElement.viewport.colormap);
1569
1571
  const { windowCenter, windowWidth, voiLUTFunction } = viewport.voi;
1570
- this.voiRange = windowLevelUtil.toLowHighRange(windowWidth, windowCenter, voiLUTFunction);
1572
+ this.voiRange = getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction);
1571
1573
  this._cpuFallbackEnabledElement.image = image;
1572
1574
  this._cpuFallbackEnabledElement.metadata = {
1573
1575
  ...metadata,
@@ -1670,7 +1672,7 @@ class StackViewport extends Viewport {
1670
1672
  return this.voiRange;
1671
1673
  }
1672
1674
  const { windowCenter, windowWidth, voiLUTFunction } = image;
1673
- let voiRange = this._getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction);
1675
+ let voiRange = getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction);
1674
1676
  voiRange = this._getPTPreScaledRange() || voiRange;
1675
1677
  return voiRange;
1676
1678
  }
@@ -1692,20 +1694,6 @@ class StackViewport extends Viewport {
1692
1694
  _getDefaultPTPrescaledVOIRange() {
1693
1695
  return { lower: 0, upper: 5 };
1694
1696
  }
1695
- _getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction = VOILUTFunctionType.LINEAR) {
1696
- let center, width;
1697
- if (typeof windowCenter === 'number' && typeof windowWidth === 'number') {
1698
- center = windowCenter;
1699
- width = windowWidth;
1700
- }
1701
- else if (Array.isArray(windowCenter) && Array.isArray(windowWidth)) {
1702
- center = windowCenter[0];
1703
- width = windowWidth[0];
1704
- }
1705
- if (center !== undefined && width !== undefined) {
1706
- return windowLevelUtil.toLowHighRange(width, center, voiLUTFunction);
1707
- }
1708
- }
1709
1697
  async _setImageIdIndex(imageIdIndex) {
1710
1698
  if (imageIdIndex >= this.imageIds.length) {
1711
1699
  throw new Error(`ImageIdIndex provided ${imageIdIndex} is invalid, the stack only has ${this.imageIds.length} elements`);
@@ -1853,7 +1841,7 @@ class StackViewport extends Viewport {
1853
1841
  }
1854
1842
  _getVOIRangeForCurrentImage() {
1855
1843
  const { windowCenter, windowWidth, voiLUTFunction } = this.csImage;
1856
- return this._getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction);
1844
+ return getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction);
1857
1845
  }
1858
1846
  _getValidVOILUTFunction(voiLUTFunction) {
1859
1847
  if (!Object.values(VOILUTFunctionType).includes(voiLUTFunction)) {
@@ -1992,8 +1980,13 @@ class StackViewport extends Viewport {
1992
1980
  }
1993
1981
  setColormapCPU(colormapData) {
1994
1982
  this.colormap = colormapData;
1995
- const colormap = colormapUtils.getColormap(colormapData.name);
1996
- this._cpuFallbackEnabledElement.viewport.colormap = colormap;
1983
+ const colormap = resolveCPUFallbackColormap(colormapData);
1984
+ if (colormap) {
1985
+ this._cpuFallbackEnabledElement.viewport.colormap = colormap;
1986
+ }
1987
+ else {
1988
+ delete this._cpuFallbackEnabledElement.viewport.colormap;
1989
+ }
1997
1990
  this._cpuFallbackEnabledElement.renderingTools = {};
1998
1991
  this.fillWithBackgroundColor();
1999
1992
  this.cpuRenderingInvalidated = true;
@@ -2009,8 +2002,7 @@ class StackViewport extends Viewport {
2009
2002
  const actor = ActorEntry.actor;
2010
2003
  const actorProp = actor.getProperty();
2011
2004
  const rgbTransferFunction = actorProp.getRGBTransferFunction();
2012
- const colormapObj = colormapUtils.getColormap(colormap.name) ||
2013
- vtkColorMaps.getPresetByName(colormap.name);
2005
+ const colormapObj = colormapUtils.resolveColormap(colormap.name);
2014
2006
  if (!rgbTransferFunction) {
2015
2007
  const cfun = vtkColorTransferFunction.newInstance();
2016
2008
  cfun.applyColorMap(colormapObj);
@@ -5,6 +5,7 @@ import type * as EventTypes from '../types/EventTypes';
5
5
  import type { InternalViewportInput, NormalizedViewportInput, IViewport } from '../types/IViewport';
6
6
  declare class TiledRenderingEngine extends BaseRenderingEngine {
7
7
  constructor(id?: string);
8
+ private ensureOffscreenResources;
8
9
  protected enableVTKjsDrivenViewport(viewportInputEntry: NormalizedViewportInput): void;
9
10
  protected addVtkjsDrivenViewport(viewportInputEntry: InternalViewportInput, offscreenCanvasProperties?: {
10
11
  offScreenCanvasWidth: number;
@@ -2,19 +2,16 @@ import BaseRenderingEngine, { VIEWPORT_MIN_SIZE } from './BaseRenderingEngine';
2
2
  import Events from '../enums/Events';
3
3
  import eventTarget from '../eventTarget';
4
4
  import triggerEvent from '../utilities/triggerEvent';
5
- import ViewportType from '../enums/ViewportType';
6
- import VolumeViewport from './VolumeViewport';
7
- import StackViewport from './StackViewport';
8
5
  import viewportTypeUsesCustomRenderingPipeline from './helpers/viewportTypeUsesCustomRenderingPipeline';
9
6
  import getOrCreateCanvas from './helpers/getOrCreateCanvas';
10
- import VolumeViewport3D from './VolumeViewport3D';
11
7
  import { vtkOffscreenMultiRenderWindow } from './vtkClasses';
8
+ import { getViewportClassForInput } from './helpers/viewportTypeToViewportClass';
12
9
  class TiledRenderingEngine extends BaseRenderingEngine {
13
10
  constructor(id) {
14
11
  super(id);
15
12
  this._renderFlaggedViewports = () => {
16
13
  this._throwIfDestroyed();
17
- if (!this.useCPURendering) {
14
+ if (this.offscreenMultiRenderWindow) {
18
15
  this.performVtkDrawCall();
19
16
  }
20
17
  const viewports = this._getViewportsAsArray();
@@ -41,6 +38,11 @@ class TiledRenderingEngine extends BaseRenderingEngine {
41
38
  });
42
39
  };
43
40
  if (!this.useCPURendering) {
41
+ this.ensureOffscreenResources();
42
+ }
43
+ }
44
+ ensureOffscreenResources() {
45
+ if (!this.offscreenMultiRenderWindow) {
44
46
  this.offscreenMultiRenderWindow =
45
47
  vtkOffscreenMultiRenderWindow.newInstance();
46
48
  this.offScreenCanvasContainer = document.createElement('div');
@@ -48,6 +50,7 @@ class TiledRenderingEngine extends BaseRenderingEngine {
48
50
  }
49
51
  }
50
52
  enableVTKjsDrivenViewport(viewportInputEntry) {
53
+ this.ensureOffscreenResources();
51
54
  const viewports = this._getViewportsAsArray();
52
55
  const viewportsDrivenByVtkJs = viewports.filter((vp) => viewportTypeUsesCustomRenderingPipeline(vp.type) === false);
53
56
  const canvasesDrivenByVtkJs = viewportsDrivenByVtkJs.map((vp) => vp.canvas);
@@ -63,6 +66,7 @@ class TiledRenderingEngine extends BaseRenderingEngine {
63
66
  });
64
67
  }
65
68
  addVtkjsDrivenViewport(viewportInputEntry, offscreenCanvasProperties) {
69
+ this.ensureOffscreenResources();
66
70
  const { element, canvas, viewportId, type, defaultOptions } = viewportInputEntry;
67
71
  element.tabIndex = -1;
68
72
  const { offScreenCanvasWidth, offScreenCanvasHeight, xOffset } = offscreenCanvasProperties;
@@ -91,20 +95,12 @@ class TiledRenderingEngine extends BaseRenderingEngine {
91
95
  sHeight,
92
96
  defaultOptions: defaultOptions || {},
93
97
  };
94
- let viewport;
95
- if (type === ViewportType.STACK) {
96
- viewport = new StackViewport(viewportInput);
97
- }
98
- else if (type === ViewportType.ORTHOGRAPHIC ||
99
- type === ViewportType.PERSPECTIVE) {
100
- viewport = new VolumeViewport(viewportInput);
101
- }
102
- else if (type === ViewportType.VOLUME_3D) {
103
- viewport = new VolumeViewport3D(viewportInput);
104
- }
105
- else {
98
+ const ViewportClass = getViewportClassForInput(viewportInputEntry);
99
+ if (!ViewportClass) {
106
100
  throw new Error(`Viewport Type ${type} is not supported`);
107
101
  }
102
+ const viewport = new ViewportClass(viewportInput);
103
+ viewport.requestedType = viewportInputEntry.requestedType ?? type;
108
104
  this._viewports.set(viewportId, viewport);
109
105
  const eventDetail = {
110
106
  element,
@@ -159,7 +155,13 @@ class TiledRenderingEngine extends BaseRenderingEngine {
159
155
  const prevCamera = vp.getCamera();
160
156
  const rotation = vp.getRotation();
161
157
  const { flipHorizontal } = prevCamera;
162
- vp.resetCameraForResize();
158
+ const resizeResetViewport = vp;
159
+ if (resizeResetViewport.resetViewStateForResize) {
160
+ resizeResetViewport.resetViewStateForResize();
161
+ }
162
+ else {
163
+ resizeResetViewport.resetCameraForResize();
164
+ }
163
165
  const displayArea = vp.getDisplayArea();
164
166
  if (keepCamera) {
165
167
  if (displayArea) {
@@ -188,7 +190,8 @@ class TiledRenderingEngine extends BaseRenderingEngine {
188
190
  }
189
191
  for (let i = 0; i < renderers.length; i++) {
190
192
  const { renderer, id } = renderers[i];
191
- if (this._needsRender.has(id)) {
193
+ const viewportId = id.split('::')[0];
194
+ if (this._needsRender.has(viewportId)) {
192
195
  renderer.setDraw(true);
193
196
  }
194
197
  else {
@@ -212,7 +215,7 @@ class TiledRenderingEngine extends BaseRenderingEngine {
212
215
  viewport.customRenderViewportToCanvas();
213
216
  }
214
217
  else {
215
- if (this.useCPURendering) {
218
+ if (!this.offscreenMultiRenderWindow) {
216
219
  throw new Error('GPU not available, and using a viewport with no custom render pipeline.');
217
220
  }
218
221
  const { offscreenMultiRenderWindow } = this;
@@ -38,20 +38,12 @@ declare class VideoViewport extends Viewport {
38
38
  private addEventListeners;
39
39
  private removeEventListeners;
40
40
  private elementDisabledHandler;
41
- getImageDataMetadata(image: IImage | string): {
42
- bitsAllocated: number;
43
- numberOfComponents: number;
44
- origin: any;
45
- rows: any;
46
- columns: any;
47
- direction: number[];
48
- dimensions: any[];
49
- spacing: any[];
50
- hasPixelSpacing: boolean;
51
- numVoxels: number;
52
- imagePlaneModule: any;
53
- };
41
+ getImageDataMetadata(image: IImage | string): import("../utilities/VideoUtilities").VideoImageMetadata;
54
42
  setDataIds(imageIds: string[], options?: ImageSetOptions): void;
43
+ setDataList(entries: Array<{
44
+ dataId: string;
45
+ options?: Record<string, unknown>;
46
+ }>): Promise<unknown>;
55
47
  setVideo(imageId: string, frameNumber?: number): Promise<unknown>;
56
48
  private setVideoURL;
57
49
  getImageIds(): string[];