@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
@@ -18,16 +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
- displayArea: true,
26
- }; }
27
- static { this.TransferViewPresentation = {
28
- windowLevel: true,
29
- paletteLut: true,
30
- }; }
31
21
  constructor(props) {
32
22
  this.insetImageMultiplier = getConfiguration().rendering
33
23
  ?.useLegacyCameraFOV
@@ -91,6 +81,27 @@ class Viewport {
91
81
  static get useCustomRenderingPipeline() {
92
82
  return false;
93
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
+ }
97
+ isOrientationChangeable() {
98
+ return false;
99
+ }
100
+ dispose() {
101
+ }
102
+ destroy() {
103
+ this.dispose();
104
+ }
94
105
  setRendered() {
95
106
  if (this.viewportStatus === ViewportStatus.NO_DATA ||
96
107
  this.viewportStatus === ViewportStatus.LOADING) {
@@ -98,6 +109,9 @@ class Viewport {
98
109
  }
99
110
  this.viewportStatus = ViewportStatus.RENDERED;
100
111
  }
112
+ setNeedsRender() {
113
+ this.viewportStatus = ViewportStatus.NEEDS_RENDER;
114
+ }
101
115
  setColorTransform(voiRange, averageWhite) {
102
116
  let feFilter = null;
103
117
  if (!voiRange && !averageWhite) {
@@ -137,7 +151,7 @@ class Viewport {
137
151
  renderingEngine.renderViewport(this.id);
138
152
  }
139
153
  setOptions(options, immediate = false) {
140
- this.options = structuredClone(options);
154
+ this.options = deepClone(options);
141
155
  if (this.options?.displayArea) {
142
156
  this.setDisplayArea(this.options?.displayArea);
143
157
  }
@@ -146,7 +160,7 @@ class Viewport {
146
160
  }
147
161
  }
148
162
  reset(immediate = false) {
149
- this.options = structuredClone(this.defaultOptions);
163
+ this.options = deepClone(this.defaultOptions);
150
164
  if (immediate) {
151
165
  this.render();
152
166
  }
@@ -166,7 +180,7 @@ class Viewport {
166
180
  const viewPlaneNormalToSet = vec3.negate(vec3.create(), viewPlaneNormal);
167
181
  const distance = vec3.distance(position, focalPoint);
168
182
  const dimensions = imageData.getDimensions();
169
- const middleIJK = dimensions.map((d) => Math.floor(d / 2));
183
+ const middleIJK = getVolumeCenterIJK(dimensions, imageData.getDirection(), viewPlaneNormal);
170
184
  const idx = [middleIJK[0], middleIJK[1], middleIJK[2]];
171
185
  const centeredFocalPoint = imageData.indexToWorld(idx, vec3.create());
172
186
  const resetFocalPoint = this._getFocalPointForResetCamera(centeredFocalPoint, camera, { resetPan: true, resetToCenter: false });
@@ -497,7 +511,7 @@ class Viewport {
497
511
  return this.options?.displayArea;
498
512
  }
499
513
  resetCamera(options) {
500
- const { resetPan = true, resetZoom = true, resetToCenter = true, storeAsInitialCamera = true, } = options || {};
514
+ const { resetPan = true, resetZoom = true, resetToCenter = true, storeAsInitialCamera = true, resetAspectRatio = true, } = options || {};
501
515
  const renderer = this.getRenderer();
502
516
  this.setCameraNoEvent({
503
517
  flipHorizontal: false,
@@ -523,18 +537,13 @@ class Viewport {
523
537
  focalPoint[2] = (bounds[4] + bounds[5]) / 2.0;
524
538
  if (imageData) {
525
539
  const dimensions = imageData.getDimensions();
526
- const middleIJK = dimensions.map((d) => Math.floor(d / 2));
540
+ const middleIJK = getVolumeCenterIJK(dimensions, imageData.getDirection(), viewPlaneNormal);
527
541
  const idx = [middleIJK[0], middleIJK[1], middleIJK[2]];
528
542
  imageData.indexToWorld(idx, focalPoint);
529
543
  }
530
- let { widthWorld, heightWorld } = imageData
544
+ const { widthWorld, heightWorld } = imageData
531
545
  ? getCubeSizeInView(imageData, viewPlaneNormal, viewUp)
532
546
  : this._getWorldDistanceViewUpAndViewRight(bounds, viewUp, viewPlaneNormal);
533
- if (imageData) {
534
- const spacing = imageData.getSpacing();
535
- widthWorld = Math.max(spacing[0], widthWorld - spacing[0]);
536
- heightWorld = Math.max(spacing[1], heightWorld - spacing[1]);
537
- }
538
547
  const canvasSize = [this.sWidth, this.sHeight];
539
548
  const boundsAspectRatio = widthWorld / heightWorld;
540
549
  const canvasAspectRatio = canvasSize[0] / canvasSize[1];
@@ -561,6 +570,9 @@ class Viewport {
561
570
  ];
562
571
  activeCamera.setPhysicalScale(radius);
563
572
  activeCamera.setPhysicalTranslation(-focalPointToSet[0], -focalPointToSet[1], -focalPointToSet[2]);
573
+ const targetAspectRatio = resetAspectRatio
574
+ ? this.options?.aspectRatio || [1, 1]
575
+ : this.getAspectRatio();
564
576
  this.setCamera({
565
577
  parallelScale: resetZoom ? parallelScale : previousCamera.parallelScale,
566
578
  focalPoint: focalPointToSet,
@@ -568,6 +580,8 @@ class Viewport {
568
580
  viewAngle: 90,
569
581
  viewUp: viewUpToSet,
570
582
  clippingRange: clippingRangeToUse,
583
+ aspectRatio: targetAspectRatio,
584
+ isFitViewportAfterStretch: false,
571
585
  });
572
586
  const modifiedCamera = this.getCamera();
573
587
  this.setFitToCanvasCamera(this.getCamera());
@@ -661,6 +675,21 @@ class Viewport {
661
675
  parallelScale,
662
676
  }, storeAsInitialCamera);
663
677
  }
678
+ getAspectRatio() {
679
+ const { aspectRatio } = this.getCamera();
680
+ return aspectRatio ?? this.options?.aspectRatio ?? [1, 1];
681
+ }
682
+ setAspectRatio(value, isFitViewportAfterStretch = true, storeAsInitialCamera = false) {
683
+ const camera = this.getCamera();
684
+ if (storeAsInitialCamera) {
685
+ this.options.aspectRatio = value;
686
+ }
687
+ this.setCamera({
688
+ ...camera,
689
+ aspectRatio: value,
690
+ isFitViewportAfterStretch,
691
+ }, storeAsInitialCamera);
692
+ }
664
693
  _getFocalPointForViewPlaneReset(imageData) {
665
694
  const { focalPoint, viewPlaneNormal: normal } = this.getCamera();
666
695
  const intersections = this._getViewImageDataIntersections(imageData, focalPoint, normal);
@@ -709,6 +738,7 @@ class Viewport {
709
738
  viewAngle: vtkCamera.getViewAngle(),
710
739
  flipHorizontal: this.flipHorizontal,
711
740
  flipVertical: this.flipVertical,
741
+ aspectRatio: vtkCamera.getAspectRatio(),
712
742
  };
713
743
  }
714
744
  getCamera() {
@@ -718,11 +748,56 @@ class Viewport {
718
748
  rotation: this.getRotation(),
719
749
  };
720
750
  }
751
+ setAspectRatioForVTKCamera(aspectRatio, isFitViewportAfterStretch = true) {
752
+ const vtkCamera = this.getVtkActiveCamera();
753
+ if (!isFitViewportAfterStretch) {
754
+ vtkCamera.setAspectRatio(aspectRatio);
755
+ return;
756
+ }
757
+ const currentAspect = vtkCamera.getAspectRatio() || [1, 1];
758
+ if (currentAspect[0] === aspectRatio[0] &&
759
+ currentAspect[1] === aspectRatio[1]) {
760
+ return;
761
+ }
762
+ const getRatioValue = ([x, y]) => x / y;
763
+ const oldRatioValue = getRatioValue(currentAspect);
764
+ const newRatioValue = getRatioValue(aspectRatio);
765
+ vtkCamera.setAspectRatio(aspectRatio);
766
+ const imageData = this.getDefaultImageData();
767
+ if (!imageData)
768
+ return;
769
+ const getFitScale = (rVal) => {
770
+ const { widthWorld, heightWorld } = getCubeSizeInView(imageData, vtkCamera.getViewPlaneNormal(), vtkCamera.getViewUp());
771
+ const canvasAspectRatio = this.sWidth / this.sHeight;
772
+ const effectiveWidth = widthWorld * rVal;
773
+ const effectiveImageRatio = effectiveWidth / heightWorld;
774
+ let fitScale = effectiveImageRatio > canvasAspectRatio
775
+ ? effectiveWidth / (2 * canvasAspectRatio)
776
+ : heightWorld / 2;
777
+ if (rVal < 1)
778
+ fitScale /= rVal;
779
+ return fitScale;
780
+ };
781
+ const ratioFactor = getFitScale(newRatioValue) / getFitScale(oldRatioValue);
782
+ vtkCamera.setParallelScale(vtkCamera.getParallelScale() * ratioFactor);
783
+ if (this.initialCamera?.parallelScale) {
784
+ this.initialCamera = {
785
+ ...this.initialCamera,
786
+ parallelScale: this.initialCamera.parallelScale * ratioFactor,
787
+ };
788
+ }
789
+ if (this.fitToCanvasCamera?.parallelScale) {
790
+ this.fitToCanvasCamera = {
791
+ ...this.fitToCanvasCamera,
792
+ parallelScale: this.fitToCanvasCamera.parallelScale * ratioFactor,
793
+ };
794
+ }
795
+ }
721
796
  setCamera(cameraInterface, storeAsInitialCamera = false) {
722
797
  const vtkCamera = this.getVtkActiveCamera();
723
798
  const previousCamera = this.getCamera();
724
799
  const updatedCamera = Object.assign({}, previousCamera, cameraInterface);
725
- const { viewUp, viewPlaneNormal, position, focalPoint, parallelScale, viewAngle, flipHorizontal, flipVertical, clippingRange, } = cameraInterface;
800
+ const { viewUp, viewPlaneNormal, position, focalPoint, parallelScale, viewAngle, flipHorizontal, flipVertical, clippingRange, aspectRatio, isFitViewportAfterStretch, } = cameraInterface;
726
801
  if (flipHorizontal !== undefined) {
727
802
  const flipH = (flipHorizontal && !this.flipHorizontal) ||
728
803
  (!flipHorizontal && this.flipHorizontal);
@@ -758,6 +833,9 @@ class Viewport {
758
833
  if (clippingRange !== undefined) {
759
834
  vtkCamera.setClippingRange(clippingRange);
760
835
  }
836
+ if (aspectRatio) {
837
+ this.setAspectRatioForVTKCamera(aspectRatio, isFitViewportAfterStretch);
838
+ }
761
839
  const prevFocalPoint = previousCamera.focalPoint;
762
840
  const prevViewUp = previousCamera.viewUp;
763
841
  if ((prevFocalPoint && focalPoint) || (prevViewUp && viewUp)) {
@@ -980,6 +1058,7 @@ class Viewport {
980
1058
  displayArea: true,
981
1059
  zoom: true,
982
1060
  pan: true,
1061
+ aspectRatio: true,
983
1062
  flipHorizontal: true,
984
1063
  flipVertical: true,
985
1064
  }) {
@@ -995,9 +1074,14 @@ class Viewport {
995
1074
  if (zoom) {
996
1075
  target.zoom = initZoom;
997
1076
  }
1077
+ const currentAspectRatio = this.getAspectRatio();
1078
+ target.aspectRatio = currentAspectRatio;
998
1079
  if (pan) {
999
- target.pan = this.getPan();
1000
- vec2.scale(target.pan, target.pan, 1 / initZoom);
1080
+ const currentPan = this.getPan();
1081
+ const [aspectX, aspectY] = currentAspectRatio;
1082
+ const normalizedPanX = currentPan[0] / (initZoom * aspectX);
1083
+ const normalizedPanY = currentPan[1] / (initZoom * aspectY);
1084
+ target.pan = [normalizedPanX, normalizedPanY];
1001
1085
  }
1002
1086
  if (flipHorizontal) {
1003
1087
  target.flipHorizontal = this.flipHorizontal;
@@ -1007,19 +1091,21 @@ class Viewport {
1007
1091
  }
1008
1092
  return target;
1009
1093
  }
1010
- setViewReference(viewRef) {
1094
+ setViewReference(_viewRef) {
1011
1095
  }
1012
1096
  setViewPresentation(viewPres) {
1013
1097
  if (!viewPres) {
1014
1098
  return;
1015
1099
  }
1016
- const { displayArea, zoom = this.getZoom(), pan, rotation, flipHorizontal = this.flipHorizontal, flipVertical = this.flipVertical, } = viewPres;
1100
+ const { displayArea, zoom = this.getZoom(), pan, aspectRatio = this.getAspectRatio(), rotation, flipHorizontal = this.flipHorizontal, flipVertical = this.flipVertical, } = viewPres;
1017
1101
  if (displayArea !== this.getDisplayArea()) {
1018
1102
  this.setDisplayArea(displayArea);
1019
1103
  }
1020
1104
  this.setZoom(zoom);
1105
+ this.setAspectRatio(aspectRatio);
1021
1106
  if (pan) {
1022
- this.setPan(vec2.scale([0, 0], pan, zoom));
1107
+ const [aspectX, aspectY] = aspectRatio;
1108
+ this.setPan([pan[0] * zoom * aspectX, pan[1] * zoom * aspectY]);
1023
1109
  }
1024
1110
  if (flipHorizontal !== undefined &&
1025
1111
  flipHorizontal !== this.flipHorizontal) {
@@ -1100,8 +1186,42 @@ class Viewport {
1100
1186
  const radius = Math.sqrt(w1 + w2 + w3 || 1) * 0.5;
1101
1187
  return radius;
1102
1188
  }
1103
- setDataIds(_imageIds, _options) {
1104
- throw new Error('Unsupported operatoin setDataIds');
1189
+ setDataList(_entries) {
1190
+ throw new Error('Unsupported operation setDataList');
1105
1191
  }
1106
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
+ }
1107
1227
  export default Viewport;
@@ -3,20 +3,17 @@ import vtkPlane from '@kitware/vtk.js/Common/DataModel/Plane';
3
3
  import cache from '../cache/cache';
4
4
  import { EPSILON, MPR_CAMERA_VALUES, RENDERING_DEFAULTS } from '../constants';
5
5
  import { OrientationAxis, Events } from '../enums';
6
- import { actorIsA, isImageActor } from '../utilities/actorCheck';
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';
14
- import { setTransferFunctionNodes } from '../utilities/transferFunctionUtils';
15
11
  import getImageSliceDataForVolumeViewport from '../utilities/getImageSliceDataForVolumeViewport';
16
12
  import { transformCanvasToIJK } from '../utilities/transformCanvasToIJK';
17
13
  import { transformIJKToCanvas } from '../utilities/transformIJKToCanvas';
18
14
  import getVolumeViewportScrollInfo from '../utilities/getVolumeViewportScrollInfo';
19
15
  import { calculateCameraPosition, getCameraVectors, } from './helpers/getCameraVectors';
16
+ import { getPlanarVolumeSliceNavigationState, getPlanarVolumeSlicePoint, } from './helpers/planarVolumeRendering';
20
17
  class VolumeViewport extends BaseVolumeViewport {
21
18
  constructor(props) {
22
19
  super(props);
@@ -67,14 +64,29 @@ class VolumeViewport extends BaseVolumeViewport {
67
64
  const imageVolume = cache.getVolume(volumeId);
68
65
  const camera = this.getCamera();
69
66
  const { focalPoint, position, viewPlaneNormal } = camera;
70
- const spacingInNormalDirection = getSpacingInNormalDirection(imageVolume, viewPlaneNormal);
71
- 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
+ });
72
76
  const numSlicesBackward = Math.round((sliceRange.current - sliceRange.min) / spacingInNormalDirection);
73
77
  const numSlicesForward = Math.round((sliceRange.max - sliceRange.current) / spacingInNormalDirection);
74
- const currentSliceIndex = this.getSliceIndex();
75
78
  const focalPoints = [];
76
79
  for (let i = -numSlicesBackward; i <= numSlicesForward; i++) {
77
- 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
+ });
78
90
  focalPoints.push({ sliceIndex: currentSliceIndex + i, point });
79
91
  }
80
92
  return focalPoints;
@@ -277,12 +289,12 @@ class VolumeViewport extends BaseVolumeViewport {
277
289
  }
278
290
  }
279
291
  resetCamera(options) {
280
- const { resetPan = true, resetZoom = true, resetRotation = true, resetToCenter = true, suppressEvents = false, resetOrientation = true, } = options || {};
292
+ const { resetPan = true, resetZoom = true, resetRotation = true, resetToCenter = true, suppressEvents = false, resetOrientation = true, resetAspectRatio = true, } = options || {};
281
293
  const { orientation } = this.viewportProperties;
282
294
  if (orientation && resetOrientation) {
283
295
  this.applyViewOrientation(orientation, false);
284
296
  }
285
- super.resetCamera({ resetPan, resetZoom, resetToCenter });
297
+ super.resetCamera({ resetPan, resetZoom, resetToCenter, resetAspectRatio });
286
298
  const activeCamera = this.getVtkActiveCamera();
287
299
  const viewPlaneNormal = activeCamera.getViewPlaneNormal();
288
300
  const focalPoint = activeCamera.getFocalPoint();
@@ -466,12 +478,7 @@ class VolumeViewport extends BaseVolumeViewport {
466
478
  throw new Error(`imageVolume with id: ${volumeId} does not exist in cache`);
467
479
  }
468
480
  setDefaultVolumeVOI(volumeActor.actor, imageVolume);
469
- if (isImageActor(volumeActor)) {
470
- const transferFunction = volumeActor.actor
471
- .getProperty()
472
- .getRGBTransferFunction(0);
473
- setTransferFunctionNodes(transferFunction, this.initialTransferFunctionNodes);
474
- }
481
+ this._restoreVolumeRenderingDefaults(volumeActor, volumeId);
475
482
  const eventDetails = {
476
483
  ...super.getVOIModifiedEventDetail(volumeId),
477
484
  };
@@ -479,11 +486,13 @@ class VolumeViewport extends BaseVolumeViewport {
479
486
  const resetZoom = true;
480
487
  const resetToCenter = true;
481
488
  const resetCameraRotation = true;
489
+ const resetAspectRatio = true;
482
490
  this.resetCamera({
483
491
  resetPan,
484
492
  resetZoom,
485
493
  resetToCenter,
486
494
  resetCameraRotation,
495
+ resetAspectRatio,
487
496
  });
488
497
  triggerEvent(this.element, Events.VOI_MODIFIED, eventDetails);
489
498
  }
@@ -3,8 +3,7 @@ import { OrientationAxis, Events } from '../enums';
3
3
  import cache from '../cache/cache';
4
4
  import setDefaultVolumeVOI from './helpers/setDefaultVolumeVOI';
5
5
  import triggerEvent from '../utilities/triggerEvent';
6
- import { actorIsA, isImageActor } from '../utilities/actorCheck';
7
- import { setTransferFunctionNodes } from '../utilities/transferFunctionUtils';
6
+ import { actorIsA } from '../utilities/actorCheck';
8
7
  import BaseVolumeViewport from './BaseVolumeViewport';
9
8
  class VolumeViewport3D extends BaseVolumeViewport {
10
9
  constructor(props) {
@@ -98,12 +97,7 @@ class VolumeViewport3D extends BaseVolumeViewport {
98
97
  throw new Error(`imageVolume with id: ${volumeId} does not exist in cache`);
99
98
  }
100
99
  setDefaultVolumeVOI(volumeActor.actor, imageVolume);
101
- if (isImageActor(volumeActor)) {
102
- const transferFunction = volumeActor.actor
103
- .getProperty()
104
- .getRGBTransferFunction(0);
105
- setTransferFunctionNodes(transferFunction, this.initialTransferFunctionNodes);
106
- }
100
+ this._restoreVolumeRenderingDefaults(volumeActor, volumeId);
107
101
  this.setCamera(this.initialCamera);
108
102
  triggerEvent(this.element, Events.VOI_MODIFIED, super.getVOIModifiedEventDetail(volumeId));
109
103
  }
@@ -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;