@cornerstonejs/core 5.0.0-beta.1 → 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 (423) hide show
  1. package/dist/esm/RenderingEngine/BaseRenderingEngine.d.ts +4 -5
  2. package/dist/esm/RenderingEngine/BaseRenderingEngine.js +57 -69
  3. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +6 -4
  4. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +39 -30
  5. package/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.d.ts +1 -0
  6. package/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.js +3 -0
  7. package/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.d.ts +10 -2
  8. package/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.js +64 -6
  9. package/dist/esm/RenderingEngine/CanvasActor/index.d.ts +4 -0
  10. package/dist/esm/RenderingEngine/CanvasActor/index.js +59 -48
  11. package/dist/esm/RenderingEngine/ContextPoolRenderingEngine.d.ts +3 -4
  12. package/dist/esm/RenderingEngine/ContextPoolRenderingEngine.js +55 -37
  13. package/dist/esm/RenderingEngine/ECGViewport.d.ts +1 -1
  14. package/dist/esm/RenderingEngine/ECGViewport.js +34 -160
  15. package/dist/esm/RenderingEngine/GenericViewport/DefaultRenderPathResolver.d.ts +10 -0
  16. package/dist/esm/RenderingEngine/GenericViewport/DefaultRenderPathResolver.js +25 -0
  17. package/dist/esm/RenderingEngine/GenericViewport/ECG/CanvasECGRenderPath.d.ts +17 -0
  18. package/dist/esm/RenderingEngine/GenericViewport/ECG/CanvasECGRenderPath.js +144 -0
  19. package/dist/esm/RenderingEngine/GenericViewport/ECG/DefaultECGDataProvider.d.ts +5 -0
  20. package/dist/esm/RenderingEngine/GenericViewport/ECG/DefaultECGDataProvider.js +13 -0
  21. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGProjectionTypes.d.ts +42 -0
  22. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGProjectionTypes.js +2 -0
  23. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGRenderPathResolver.d.ts +4 -0
  24. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGRenderPathResolver.js +8 -0
  25. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGResolvedView.d.ts +27 -0
  26. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGResolvedView.js +121 -0
  27. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewport.d.ts +55 -0
  28. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewport.js +289 -0
  29. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportLegacyAdapter.d.ts +13 -0
  30. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportLegacyAdapter.js +70 -0
  31. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportTypes.d.ts +69 -0
  32. package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportTypes.js +0 -0
  33. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionAdapter.d.ts +8 -0
  34. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionAdapter.js +12 -0
  35. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionPresentation.d.ts +7 -0
  36. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionPresentation.js +52 -0
  37. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionSnapshot.d.ts +2 -0
  38. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionSnapshot.js +94 -0
  39. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgViewportCamera.d.ts +27 -0
  40. package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgViewportCamera.js +82 -0
  41. package/dist/esm/RenderingEngine/GenericViewport/ECG/index.d.ts +10 -0
  42. package/dist/esm/RenderingEngine/GenericViewport/ECG/index.js +8 -0
  43. package/dist/esm/RenderingEngine/GenericViewport/GenericViewport.d.ts +82 -0
  44. package/dist/esm/RenderingEngine/GenericViewport/GenericViewport.js +369 -0
  45. package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuImageSliceRenderPath.d.ts +24 -0
  46. package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuImageSliceRenderPath.js +456 -0
  47. package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuVolumeSliceRenderPath.d.ts +25 -0
  48. package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuVolumeSliceRenderPath.js +514 -0
  49. package/dist/esm/RenderingEngine/GenericViewport/Planar/DefaultPlanarDataProvider.d.ts +6 -0
  50. package/dist/esm/RenderingEngine/GenericViewport/Planar/DefaultPlanarDataProvider.js +80 -0
  51. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUScalarViewportSampler.d.ts +47 -0
  52. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUScalarViewportSampler.js +439 -0
  53. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUVolumeSampler.d.ts +98 -0
  54. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUVolumeSampler.js +686 -0
  55. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarLegacyCompatibilityController.d.ts +81 -0
  56. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarLegacyCompatibilityController.js +526 -0
  57. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarMountedData.d.ts +34 -0
  58. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarMountedData.js +111 -0
  59. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarProjectionTypes.d.ts +58 -0
  60. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarProjectionTypes.js +2 -0
  61. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathDecisionService.d.ts +28 -0
  62. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathDecisionService.js +145 -0
  63. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathResolver.d.ts +4 -0
  64. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathResolver.js +16 -0
  65. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarResolvedView.d.ts +91 -0
  66. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarResolvedView.js +305 -0
  67. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewReferenceController.d.ts +72 -0
  68. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewReferenceController.js +406 -0
  69. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewport.d.ts +187 -0
  70. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewport.js +1175 -0
  71. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportLegacyAdapter.d.ts +44 -0
  72. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportLegacyAdapter.js +279 -0
  73. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportTypes.d.ts +151 -0
  74. package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportTypes.js +0 -0
  75. package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkImageMapperRenderPath.d.ts +21 -0
  76. package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkImageMapperRenderPath.js +259 -0
  77. package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkVolumeSliceRenderPath.d.ts +23 -0
  78. package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkVolumeSliceRenderPath.js +289 -0
  79. package/dist/esm/RenderingEngine/GenericViewport/Planar/buildPlanarActorEntry.d.ts +10 -0
  80. package/dist/esm/RenderingEngine/GenericViewport/Planar/buildPlanarActorEntry.js +54 -0
  81. package/dist/esm/RenderingEngine/GenericViewport/Planar/index.d.ts +23 -0
  82. package/dist/esm/RenderingEngine/GenericViewport/Planar/index.js +20 -0
  83. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarActorCompatibility.d.ts +4 -0
  84. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarActorCompatibility.js +42 -0
  85. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarAdapterCoordinateTransforms.d.ts +44 -0
  86. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarAdapterCoordinateTransforms.js +129 -0
  87. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCPUVolumeSamplingUtils.d.ts +11 -0
  88. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCPUVolumeSamplingUtils.js +54 -0
  89. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCameraScale.d.ts +10 -0
  90. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCameraScale.js +35 -0
  91. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuImageTransforms.d.ts +3 -0
  92. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuImageTransforms.js +35 -0
  93. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuViewportMath.d.ts +10 -0
  94. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuViewportMath.js +35 -0
  95. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarImageEvents.d.ts +22 -0
  96. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarImageEvents.js +28 -0
  97. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarLegacyCompatibility.d.ts +13 -0
  98. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarLegacyCompatibility.js +136 -0
  99. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarMath.d.ts +3 -0
  100. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarMath.js +15 -0
  101. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarOrientationVectors.d.ts +12 -0
  102. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarOrientationVectors.js +37 -0
  103. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionAdapter.d.ts +7 -0
  104. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionAdapter.js +28 -0
  105. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionFallback.d.ts +4 -0
  106. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionFallback.js +25 -0
  107. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionPresentation.d.ts +5 -0
  108. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionPresentation.js +95 -0
  109. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionSnapshot.d.ts +6 -0
  110. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionSnapshot.js +126 -0
  111. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderCamera.d.ts +46 -0
  112. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderCamera.js +332 -0
  113. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathProjection.d.ts +51 -0
  114. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathProjection.js +96 -0
  115. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathSelector.d.ts +4 -0
  116. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathSelector.js +12 -0
  117. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRuntimeTypes.d.ts +86 -0
  118. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRuntimeTypes.js +0 -0
  119. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarSliceBasis.d.ts +51 -0
  120. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarSliceBasis.js +330 -0
  121. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewPresentation.d.ts +16 -0
  122. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewPresentation.js +25 -0
  123. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewReference.d.ts +46 -0
  124. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewReference.js +243 -0
  125. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewState.d.ts +5 -0
  126. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewState.js +59 -0
  127. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumePresentation.d.ts +10 -0
  128. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumePresentation.js +223 -0
  129. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumeSliceBlendMode.d.ts +5 -0
  130. package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumeSliceBlendMode.js +36 -0
  131. package/dist/esm/RenderingEngine/GenericViewport/ResolvedViewportView.d.ts +12 -0
  132. package/dist/esm/RenderingEngine/GenericViewport/ResolvedViewportView.js +10 -0
  133. package/dist/esm/RenderingEngine/GenericViewport/Video/DefaultVideoDataProvider.d.ts +5 -0
  134. package/dist/esm/RenderingEngine/GenericViewport/Video/DefaultVideoDataProvider.js +18 -0
  135. package/dist/esm/RenderingEngine/GenericViewport/Video/HtmlVideoRenderPath.d.ts +19 -0
  136. package/dist/esm/RenderingEngine/GenericViewport/Video/HtmlVideoRenderPath.js +141 -0
  137. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoProjectionTypes.d.ts +45 -0
  138. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoProjectionTypes.js +2 -0
  139. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoRenderPathResolver.d.ts +4 -0
  140. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoRenderPathResolver.js +8 -0
  141. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoResolvedView.d.ts +29 -0
  142. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoResolvedView.js +108 -0
  143. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewport.d.ts +59 -0
  144. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewport.js +458 -0
  145. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportLegacyAdapter.d.ts +15 -0
  146. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportLegacyAdapter.js +114 -0
  147. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportTypes.d.ts +45 -0
  148. package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportTypes.js +0 -0
  149. package/dist/esm/RenderingEngine/GenericViewport/Video/index.d.ts +10 -0
  150. package/dist/esm/RenderingEngine/GenericViewport/Video/index.js +8 -0
  151. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionAdapter.d.ts +8 -0
  152. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionAdapter.js +12 -0
  153. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionPresentation.d.ts +7 -0
  154. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionPresentation.js +66 -0
  155. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionSnapshot.d.ts +2 -0
  156. package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionSnapshot.js +86 -0
  157. package/dist/esm/RenderingEngine/GenericViewport/Video/videoViewportCamera.d.ts +30 -0
  158. package/dist/esm/RenderingEngine/GenericViewport/Video/videoViewportCamera.js +105 -0
  159. package/dist/esm/RenderingEngine/GenericViewport/ViewportArchitectureTypes.d.ts +126 -0
  160. package/dist/esm/RenderingEngine/GenericViewport/ViewportArchitectureTypes.js +20 -0
  161. package/dist/esm/RenderingEngine/GenericViewport/ViewportCameraTypes.d.ts +12 -0
  162. package/dist/esm/RenderingEngine/GenericViewport/ViewportCameraTypes.js +0 -0
  163. package/dist/esm/RenderingEngine/GenericViewport/ViewportProjectionTypes.d.ts +101 -0
  164. package/dist/esm/RenderingEngine/GenericViewport/ViewportProjectionTypes.js +0 -0
  165. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/DefaultVolume3DDataProvider.d.ts +8 -0
  166. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/DefaultVolume3DDataProvider.js +58 -0
  167. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DProjectionTypes.d.ts +35 -0
  168. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DProjectionTypes.js +2 -0
  169. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DRenderPathResolver.d.ts +4 -0
  170. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DRenderPathResolver.js +9 -0
  171. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DResolvedView.d.ts +18 -0
  172. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DResolvedView.js +42 -0
  173. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VolumeViewport3DLegacyAdapter.d.ts +39 -0
  174. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VolumeViewport3DLegacyAdapter.js +296 -0
  175. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkGeometry3DRenderPath.d.ts +22 -0
  176. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkGeometry3DRenderPath.js +156 -0
  177. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkVolume3DRenderPath.d.ts +23 -0
  178. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkVolume3DRenderPath.js +205 -0
  179. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/applyVolume3DCamera.d.ts +4 -0
  180. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/applyVolume3DCamera.js +33 -0
  181. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/index.d.ts +10 -0
  182. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/index.js +8 -0
  183. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3D.d.ts +60 -0
  184. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3D.js +399 -0
  185. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3DTypes.d.ts +88 -0
  186. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3DTypes.js +0 -0
  187. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionAdapter.d.ts +7 -0
  188. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionAdapter.js +27 -0
  189. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionCamera.d.ts +12 -0
  190. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionCamera.js +35 -0
  191. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionPresentation.d.ts +4 -0
  192. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionPresentation.js +22 -0
  193. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionSnapshot.d.ts +2 -0
  194. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionSnapshot.js +52 -0
  195. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/vtkVolume3DInitialCamera.d.ts +3 -0
  196. package/dist/esm/RenderingEngine/GenericViewport/Volume3D/vtkVolume3DInitialCamera.js +110 -0
  197. package/dist/esm/RenderingEngine/GenericViewport/WSI/DefaultWSIDataProvider.d.ts +6 -0
  198. package/dist/esm/RenderingEngine/GenericViewport/WSI/DefaultWSIDataProvider.js +35 -0
  199. package/dist/esm/RenderingEngine/GenericViewport/WSI/DicomMicroscopyRenderPath.d.ts +16 -0
  200. package/dist/esm/RenderingEngine/GenericViewport/WSI/DicomMicroscopyRenderPath.js +125 -0
  201. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIProjectionTypes.d.ts +40 -0
  202. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIProjectionTypes.js +2 -0
  203. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIRenderPathResolver.d.ts +4 -0
  204. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIRenderPathResolver.js +8 -0
  205. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIResolvedView.d.ts +26 -0
  206. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIResolvedView.js +104 -0
  207. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewport.d.ts +69 -0
  208. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewport.js +392 -0
  209. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportLegacyAdapter.d.ts +22 -0
  210. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportLegacyAdapter.js +144 -0
  211. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportTypes.d.ts +58 -0
  212. package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportTypes.js +0 -0
  213. package/dist/esm/RenderingEngine/GenericViewport/WSI/index.d.ts +10 -0
  214. package/dist/esm/RenderingEngine/GenericViewport/WSI/index.js +8 -0
  215. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionAdapter.d.ts +8 -0
  216. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionAdapter.js +12 -0
  217. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionPresentation.d.ts +7 -0
  218. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionPresentation.js +47 -0
  219. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionSnapshot.d.ts +2 -0
  220. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionSnapshot.js +90 -0
  221. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiTransformUtils.d.ts +29 -0
  222. package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiTransformUtils.js +128 -0
  223. package/dist/esm/RenderingEngine/GenericViewport/genericViewportDataSetAccess.d.ts +35 -0
  224. package/dist/esm/RenderingEngine/GenericViewport/genericViewportDataSetAccess.js +87 -0
  225. package/dist/esm/RenderingEngine/GenericViewport/genericViewportReferenceCompatibility.d.ts +18 -0
  226. package/dist/esm/RenderingEngine/GenericViewport/genericViewportReferenceCompatibility.js +238 -0
  227. package/dist/esm/RenderingEngine/GenericViewport/index.d.ts +23 -0
  228. package/dist/esm/RenderingEngine/GenericViewport/index.js +14 -0
  229. package/dist/esm/RenderingEngine/GenericViewport/setVtkCameraClippingRange.d.ts +2 -0
  230. package/dist/esm/RenderingEngine/GenericViewport/setVtkCameraClippingRange.js +8 -0
  231. package/dist/esm/RenderingEngine/GenericViewport/viewportProjection.d.ts +98 -0
  232. package/dist/esm/RenderingEngine/GenericViewport/viewportProjection.js +81 -0
  233. package/dist/esm/RenderingEngine/RenderingEngine.d.ts +3 -5
  234. package/dist/esm/RenderingEngine/RenderingEngine.js +3 -9
  235. package/dist/esm/RenderingEngine/StackViewport.d.ts +4 -1
  236. package/dist/esm/RenderingEngine/StackViewport.js +103 -53
  237. package/dist/esm/RenderingEngine/TiledRenderingEngine.d.ts +1 -0
  238. package/dist/esm/RenderingEngine/TiledRenderingEngine.js +23 -20
  239. package/dist/esm/RenderingEngine/VideoViewport.d.ts +5 -13
  240. package/dist/esm/RenderingEngine/VideoViewport.js +33 -68
  241. package/dist/esm/RenderingEngine/Viewport.d.ts +20 -5
  242. package/dist/esm/RenderingEngine/Viewport.js +149 -29
  243. package/dist/esm/RenderingEngine/VolumeViewport.js +26 -17
  244. package/dist/esm/RenderingEngine/VolumeViewport3D.js +2 -8
  245. package/dist/esm/RenderingEngine/WSIViewport.d.ts +12 -12
  246. package/dist/esm/RenderingEngine/WSIViewport.js +28 -101
  247. package/dist/esm/RenderingEngine/helpers/addVolumesToViewports.js +6 -8
  248. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.d.ts +4 -1
  249. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.js +157 -0
  250. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.d.ts +2 -3
  251. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.js +2 -3
  252. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/calculateTransform.js +19 -4
  253. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js +13 -3
  254. package/dist/esm/RenderingEngine/helpers/createVolumeSliceActor.d.ts +14 -0
  255. package/dist/esm/RenderingEngine/helpers/createVolumeSliceActor.js +69 -0
  256. package/dist/esm/RenderingEngine/helpers/getCameraVectors.d.ts +2 -1
  257. package/dist/esm/RenderingEngine/helpers/getCameraVectors.js +1 -1
  258. package/dist/esm/RenderingEngine/helpers/getProjectionScaleMatrix.d.ts +2 -0
  259. package/dist/esm/RenderingEngine/helpers/getProjectionScaleMatrix.js +10 -0
  260. package/dist/esm/RenderingEngine/helpers/index.d.ts +2 -1
  261. package/dist/esm/RenderingEngine/helpers/index.js +2 -1
  262. package/dist/esm/RenderingEngine/helpers/planarImageRendering.d.ts +51 -0
  263. package/dist/esm/RenderingEngine/helpers/planarImageRendering.js +116 -0
  264. package/dist/esm/RenderingEngine/helpers/planarVolumeRendering.d.ts +22 -0
  265. package/dist/esm/RenderingEngine/helpers/planarVolumeRendering.js +28 -0
  266. package/dist/esm/RenderingEngine/helpers/resolveViewportVolumeId.d.ts +1 -0
  267. package/dist/esm/RenderingEngine/helpers/resolveViewportVolumeId.js +19 -0
  268. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +3 -2
  269. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +46 -15
  270. package/dist/esm/RenderingEngine/helpers/setVolumesForViewports.js +6 -9
  271. package/dist/esm/RenderingEngine/helpers/stats/RenderModesPanel.d.ts +19 -0
  272. package/dist/esm/RenderingEngine/helpers/stats/RenderModesPanel.js +228 -0
  273. package/dist/esm/RenderingEngine/helpers/stats/StatsOverlay.d.ts +22 -3
  274. package/dist/esm/RenderingEngine/helpers/stats/StatsOverlay.js +192 -18
  275. package/dist/esm/RenderingEngine/helpers/stats/constants.d.ts +13 -1
  276. package/dist/esm/RenderingEngine/helpers/stats/constants.js +14 -1
  277. package/dist/esm/RenderingEngine/helpers/stats/enums.d.ts +2 -1
  278. package/dist/esm/RenderingEngine/helpers/stats/enums.js +1 -0
  279. package/dist/esm/RenderingEngine/helpers/stats/types.d.ts +1 -1
  280. package/dist/esm/RenderingEngine/helpers/supportsVolumeCompatibilityApi.d.ts +4 -0
  281. package/dist/esm/RenderingEngine/helpers/supportsVolumeCompatibilityApi.js +7 -0
  282. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +27 -4
  283. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js +126 -11
  284. package/dist/esm/RenderingEngine/helpers/viewportTypeUsesCustomRenderingPipeline.d.ts +3 -1
  285. package/dist/esm/RenderingEngine/helpers/viewportTypeUsesCustomRenderingPipeline.js +9 -2
  286. package/dist/esm/RenderingEngine/helpers/vtkCanvasCoordinateTransforms.d.ts +12 -0
  287. package/dist/esm/RenderingEngine/helpers/vtkCanvasCoordinateTransforms.js +57 -0
  288. package/dist/esm/RenderingEngine/index.d.ts +69 -1
  289. package/dist/esm/RenderingEngine/index.js +40 -1
  290. package/dist/esm/RenderingEngine/vtkClasses/extendedVtkCamera.d.ts +38 -0
  291. package/dist/esm/RenderingEngine/vtkClasses/extendedVtkCamera.js +35 -0
  292. package/dist/esm/RenderingEngine/vtkClasses/index.d.ts +3 -1
  293. package/dist/esm/RenderingEngine/vtkClasses/index.js +3 -1
  294. package/dist/esm/RenderingEngine/vtkClasses/vtkSharedImageResliceMapper.d.ts +7 -0
  295. package/dist/esm/RenderingEngine/vtkClasses/vtkSharedImageResliceMapper.js +21 -0
  296. package/dist/esm/RenderingEngine/vtkClasses/vtkSlabCamera.d.ts +2 -0
  297. package/dist/esm/RenderingEngine/vtkClasses/vtkSlabCamera.js +9 -2
  298. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLImageResliceMapper.d.ts +7 -0
  299. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLImageResliceMapper.js +420 -0
  300. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLViewNodeFactory.js +7 -0
  301. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +9 -3
  302. package/dist/esm/cache/cache.d.ts +1 -1
  303. package/dist/esm/cache/cache.js +4 -1
  304. package/dist/esm/cache/classes/BaseStreamingImageVolume.js +6 -6
  305. package/dist/esm/cache/classes/ImageVolume.js +5 -0
  306. package/dist/esm/enums/CalibrationTypes.d.ts +4 -12
  307. package/dist/esm/enums/CalibrationTypes.js +3 -13
  308. package/dist/esm/enums/MetadataModules.d.ts +3 -38
  309. package/dist/esm/enums/MetadataModules.js +2 -39
  310. package/dist/esm/enums/ViewportStatus.d.ts +1 -0
  311. package/dist/esm/enums/ViewportStatus.js +1 -0
  312. package/dist/esm/enums/ViewportType.d.ts +6 -1
  313. package/dist/esm/enums/ViewportType.js +5 -0
  314. package/dist/esm/enums/ViewportTypes.d.ts +5 -0
  315. package/dist/esm/enums/ViewportTypes.js +23 -0
  316. package/dist/esm/enums/index.d.ts +2 -1
  317. package/dist/esm/enums/index.js +2 -1
  318. package/dist/esm/getEnabledElement.js +4 -1
  319. package/dist/esm/index.d.ts +74 -3
  320. package/dist/esm/index.js +43 -3
  321. package/dist/esm/init.d.ts +2 -1
  322. package/dist/esm/init.js +14 -1
  323. package/dist/esm/loaders/ProgressiveRetrieveImages.js +11 -11
  324. package/dist/esm/loaders/cornerstoneMeshLoader.js +1 -1
  325. package/dist/esm/loaders/imageLoader.d.ts +2 -1
  326. package/dist/esm/loaders/imageLoader.js +25 -10
  327. package/dist/esm/loaders/volumeLoader.js +8 -4
  328. package/dist/esm/metaData.d.ts +2 -8
  329. package/dist/esm/metaData.js +2 -75
  330. package/dist/esm/types/CPUFallbackViewport.d.ts +2 -0
  331. package/dist/esm/types/Cornerstone3DConfig.d.ts +11 -0
  332. package/dist/esm/types/EventTypes.d.ts +3 -3
  333. package/dist/esm/types/IActor.d.ts +33 -0
  334. package/dist/esm/types/IActor.js +8 -0
  335. package/dist/esm/types/ICamera.d.ts +11 -3
  336. package/dist/esm/types/IEnabledElement.d.ts +1 -1
  337. package/dist/esm/types/IImage.d.ts +1 -0
  338. package/dist/esm/types/IImageCalibration.d.ts +2 -11
  339. package/dist/esm/types/IViewport.d.ts +11 -1
  340. package/dist/esm/types/IWSIViewport.d.ts +3 -2
  341. package/dist/esm/types/ImagePlaneModule.d.ts +3 -1
  342. package/dist/esm/types/MetadataModuleTypes.d.ts +1 -70
  343. package/dist/esm/types/ViewportInputOptions.d.ts +2 -0
  344. package/dist/esm/types/ViewportTypeRegistry.d.ts +33 -0
  345. package/dist/esm/types/ViewportTypeRegistry.js +0 -0
  346. package/dist/esm/types/index.d.ts +8 -3
  347. package/dist/esm/types/index.js +2 -0
  348. package/dist/esm/utilities/ECGUtilities.d.ts +83 -0
  349. package/dist/esm/utilities/ECGUtilities.js +228 -0
  350. package/dist/esm/utilities/FrameRange.js +3 -2
  351. package/dist/esm/utilities/RLEVoxelMap.js +9 -7
  352. package/dist/esm/utilities/VideoUtilities.d.ts +34 -0
  353. package/dist/esm/utilities/VideoUtilities.js +102 -0
  354. package/dist/esm/utilities/VoxelManager.d.ts +20 -1
  355. package/dist/esm/utilities/VoxelManager.js +162 -27
  356. package/dist/esm/utilities/WSIUtilities.d.ts +119 -0
  357. package/dist/esm/utilities/WSIUtilities.js +110 -0
  358. package/dist/esm/utilities/buildMetadata.js +23 -23
  359. package/dist/esm/utilities/calculateSpacingBetweenImageIds.js +6 -5
  360. package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.d.ts +5 -5
  361. package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.js +2 -15
  362. package/dist/esm/utilities/clonePoint3.d.ts +3 -0
  363. package/dist/esm/utilities/clonePoint3.js +3 -0
  364. package/dist/esm/utilities/colormap.d.ts +2 -1
  365. package/dist/esm/utilities/colormap.js +43 -4
  366. package/dist/esm/utilities/convertColorArrayToRgbString.d.ts +1 -0
  367. package/dist/esm/utilities/convertColorArrayToRgbString.js +5 -0
  368. package/dist/esm/utilities/deepClone.d.ts +1 -1
  369. package/dist/esm/utilities/deepClone.js +46 -17
  370. package/dist/esm/utilities/genericMetadataProvider.js +2 -1
  371. package/dist/esm/utilities/genericViewportDataSetMetadataProvider.d.ts +8 -0
  372. package/dist/esm/utilities/genericViewportDataSetMetadataProvider.js +23 -0
  373. package/dist/esm/utilities/getAcquisitionPlaneOrientation.d.ts +2 -0
  374. package/dist/esm/utilities/getAcquisitionPlaneOrientation.js +7 -0
  375. package/dist/esm/utilities/getClosestImageId.js +2 -1
  376. package/dist/esm/utilities/getClosestStackImageIndexForPoint.js +2 -1
  377. package/dist/esm/utilities/getNormalizedAspectRatio.d.ts +2 -0
  378. package/dist/esm/utilities/getNormalizedAspectRatio.js +12 -0
  379. package/dist/esm/utilities/getPixelSpacingInformation.d.ts +5 -13
  380. package/dist/esm/utilities/getPixelSpacingInformation.js +4 -93
  381. package/dist/esm/utilities/getScalingParameters.js +4 -3
  382. package/dist/esm/utilities/getVOIRangeFromWindowLevel.d.ts +3 -0
  383. package/dist/esm/utilities/getVOIRangeFromWindowLevel.js +18 -0
  384. package/dist/esm/utilities/getViewportImageIds.js +1 -1
  385. package/dist/esm/utilities/getViewportsWithImageURI.d.ts +2 -4
  386. package/dist/esm/utilities/getViewportsWithImageURI.js +4 -1
  387. package/dist/esm/utilities/getViewportsWithVolumeId.d.ts +2 -2
  388. package/dist/esm/utilities/getViewportsWithVolumeId.js +4 -1
  389. package/dist/esm/utilities/getViewportsWithVolumeURI.d.ts +2 -2
  390. package/dist/esm/utilities/getViewportsWithVolumeURI.js +4 -1
  391. package/dist/esm/utilities/getVolumeViewReferenceId.d.ts +6 -0
  392. package/dist/esm/utilities/getVolumeViewReferenceId.js +6 -0
  393. package/dist/esm/utilities/getVolumeViewportScrollInfo.d.ts +1 -1
  394. package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.d.ts +2 -2
  395. package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.js +4 -1
  396. package/dist/esm/utilities/hasOwn.d.ts +1 -0
  397. package/dist/esm/utilities/hasOwn.js +3 -0
  398. package/dist/esm/utilities/imageIdToURI.d.ts +3 -1
  399. package/dist/esm/utilities/imageIdToURI.js +2 -4
  400. package/dist/esm/utilities/index.d.ts +13 -1
  401. package/dist/esm/utilities/index.js +13 -1
  402. package/dist/esm/utilities/isEqual.d.ts +3 -5
  403. package/dist/esm/utilities/isEqual.js +3 -48
  404. package/dist/esm/utilities/isValidVolume.js +19 -4
  405. package/dist/esm/utilities/isVideoTransferSyntax.d.ts +3 -1
  406. package/dist/esm/utilities/isVideoTransferSyntax.js +3 -25
  407. package/dist/esm/utilities/loadImageToCanvas.js +2 -2
  408. package/dist/esm/utilities/logger.d.ts +3 -14
  409. package/dist/esm/utilities/logger.js +2 -23
  410. package/dist/esm/utilities/rotateToViewCoordinates.js +7 -7
  411. package/dist/esm/utilities/scroll.d.ts +1 -1
  412. package/dist/esm/utilities/scroll.js +2 -1
  413. package/dist/esm/utilities/sortImageIdsAndGetSpacing.js +4 -3
  414. package/dist/esm/utilities/splitImageIdsBy4DTags.d.ts +2 -10
  415. package/dist/esm/utilities/splitImageIdsBy4DTags.js +2 -312
  416. package/dist/esm/utilities/toNumber.d.ts +3 -1
  417. package/dist/esm/utilities/toNumber.js +3 -3
  418. package/dist/esm/utilities/viewportCapabilities.d.ts +19 -0
  419. package/dist/esm/utilities/viewportCapabilities.js +32 -0
  420. package/dist/esm/version.d.ts +1 -1
  421. package/dist/esm/version.js +1 -1
  422. package/dist/esm/webWorkerManager/webWorkerManager.js +3 -1
  423. 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
  }
@@ -64,6 +64,7 @@ declare class StackViewport extends Viewport {
64
64
  resetZoom?: boolean;
65
65
  resetToCenter?: boolean;
66
66
  suppressEvents?: boolean;
67
+ resetAspectRatio?: boolean;
67
68
  }) => boolean;
68
69
  canvasToWorld: (canvasPos: Point2) => Point3;
69
70
  worldToCanvas: (worldPos: Point3) => Point2;
@@ -104,11 +105,14 @@ declare class StackViewport extends Viewport {
104
105
  private _getVOIFromCache;
105
106
  private _setPropertiesFromCache;
106
107
  private getCameraCPU;
108
+ private setAspectRatioForViewport;
107
109
  private setCameraCPU;
108
110
  private getPanCPU;
109
111
  private setPanCPU;
110
112
  private getZoomCPU;
111
113
  private setZoomCPU;
114
+ getAspectRatioCPU(): Point2;
115
+ setAspectRatioCPU(value: Point2, isFitViewportAfterStretch?: boolean, storeAsInitialCamera?: boolean): void;
112
116
  private setFlipCPU;
113
117
  private getRotationCPU;
114
118
  private getRotationGPU;
@@ -174,7 +178,6 @@ declare class StackViewport extends Viewport {
174
178
  private _getPTPreScaledRange;
175
179
  private _isCurrentImagePTPrescaled;
176
180
  private _getDefaultPTPrescaledVOIRange;
177
- private _getVOIRangeFromWindowLevel;
178
181
  private _setImageIdIndex;
179
182
  private resetCameraCPU;
180
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
- import vtkCamera from '@kitware/vtk.js/Rendering/Core/Camera';
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';
@@ -149,6 +150,7 @@ class StackViewport extends Viewport {
149
150
  resetPan: true,
150
151
  resetZoom: true,
151
152
  resetToCenter: true,
153
+ resetAspectRatio: true,
152
154
  suppressEvents: true,
153
155
  });
154
156
  };
@@ -395,6 +397,14 @@ class StackViewport extends Viewport {
395
397
  cpu: this.setZoomCPU,
396
398
  gpu: super.setZoom,
397
399
  },
400
+ getAspectRatio: {
401
+ cpu: this.getAspectRatioCPU,
402
+ gpu: super.getAspectRatio,
403
+ },
404
+ setAspectRatio: {
405
+ cpu: this.setAspectRatioCPU,
406
+ gpu: super.setAspectRatio,
407
+ },
398
408
  setVOI: {
399
409
  cpu: this.setVOICPU,
400
410
  gpu: this.setVOIGPU,
@@ -418,8 +428,8 @@ class StackViewport extends Viewport {
418
428
  return true;
419
429
  },
420
430
  gpu: (options = {}) => {
421
- const { resetPan = true, resetZoom = true } = options;
422
- this.resetCameraGPU({ resetPan, resetZoom });
431
+ const { resetPan = true, resetZoom = true, resetAspectRatio = true, } = options;
432
+ this.resetCameraGPU({ resetPan, resetZoom, resetAspectRatio });
423
433
  return true;
424
434
  },
425
435
  },
@@ -481,9 +491,12 @@ class StackViewport extends Viewport {
481
491
  this.modality = null;
482
492
  this.useCPURendering = getShouldUseCPURendering();
483
493
  this._configureRenderingPipeline();
484
- const result = this.useCPURendering
485
- ? this._resetCPUFallbackElement()
486
- : this._resetGPUViewport();
494
+ if (this.useCPURendering) {
495
+ this._resetCPUFallbackElement();
496
+ }
497
+ else {
498
+ this._resetGPUViewport();
499
+ }
487
500
  this.currentImageIdIndex = 0;
488
501
  this.targetImageIdIndex = 0;
489
502
  this.resetCamera();
@@ -519,21 +532,24 @@ class StackViewport extends Viewport {
519
532
  }
520
533
  }
521
534
  }
522
- const result = this.useCPURendering
523
- ? this._resetCPUFallbackElement()
524
- : this._resetGPUViewport();
535
+ if (this.useCPURendering) {
536
+ this._resetCPUFallbackElement();
537
+ }
538
+ else {
539
+ this._resetGPUViewport();
540
+ }
525
541
  }
526
542
  _resetCPUFallbackElement() {
527
543
  this._cpuFallbackEnabledElement = {
528
544
  canvas: this.canvas,
529
545
  renderingTools: {},
530
546
  transform: new Transform(),
531
- viewport: { rotation: 0 },
547
+ viewport: { rotation: 0, aspectRatio: [1, 1] },
532
548
  };
533
549
  }
534
550
  _resetGPUViewport() {
535
551
  const renderer = this.getRenderer();
536
- const camera = vtkCamera.newInstance();
552
+ const camera = extendedVtkCamera.newInstance();
537
553
  renderer.setActiveCamera(camera);
538
554
  const viewPlaneNormal = [0, 0, -1];
539
555
  this.initialViewUp = [0, -1, 0];
@@ -817,15 +833,46 @@ class StackViewport extends Viewport {
817
833
  viewPlaneNormal[1],
818
834
  viewPlaneNormal[2],
819
835
  ],
836
+ aspectRatio: viewport.aspectRatio ?? [1, 1],
820
837
  viewUp: [viewUp[0], viewUp[1], viewUp[2]],
821
838
  flipHorizontal: this.flipHorizontal,
822
839
  flipVertical: this.flipVertical,
823
840
  };
824
841
  }
842
+ setAspectRatioForViewport(aspectRatio, isFitViewportAfterStretch = true) {
843
+ const { viewport, image } = this._cpuFallbackEnabledElement;
844
+ if (!isFitViewportAfterStretch) {
845
+ viewport.aspectRatio = aspectRatio;
846
+ return;
847
+ }
848
+ const { clientWidth, clientHeight } = this.element;
849
+ const { rowPixelSpacing, columnPixelSpacing, width, height } = image;
850
+ const getRatioValue = ([x, y]) => x / y;
851
+ const oldRatioValue = getRatioValue(viewport.aspectRatio || [1, 1]);
852
+ const newRatioValue = getRatioValue(aspectRatio);
853
+ const canvasRatio = clientWidth / clientHeight;
854
+ const baseHeight = clientHeight * rowPixelSpacing * 0.5;
855
+ const calculateFitParallelScale = (rVal) => {
856
+ const effectiveWidth = width * columnPixelSpacing * rVal;
857
+ const effectiveHeight = height * rowPixelSpacing;
858
+ if (effectiveWidth / effectiveHeight > canvasRatio) {
859
+ return baseHeight / (clientWidth / effectiveWidth);
860
+ }
861
+ const fitPScale = effectiveHeight * 0.5;
862
+ return rVal < 1 ? fitPScale / rVal : fitPScale;
863
+ };
864
+ const ratioFactor = calculateFitParallelScale(newRatioValue) /
865
+ calculateFitParallelScale(oldRatioValue);
866
+ viewport.aspectRatio = aspectRatio;
867
+ if (viewport.parallelScale) {
868
+ viewport.parallelScale *= ratioFactor;
869
+ viewport.scale = baseHeight / viewport.parallelScale;
870
+ }
871
+ }
825
872
  setCameraCPU(cameraInterface) {
826
873
  const { viewport, image } = this._cpuFallbackEnabledElement;
827
874
  const previousCamera = this.getCameraCPU();
828
- const { focalPoint, parallelScale, scale, flipHorizontal, flipVertical } = cameraInterface;
875
+ const { focalPoint, parallelScale, scale, flipHorizontal, flipVertical, aspectRatio, isFitViewportAfterStretch, } = cameraInterface;
829
876
  const { clientHeight } = this.element;
830
877
  if (focalPoint) {
831
878
  const focalPointCanvas = this.worldToCanvasCPU(focalPoint);
@@ -849,6 +896,9 @@ class StackViewport extends Viewport {
849
896
  viewport.scale = scale;
850
897
  viewport.parallelScale = (clientHeight * rowPixelSpacing * 0.5) / scale;
851
898
  }
899
+ if (aspectRatio) {
900
+ this.setAspectRatioForViewport(aspectRatio, isFitViewportAfterStretch);
901
+ }
852
902
  if (flipHorizontal !== undefined || flipVertical !== undefined) {
853
903
  this.setFlipCPU({ flipHorizontal, flipVertical });
854
904
  }
@@ -881,6 +931,21 @@ class StackViewport extends Viewport {
881
931
  const camera = this.getCameraCPU();
882
932
  this.setCameraCPU({ ...camera, scale: zoom });
883
933
  }
934
+ getAspectRatioCPU() {
935
+ const { aspectRatio } = this.getCameraCPU();
936
+ return aspectRatio ?? this.options?.aspectRatio ?? [1, 1];
937
+ }
938
+ setAspectRatioCPU(value, isFitViewportAfterStretch = true, storeAsInitialCamera = false) {
939
+ const camera = this.getCameraCPU();
940
+ if (storeAsInitialCamera) {
941
+ this.options.aspectRatio = value;
942
+ }
943
+ this.setCameraCPU({
944
+ ...camera,
945
+ aspectRatio: value,
946
+ isFitViewportAfterStretch,
947
+ });
948
+ }
884
949
  setFlipCPU({ flipHorizontal, flipVertical }) {
885
950
  const { viewport } = this._cpuFallbackEnabledElement;
886
951
  if (flipHorizontal !== undefined) {
@@ -993,7 +1058,7 @@ class StackViewport extends Viewport {
993
1058
  windowCenter: wcToUse,
994
1059
  voiLUTFunction: image.voiLUTFunction,
995
1060
  };
996
- const { lower, upper } = windowLevelUtil.toLowHighRange(wwToUse, wcToUse, image.voiLUTFunction);
1061
+ const { lower, upper } = getVOIRangeFromWindowLevel(wwToUse, wcToUse, image.voiLUTFunction);
997
1062
  voiRange = { lower, upper };
998
1063
  }
999
1064
  else {
@@ -1201,19 +1266,14 @@ class StackViewport extends Viewport {
1201
1266
  };
1202
1267
  }
1203
1268
  createVTKImageData({ origin, direction, dimensions, spacing, numberOfComponents, pixelArray, }) {
1204
- const values = new pixelArray.constructor(pixelArray.length);
1205
- const scalarArray = vtkDataArray.newInstance({
1206
- name: 'Pixels',
1207
- numberOfComponents: numberOfComponents,
1208
- values: values,
1269
+ return createEmptyVTKImageData({
1270
+ origin,
1271
+ direction,
1272
+ dimensions,
1273
+ spacing,
1274
+ numberOfComponents,
1275
+ pixelArray: new pixelArray.constructor(pixelArray.length),
1209
1276
  });
1210
- const imageData = vtkImageData.newInstance();
1211
- imageData.setDimensions(dimensions);
1212
- imageData.setSpacing(spacing);
1213
- imageData.setDirection(direction);
1214
- imageData.setOrigin(origin);
1215
- imageData.getPointData().setScalars(scalarArray);
1216
- return imageData;
1217
1277
  }
1218
1278
  _createVTKImageData({ origin, direction, dimensions, spacing, numberOfComponents, pixelArray, }) {
1219
1279
  try {
@@ -1348,7 +1408,7 @@ class StackViewport extends Viewport {
1348
1408
  let min = 65535;
1349
1409
  let max = 0;
1350
1410
  for (let i = 0; i < numPixels; i++) {
1351
- const rescaledPixel = Math.floor((pixelData[i] - intercept) / slope);
1411
+ const rescaledPixel = Math.max(0, Math.min(65535, Math.floor((pixelData[i] - intercept) / slope)));
1352
1412
  intPixelData[i] = rescaledPixel;
1353
1413
  min = Math.min(min, rescaledPixel);
1354
1414
  max = Math.max(max, rescaledPixel);
@@ -1458,7 +1518,7 @@ class StackViewport extends Viewport {
1458
1518
  }
1459
1519
  getLoaderImageOptions(imageId) {
1460
1520
  const imageIdIndex = this.imageIds.indexOf(imageId);
1461
- const { transferSyntaxUID } = metaData.get('transferSyntax', imageId) || {};
1521
+ const { transferSyntaxUID } = metaData.get(MetadataModules.TRANSFER_SYNTAX, imageId) || {};
1462
1522
  const options = {
1463
1523
  useRGBA: false,
1464
1524
  transferSyntaxUID,
@@ -1509,7 +1569,7 @@ class StackViewport extends Viewport {
1509
1569
  const metadata = this.getImageDataMetadata(image);
1510
1570
  const viewport = getDefaultViewport(this.canvas, image, this.modality, this._cpuFallbackEnabledElement.viewport.colormap);
1511
1571
  const { windowCenter, windowWidth, voiLUTFunction } = viewport.voi;
1512
- this.voiRange = windowLevelUtil.toLowHighRange(windowWidth, windowCenter, voiLUTFunction);
1572
+ this.voiRange = getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction);
1513
1573
  this._cpuFallbackEnabledElement.image = image;
1514
1574
  this._cpuFallbackEnabledElement.metadata = {
1515
1575
  ...metadata,
@@ -1612,7 +1672,7 @@ class StackViewport extends Viewport {
1612
1672
  return this.voiRange;
1613
1673
  }
1614
1674
  const { windowCenter, windowWidth, voiLUTFunction } = image;
1615
- let voiRange = this._getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction);
1675
+ let voiRange = getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction);
1616
1676
  voiRange = this._getPTPreScaledRange() || voiRange;
1617
1677
  return voiRange;
1618
1678
  }
@@ -1634,20 +1694,6 @@ class StackViewport extends Viewport {
1634
1694
  _getDefaultPTPrescaledVOIRange() {
1635
1695
  return { lower: 0, upper: 5 };
1636
1696
  }
1637
- _getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction = VOILUTFunctionType.LINEAR) {
1638
- let center, width;
1639
- if (typeof windowCenter === 'number' && typeof windowWidth === 'number') {
1640
- center = windowCenter;
1641
- width = windowWidth;
1642
- }
1643
- else if (Array.isArray(windowCenter) && Array.isArray(windowWidth)) {
1644
- center = windowCenter[0];
1645
- width = windowWidth[0];
1646
- }
1647
- if (center !== undefined && width !== undefined) {
1648
- return windowLevelUtil.toLowHighRange(width, center, voiLUTFunction);
1649
- }
1650
- }
1651
1697
  async _setImageIdIndex(imageIdIndex) {
1652
1698
  if (imageIdIndex >= this.imageIds.length) {
1653
1699
  throw new Error(`ImageIdIndex provided ${imageIdIndex} is invalid, the stack only has ${this.imageIds.length} elements`);
@@ -1682,14 +1728,14 @@ class StackViewport extends Viewport {
1682
1728
  scale,
1683
1729
  });
1684
1730
  }
1685
- resetCameraGPU({ resetPan, resetZoom }) {
1731
+ resetCameraGPU(resetOptions) {
1686
1732
  this.setCamera({
1687
1733
  flipHorizontal: false,
1688
1734
  flipVertical: false,
1689
1735
  viewUp: this.initialViewUp,
1690
1736
  });
1691
1737
  const resetToCenter = true;
1692
- return super.resetCamera({ resetPan, resetZoom, resetToCenter });
1738
+ return super.resetCamera({ resetToCenter, ...resetOptions });
1693
1739
  }
1694
1740
  scroll(delta, debounce = true, loop = false) {
1695
1741
  const imageIds = this.imageIds;
@@ -1795,7 +1841,7 @@ class StackViewport extends Viewport {
1795
1841
  }
1796
1842
  _getVOIRangeForCurrentImage() {
1797
1843
  const { windowCenter, windowWidth, voiLUTFunction } = this.csImage;
1798
- return this._getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction);
1844
+ return getVOIRangeFromWindowLevel(windowWidth, windowCenter, voiLUTFunction);
1799
1845
  }
1800
1846
  _getValidVOILUTFunction(voiLUTFunction) {
1801
1847
  if (!Object.values(VOILUTFunctionType).includes(voiLUTFunction)) {
@@ -1934,8 +1980,13 @@ class StackViewport extends Viewport {
1934
1980
  }
1935
1981
  setColormapCPU(colormapData) {
1936
1982
  this.colormap = colormapData;
1937
- const colormap = colormapUtils.getColormap(colormapData.name);
1938
- 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
+ }
1939
1990
  this._cpuFallbackEnabledElement.renderingTools = {};
1940
1991
  this.fillWithBackgroundColor();
1941
1992
  this.cpuRenderingInvalidated = true;
@@ -1951,8 +2002,7 @@ class StackViewport extends Viewport {
1951
2002
  const actor = ActorEntry.actor;
1952
2003
  const actorProp = actor.getProperty();
1953
2004
  const rgbTransferFunction = actorProp.getRGBTransferFunction();
1954
- const colormapObj = colormapUtils.getColormap(colormap.name) ||
1955
- vtkColorMaps.getPresetByName(colormap.name);
2005
+ const colormapObj = colormapUtils.resolveColormap(colormap.name);
1956
2006
  if (!rgbTransferFunction) {
1957
2007
  const cfun = vtkColorTransferFunction.newInstance();
1958
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;