@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
@@ -1,6 +1,4 @@
1
- import { vec3 } from 'gl-matrix';
2
- import { Events as EVENTS, VideoEnums as VideoViewportEnum, MetadataModules, } from '../enums';
3
- import * as metaData from '../metaData';
1
+ import { Events as EVENTS, VideoEnums as VideoViewportEnum } from '../enums';
4
2
  import { Transform } from './helpers/cpuFallback/rendering/transform';
5
3
  import triggerEvent from '../utilities/triggerEvent';
6
4
  import Viewport from './Viewport';
@@ -10,8 +8,8 @@ import cache from '../cache/cache';
10
8
  import uuidv4 from '../utilities/uuidv4';
11
9
  import FrameRange from '../utilities/FrameRange';
12
10
  import { pointInShapeCallback } from '../utilities/pointInShapeCallback';
11
+ import { getVideoImageDataMetadata, loadVideoStreamMetadata, normalizeVideoPlaybackInfo, } from '../utilities/VideoUtilities';
13
12
  class VideoViewport extends Viewport {
14
- static { this.frameRangeExtractor = /(\/frames\/|[&?]frameNumber=)([^/&?]*)/i; }
15
13
  constructor(props) {
16
14
  super({
17
15
  ...props,
@@ -193,69 +191,34 @@ class VideoViewport extends Viewport {
193
191
  }
194
192
  getImageDataMetadata(image) {
195
193
  const imageId = typeof image === 'string' ? image : image.imageId;
196
- const imagePlaneModule = metaData.get(MetadataModules.IMAGE_PLANE, imageId);
197
- let rowCosines = imagePlaneModule.rowCosines;
198
- let columnCosines = imagePlaneModule.columnCosines;
199
- const usingDefaultValues = imagePlaneModule.usingDefaultValues;
200
- if (usingDefaultValues || rowCosines == null || columnCosines == null) {
201
- rowCosines = [1, 0, 0];
202
- columnCosines = [0, 1, 0];
203
- }
204
- const rowCosineVec = vec3.fromValues(rowCosines[0], rowCosines[1], rowCosines[2]);
205
- const colCosineVec = vec3.fromValues(columnCosines[0], columnCosines[1], columnCosines[2]);
206
- const { rows, columns } = imagePlaneModule;
207
- const scanAxisNormal = vec3.create();
208
- vec3.cross(scanAxisNormal, rowCosineVec, colCosineVec);
209
- let origin = imagePlaneModule.imagePositionPatient;
210
- if (origin == null) {
211
- origin = [0, 0, 0];
212
- }
213
- const xSpacing = imagePlaneModule.columnPixelSpacing || 1;
214
- const ySpacing = imagePlaneModule.rowPixelSpacing || 1;
215
- const xVoxels = imagePlaneModule.columns;
216
- const yVoxels = imagePlaneModule.rows;
217
- const zSpacing = 1;
218
- const zVoxels = 1;
219
- this.hasPixelSpacing = !!imagePlaneModule.columnPixelSpacing;
220
- return {
221
- bitsAllocated: 8,
222
- numberOfComponents: 3,
223
- origin,
224
- rows,
225
- columns,
226
- direction: [...rowCosineVec, ...colCosineVec, ...scanAxisNormal],
227
- dimensions: [xVoxels, yVoxels, zVoxels],
228
- spacing: [xSpacing, ySpacing, zSpacing],
229
- hasPixelSpacing: this.hasPixelSpacing,
230
- numVoxels: xVoxels * yVoxels * zVoxels,
231
- imagePlaneModule,
232
- };
194
+ const metadata = getVideoImageDataMetadata(imageId);
195
+ this.hasPixelSpacing = metadata.hasPixelSpacing;
196
+ return metadata;
233
197
  }
234
198
  setDataIds(imageIds, options) {
235
199
  this.setVideo(imageIds[0], (options.viewReference?.sliceIndex || 0) + 1);
236
200
  }
201
+ setDataList(entries) {
202
+ if (!entries.length) {
203
+ return;
204
+ }
205
+ return this.setVideo(entries[0].dataId);
206
+ }
237
207
  setVideo(imageId, frameNumber) {
238
208
  this.imageId = Array.isArray(imageId) ? imageId[0] : imageId;
239
- const imageUrlModule = metaData.get(MetadataModules.IMAGE_URL, imageId);
240
- if (!imageUrlModule?.rendered) {
241
- throw new Error(`Video Image ID ${imageId} does not have a rendered video view`);
242
- }
243
- const { rendered } = imageUrlModule;
244
- const generalSeries = metaData.get(MetadataModules.GENERAL_SERIES, imageId);
245
- this.modality = generalSeries?.Modality;
246
- this.metadata = this.getImageDataMetadata(imageId);
247
- let { cineRate, numberOfFrames } = metaData.get(MetadataModules.CINE, imageId);
248
- this.numberOfFrames = numberOfFrames;
249
- return this.setVideoURL(rendered).then(() => {
250
- if (!numberOfFrames || numberOfFrames === 1) {
251
- numberOfFrames = Math.round(this.videoElement.duration * (cineRate || 30));
252
- }
253
- if (!cineRate) {
254
- cineRate = Math.round(numberOfFrames / this.videoElement.duration);
255
- }
256
- this.fps = cineRate;
257
- this.numberOfFrames = numberOfFrames;
258
- this.setFrameRange([1, numberOfFrames]);
209
+ const stream = loadVideoStreamMetadata(imageId);
210
+ this.modality = stream.modality;
211
+ this.metadata = stream.metadata;
212
+ this.numberOfFrames = stream.numberOfFrames;
213
+ return this.setVideoURL(stream.renderedUrl).then(() => {
214
+ const playbackInfo = normalizeVideoPlaybackInfo({
215
+ durationSeconds: this.videoElement.duration,
216
+ cineRate: stream.cineRate,
217
+ numberOfFrames: stream.numberOfFrames,
218
+ });
219
+ this.fps = playbackInfo.fps;
220
+ this.numberOfFrames = playbackInfo.numberOfFrames;
221
+ this.setFrameRange(playbackInfo.frameRange);
259
222
  this.initialRender = () => {
260
223
  this.initialRender = null;
261
224
  this.pause();
@@ -309,7 +272,7 @@ class VideoViewport extends Viewport {
309
272
  this.renderWhilstPlaying();
310
273
  }
311
274
  }
312
- catch (e) {
275
+ catch (_error) {
313
276
  }
314
277
  }
315
278
  pause() {
@@ -317,7 +280,7 @@ class VideoViewport extends Viewport {
317
280
  this.isPlaying = false;
318
281
  this.videoElement.pause();
319
282
  }
320
- catch (e) {
283
+ catch {
321
284
  }
322
285
  }
323
286
  async scroll(delta = 1) {
@@ -327,7 +290,7 @@ class VideoViewport extends Viewport {
327
290
  const currentTime = videoElement.currentTime;
328
291
  const newTime = currentTime + (delta * this.scrollSpeed) / this.fps;
329
292
  videoElement.currentTime = newTime;
330
- const seekEventListener = (evt) => {
293
+ const seekEventListener = () => {
331
294
  renderFrame();
332
295
  videoElement.removeEventListener('seeked', seekEventListener);
333
296
  };
@@ -338,7 +301,7 @@ class VideoViewport extends Viewport {
338
301
  const renderFrame = this.renderFrame;
339
302
  videoElement.currentTime = 0;
340
303
  if (videoElement.paused) {
341
- const seekEventListener = (evt) => {
304
+ const seekEventListener = () => {
342
305
  renderFrame();
343
306
  videoElement.removeEventListener('seeked', seekEventListener);
344
307
  };
@@ -350,7 +313,7 @@ class VideoViewport extends Viewport {
350
313
  const renderFrame = this.renderFrame;
351
314
  videoElement.currentTime = videoElement.duration;
352
315
  if (videoElement.paused) {
353
- const seekEventListener = (evt) => {
316
+ const seekEventListener = () => {
354
317
  renderFrame();
355
318
  videoElement.removeEventListener('seeked', seekEventListener);
356
319
  };
@@ -362,7 +325,7 @@ class VideoViewport extends Viewport {
362
325
  const renderFrame = this.renderFrame;
363
326
  videoElement.currentTime = timeInSeconds;
364
327
  if (videoElement.paused) {
365
- const seekEventListener = (evt) => {
328
+ const seekEventListener = () => {
366
329
  renderFrame();
367
330
  videoElement.removeEventListener('seeked', seekEventListener);
368
331
  };
@@ -579,7 +542,7 @@ class VideoViewport extends Viewport {
579
542
  return current;
580
543
  }
581
544
  getViewReferenceId(specifier = {}) {
582
- const { sliceIndex: sliceIndex } = specifier;
545
+ const { sliceIndex } = specifier;
583
546
  if (sliceIndex === undefined) {
584
547
  return `videoId:${this.getCurrentImageId()}`;
585
548
  }
@@ -749,4 +712,5 @@ class VideoViewport extends Viewport {
749
712
  return new CanvasActor(this, image);
750
713
  }
751
714
  }
715
+ VideoViewport.frameRangeExtractor = /(\/frames\/|[&?]frameNumber=)([^/&?]*)/i;
752
716
  export default VideoViewport;
@@ -4,7 +4,7 @@ import type { mat4 } from 'gl-matrix';
4
4
  import ViewportStatus from '../enums/ViewportStatus';
5
5
  import ViewportType from '../enums/ViewportType';
6
6
  import type { ICamera, ActorEntry, IRenderingEngine, ViewportInputOptions, Point2, Point3, FlipDirection, DisplayArea, ViewPresentation, ViewReference, ViewportProperties, ImageActor } from '../types';
7
- import type { ViewportInput, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewPresentationSelector, DataSetOptions, PlaneRestriction } from '../types/IViewport';
7
+ import type { ViewportInput, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewPresentationSelector, DataSetOptions, PlaneRestriction, RenderingEngineResizeOptions } from '../types/IViewport';
8
8
  import type { vtkSlabCamera } from './vtkClasses/vtkSlabCamera';
9
9
  import type IImageCalibration from '../types/IImageCalibration';
10
10
  import { InterpolationType } from '../enums';
@@ -17,6 +17,7 @@ declare class Viewport {
17
17
  readonly canvas: HTMLCanvasElement;
18
18
  readonly renderingEngineId: string;
19
19
  readonly type: ViewportType;
20
+ requestedType?: ViewportType;
20
21
  protected insetImageMultiplier: number;
21
22
  protected flipHorizontal: boolean;
22
23
  protected flipVertical: boolean;
@@ -47,6 +48,8 @@ declare class Viewport {
47
48
  getNumberOfSlices: () => number;
48
49
  protected setRotation: (_rotation: number) => void;
49
50
  static get useCustomRenderingPipeline(): boolean;
51
+ getUseCustomRenderingPipeline(): boolean;
52
+ resizeForRenderingEngine({ keepCamera, }?: RenderingEngineResizeOptions): void;
50
53
  isOrientationChangeable(): boolean;
51
54
  private viewportWidgets;
52
55
  addWidget: (widgetId: any, widget: any) => void;
@@ -54,6 +57,8 @@ declare class Viewport {
54
57
  getWidgets: () => any[];
55
58
  getRenderPasses: () => any;
56
59
  removeWidgets: () => void;
60
+ dispose(): void;
61
+ destroy(): void;
57
62
  setRendered(): void;
58
63
  setNeedsRender(): void;
59
64
  protected setColorTransform(voiRange: any, averageWhite: any): any;
@@ -104,13 +109,13 @@ declare class Viewport {
104
109
  }): boolean;
105
110
  protected setInitialCamera(camera: ICamera): void;
106
111
  protected setFitToCanvasCamera(camera: ICamera): void;
107
- getPan(initialCamera?: ICamera): Point2;
112
+ getPan(initialCamera?: ICamera<number>): Point2;
108
113
  getCurrentImageIdIndex(): number;
109
114
  getSliceIndex(): number;
110
115
  getImageData(): any;
111
116
  getViewReferenceId(_specifier?: ViewReferenceSpecifier): string;
112
117
  setPan(pan: Point2, storeAsInitialCamera?: boolean): void;
113
- getZoom(compareCamera?: ICamera): number;
118
+ getZoom(compareCamera?: ICamera<number>): number;
114
119
  setZoom(value: number, storeAsInitialCamera?: boolean): void;
115
120
  getAspectRatio(): Point2;
116
121
  setAspectRatio(value: Point2, isFitViewportAfterStretch?: boolean, storeAsInitialCamera?: boolean): void;
@@ -131,7 +136,7 @@ declare class Viewport {
131
136
  isPlaneViewable(planeRestriction: PlaneRestriction, options?: ReferenceCompatibleOptions): boolean;
132
137
  isReferenceViewable(viewRef: ViewReference, options?: ReferenceCompatibleOptions): boolean;
133
138
  getViewPresentation(viewPresSel?: ViewPresentationSelector): ViewPresentation;
134
- setViewReference(viewRef: ViewReference): void;
139
+ setViewReference(_viewRef: ViewReference): void;
135
140
  setViewPresentation(viewPres: ViewPresentation): void;
136
141
  _getCorners(bounds: number[]): number[][];
137
142
  _getFocalPointForResetCamera(centeredFocalPoint: Point3, previousCamera: ICamera, { resetPan, resetToCenter }: {
@@ -141,6 +146,10 @@ declare class Viewport {
141
146
  _isInBounds(point: Point3, bounds: number[]): boolean;
142
147
  _getEdges(bounds: number[]): [number[], number[]][];
143
148
  static boundsRadius(bounds: number[]): number;
144
- setDataIds(_imageIds: string[], _options?: DataSetOptions): void;
149
+ setDataList(_entries: Array<{
150
+ dataId: string;
151
+ options?: DataSetOptions;
152
+ }>): void;
145
153
  }
154
+ export declare function getVolumeCenterIJK(dimensions: number[], direction: ArrayLike<number>, viewPlaneNormal: ArrayLike<number>): number[];
146
155
  export default Viewport;
@@ -18,17 +18,6 @@ import { updatePlaneRestriction } from '../utilities/updatePlaneRestriction';
18
18
  import { getCubeSizeInView } from '../utilities/getPlaneCubeIntersectionDimensions';
19
19
  import { getConfiguration } from '../init';
20
20
  class Viewport {
21
- static { this.CameraViewPresentation = {
22
- rotation: true,
23
- pan: true,
24
- zoom: true,
25
- aspectRatio: true,
26
- displayArea: true,
27
- }; }
28
- static { this.TransferViewPresentation = {
29
- windowLevel: true,
30
- paletteLut: true,
31
- }; }
32
21
  constructor(props) {
33
22
  this.insetImageMultiplier = getConfiguration().rendering
34
23
  ?.useLegacyCameraFOV
@@ -92,9 +81,27 @@ class Viewport {
92
81
  static get useCustomRenderingPipeline() {
93
82
  return false;
94
83
  }
84
+ getUseCustomRenderingPipeline() {
85
+ return this.constructor.useCustomRenderingPipeline;
86
+ }
87
+ resizeForRenderingEngine({ keepCamera = true, } = {}) {
88
+ if (typeof this.resize === 'function') {
89
+ this.resize();
90
+ }
91
+ const previousCamera = keepCamera ? this.getCamera() : undefined;
92
+ this.resetCamera();
93
+ if (previousCamera) {
94
+ this.setCamera(previousCamera);
95
+ }
96
+ }
95
97
  isOrientationChangeable() {
96
98
  return false;
97
99
  }
100
+ dispose() {
101
+ }
102
+ destroy() {
103
+ this.dispose();
104
+ }
98
105
  setRendered() {
99
106
  if (this.viewportStatus === ViewportStatus.NO_DATA ||
100
107
  this.viewportStatus === ViewportStatus.LOADING) {
@@ -144,7 +151,7 @@ class Viewport {
144
151
  renderingEngine.renderViewport(this.id);
145
152
  }
146
153
  setOptions(options, immediate = false) {
147
- this.options = structuredClone(options);
154
+ this.options = deepClone(options);
148
155
  if (this.options?.displayArea) {
149
156
  this.setDisplayArea(this.options?.displayArea);
150
157
  }
@@ -153,7 +160,7 @@ class Viewport {
153
160
  }
154
161
  }
155
162
  reset(immediate = false) {
156
- this.options = structuredClone(this.defaultOptions);
163
+ this.options = deepClone(this.defaultOptions);
157
164
  if (immediate) {
158
165
  this.render();
159
166
  }
@@ -173,7 +180,7 @@ class Viewport {
173
180
  const viewPlaneNormalToSet = vec3.negate(vec3.create(), viewPlaneNormal);
174
181
  const distance = vec3.distance(position, focalPoint);
175
182
  const dimensions = imageData.getDimensions();
176
- const middleIJK = dimensions.map((d) => Math.floor(d / 2));
183
+ const middleIJK = getVolumeCenterIJK(dimensions, imageData.getDirection(), viewPlaneNormal);
177
184
  const idx = [middleIJK[0], middleIJK[1], middleIJK[2]];
178
185
  const centeredFocalPoint = imageData.indexToWorld(idx, vec3.create());
179
186
  const resetFocalPoint = this._getFocalPointForResetCamera(centeredFocalPoint, camera, { resetPan: true, resetToCenter: false });
@@ -530,18 +537,13 @@ class Viewport {
530
537
  focalPoint[2] = (bounds[4] + bounds[5]) / 2.0;
531
538
  if (imageData) {
532
539
  const dimensions = imageData.getDimensions();
533
- const middleIJK = dimensions.map((d) => Math.floor(d / 2));
540
+ const middleIJK = getVolumeCenterIJK(dimensions, imageData.getDirection(), viewPlaneNormal);
534
541
  const idx = [middleIJK[0], middleIJK[1], middleIJK[2]];
535
542
  imageData.indexToWorld(idx, focalPoint);
536
543
  }
537
- let { widthWorld, heightWorld } = imageData
544
+ const { widthWorld, heightWorld } = imageData
538
545
  ? getCubeSizeInView(imageData, viewPlaneNormal, viewUp)
539
546
  : this._getWorldDistanceViewUpAndViewRight(bounds, viewUp, viewPlaneNormal);
540
- if (imageData) {
541
- const spacing = imageData.getSpacing();
542
- widthWorld = Math.max(spacing[0], widthWorld - spacing[0]);
543
- heightWorld = Math.max(spacing[1], heightWorld - spacing[1]);
544
- }
545
547
  const canvasSize = [this.sWidth, this.sHeight];
546
548
  const boundsAspectRatio = widthWorld / heightWorld;
547
549
  const canvasAspectRatio = canvasSize[0] / canvasSize[1];
@@ -1089,7 +1091,7 @@ class Viewport {
1089
1091
  }
1090
1092
  return target;
1091
1093
  }
1092
- setViewReference(viewRef) {
1094
+ setViewReference(_viewRef) {
1093
1095
  }
1094
1096
  setViewPresentation(viewPres) {
1095
1097
  if (!viewPres) {
@@ -1184,8 +1186,42 @@ class Viewport {
1184
1186
  const radius = Math.sqrt(w1 + w2 + w3 || 1) * 0.5;
1185
1187
  return radius;
1186
1188
  }
1187
- setDataIds(_imageIds, _options) {
1188
- throw new Error('Unsupported operatoin setDataIds');
1189
+ setDataList(_entries) {
1190
+ throw new Error('Unsupported operation setDataList');
1189
1191
  }
1190
1192
  }
1193
+ Viewport.CameraViewPresentation = {
1194
+ rotation: true,
1195
+ pan: true,
1196
+ zoom: true,
1197
+ aspectRatio: true,
1198
+ displayArea: true,
1199
+ };
1200
+ Viewport.TransferViewPresentation = {
1201
+ windowLevel: true,
1202
+ paletteLut: true,
1203
+ };
1204
+ export function getVolumeCenterIJK(dimensions, direction, viewPlaneNormal) {
1205
+ const ijkAxes = [
1206
+ [direction[0], direction[1], direction[2]],
1207
+ [direction[3], direction[4], direction[5]],
1208
+ [direction[6], direction[7], direction[8]],
1209
+ ];
1210
+ const normal = [
1211
+ viewPlaneNormal[0],
1212
+ viewPlaneNormal[1],
1213
+ viewPlaneNormal[2],
1214
+ ];
1215
+ let sliceAxis = 0;
1216
+ let maxDot = -1;
1217
+ for (let i = 0; i < 3; i++) {
1218
+ const dot = Math.abs(vec3.dot(ijkAxes[i], normal));
1219
+ if (dot > maxDot) {
1220
+ maxDot = dot;
1221
+ sliceAxis = i;
1222
+ }
1223
+ }
1224
+ const isAxisAligned = Math.abs(maxDot - 1) < 1e-3;
1225
+ return dimensions.map((d, i) => i === sliceAxis && isAxisAligned ? Math.floor(d / 2) : (d - 1) / 2);
1226
+ }
1191
1227
  export default Viewport;
@@ -5,9 +5,6 @@ import { EPSILON, MPR_CAMERA_VALUES, RENDERING_DEFAULTS } from '../constants';
5
5
  import { OrientationAxis, Events } from '../enums';
6
6
  import { actorIsA } from '../utilities/actorCheck';
7
7
  import getClosestImageId from '../utilities/getClosestImageId';
8
- import getSliceRange from '../utilities/getSliceRange';
9
- import getSpacingInNormalDirection from '../utilities/getSpacingInNormalDirection';
10
- import snapFocalPointToSlice from '../utilities/snapFocalPointToSlice';
11
8
  import triggerEvent from '../utilities/triggerEvent';
12
9
  import BaseVolumeViewport from './BaseVolumeViewport';
13
10
  import setDefaultVolumeVOI from './helpers/setDefaultVolumeVOI';
@@ -16,6 +13,7 @@ import { transformCanvasToIJK } from '../utilities/transformCanvasToIJK';
16
13
  import { transformIJKToCanvas } from '../utilities/transformIJKToCanvas';
17
14
  import getVolumeViewportScrollInfo from '../utilities/getVolumeViewportScrollInfo';
18
15
  import { calculateCameraPosition, getCameraVectors, } from './helpers/getCameraVectors';
16
+ import { getPlanarVolumeSliceNavigationState, getPlanarVolumeSlicePoint, } from './helpers/planarVolumeRendering';
19
17
  class VolumeViewport extends BaseVolumeViewport {
20
18
  constructor(props) {
21
19
  super(props);
@@ -66,14 +64,29 @@ class VolumeViewport extends BaseVolumeViewport {
66
64
  const imageVolume = cache.getVolume(volumeId);
67
65
  const camera = this.getCamera();
68
66
  const { focalPoint, position, viewPlaneNormal } = camera;
69
- const spacingInNormalDirection = getSpacingInNormalDirection(imageVolume, viewPlaneNormal);
70
- const sliceRange = getSliceRange(actorEntry.actor, viewPlaneNormal, focalPoint);
67
+ const { currentSliceIndex, sliceRange, spacingInNormalDirection } = getPlanarVolumeSliceNavigationState({
68
+ actor: actorEntry.actor,
69
+ camera: {
70
+ focalPoint,
71
+ position,
72
+ viewPlaneNormal,
73
+ },
74
+ imageVolume,
75
+ });
71
76
  const numSlicesBackward = Math.round((sliceRange.current - sliceRange.min) / spacingInNormalDirection);
72
77
  const numSlicesForward = Math.round((sliceRange.max - sliceRange.current) / spacingInNormalDirection);
73
- const currentSliceIndex = this.getSliceIndex();
74
78
  const focalPoints = [];
75
79
  for (let i = -numSlicesBackward; i <= numSlicesForward; i++) {
76
- const { newFocalPoint: point } = snapFocalPointToSlice(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, i);
80
+ const { newFocalPoint: point } = getPlanarVolumeSlicePoint({
81
+ camera: {
82
+ focalPoint,
83
+ position,
84
+ viewPlaneNormal,
85
+ },
86
+ delta: i,
87
+ sliceRange,
88
+ spacingInNormalDirection,
89
+ });
77
90
  focalPoints.push({ sliceIndex: currentSliceIndex + i, point });
78
91
  }
79
92
  return focalPoints;
@@ -3,16 +3,16 @@ import type { WSIViewportProperties, Point3, Point2, ICamera, VOIRange, CPUIImag
3
3
  import { Transform } from './helpers/cpuFallback/rendering/transform';
4
4
  import Viewport from './Viewport';
5
5
  import type { DataSetOptions } from '../types/IViewport';
6
+ import { type WSIClientLike, type WSIImageDataMetadata, type WSIMapLike, type WSIMapViewLike } from '../utilities/WSIUtilities';
6
7
  declare class WSIViewport extends Viewport {
7
8
  modality: any;
8
9
  protected imageIds: string[];
9
10
  readonly uid: any;
10
11
  readonly renderingEngineId: string;
11
12
  private frameOfReferenceUID;
12
- protected metadata: any;
13
- protected metadataDicomweb: any;
13
+ protected metadata: WSIImageDataMetadata;
14
14
  private microscopyElement;
15
- protected map: any;
15
+ protected map: WSIMapLike;
16
16
  private imageURISet;
17
17
  private internalCamera;
18
18
  private viewer;
@@ -25,8 +25,7 @@ declare class WSIViewport extends Viewport {
25
25
  private addEventListeners;
26
26
  private removeEventListeners;
27
27
  private elementDisabledHandler;
28
- private getImageDataMetadata;
29
- setFrameNumber(frame: number): Promise<void>;
28
+ setFrameNumber(_frame: number): Promise<void>;
30
29
  setProperties(props: WSIViewportProperties): void;
31
30
  getProperties: () => WSIViewportProperties;
32
31
  resetProperties(): void;
@@ -45,7 +44,6 @@ declare class WSIViewport extends Viewport {
45
44
  getCamera(): ICamera;
46
45
  resetCamera: () => boolean;
47
46
  getNumberOfSlices: () => number;
48
- static getDicomMicroscopyViewer: () => Promise<any>;
49
47
  getFrameOfReferenceUID: () => string;
50
48
  resize: () => void;
51
49
  worldToIndexWSI(point: Point3): Point2;
@@ -54,27 +52,29 @@ declare class WSIViewport extends Viewport {
54
52
  indexToWorld(point: Point3): Point3;
55
53
  canvasToWorld: (canvasPos: Point2) => Point3;
56
54
  worldToCanvas: (worldPos: Point3) => Point2;
55
+ setDataList(entries: Array<{
56
+ dataId: string;
57
+ options?: Record<string, unknown>;
58
+ }>): Promise<void>;
57
59
  setDataIds(imageIds: string[], options?: DataSetOptions & {
58
60
  miniNavigationOverlay?: boolean;
59
- webClient: unknown;
61
+ webClient: WSIClientLike;
60
62
  }): Promise<void>;
61
- setWSI(imageIds: string[], client: any): Promise<void>;
63
+ setWSI(imageIds: string[], client: WSIClientLike): Promise<void>;
62
64
  postrender: () => void;
63
65
  scroll(delta: number): void;
64
66
  getRotation: () => number;
65
67
  protected canvasToIndex: (canvasPos: Point2) => Point3;
66
68
  protected indexToCanvas: (indexPos: Point3) => Point2;
67
69
  getSliceIndex(): number;
68
- getView(): any;
70
+ getView(): WSIMapViewLike | undefined;
69
71
  private refreshRenderValues;
70
72
  customRenderViewportToCanvas: () => void;
71
- getZoom(): any;
73
+ getZoom(): number;
72
74
  setZoom(zoom: number): void;
73
75
  getImageIds: () => Array<string>;
74
76
  protected getTransform(): Transform;
75
77
  getViewReferenceId(): string;
76
78
  getCurrentImageIdIndex(): number;
77
- private static overlayCssId;
78
- static addMiniNavigationOverlayCss(): void;
79
79
  }
80
80
  export default WSIViewport;