@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,101 @@
1
+ import type { ICamera, Point2, Point3 } from '../../types';
2
+ import type DisplayArea from '../../types/displayArea';
3
+ import type { ViewPresentationSelector } from '../../types/IViewport';
4
+ import type ViewportType from '../../enums/ViewportType';
5
+ export type ProjectionScale = {
6
+ kind: 'fit';
7
+ value: number;
8
+ } | {
9
+ kind: 'fitWidth';
10
+ value: number;
11
+ } | {
12
+ kind: 'fitHeight';
13
+ value: number;
14
+ } | {
15
+ kind: 'displayArea';
16
+ value: number;
17
+ area: DisplayArea;
18
+ } | {
19
+ kind: 'nativePixel';
20
+ pixelsPerCanvasPixel: number;
21
+ } | {
22
+ kind: 'physical';
23
+ mmPerCanvasPixel: number;
24
+ } | {
25
+ kind: 'signal';
26
+ samplesPerCanvasPixel: number;
27
+ valueUnitsPerCanvasPixel: number;
28
+ };
29
+ export type ProjectionPosition = {
30
+ kind: 'anchor';
31
+ worldPoint?: Point3;
32
+ canvasPoint: Point2;
33
+ } | {
34
+ kind: 'imagePoint';
35
+ imagePoint: Point2;
36
+ canvasPoint: Point2;
37
+ } | {
38
+ kind: 'mediaPoint';
39
+ mediaPoint: Point2;
40
+ canvasPoint: Point2;
41
+ } | {
42
+ kind: 'signalPoint';
43
+ sampleIndex: number;
44
+ value: number;
45
+ channelIndex: number;
46
+ canvasPoint: Point2;
47
+ } | {
48
+ kind: 'focalPoint';
49
+ worldPoint: Point3;
50
+ };
51
+ export interface ProjectionPresentation<TDisplayArea = DisplayArea> {
52
+ rotation?: number;
53
+ displayArea?: TDisplayArea;
54
+ zoom?: number;
55
+ pan?: Point2;
56
+ scale?: ProjectionScale;
57
+ position?: ProjectionPosition;
58
+ flipHorizontal?: boolean;
59
+ flipVertical?: boolean;
60
+ }
61
+ export interface ProjectionSpaces {
62
+ canvas?: boolean;
63
+ world?: boolean;
64
+ image?: boolean;
65
+ renderer?: boolean;
66
+ }
67
+ export interface ProjectionTransforms {
68
+ canvasToWorld?(point: Point2): Point3;
69
+ worldToCanvas?(point: Point3): Point2;
70
+ }
71
+ export interface ProjectionSnapshot<TViewState = unknown, TProjectionPresentation extends ProjectionPresentation<unknown> = ProjectionPresentation> {
72
+ kind: string;
73
+ adapterId: string;
74
+ viewportType?: ViewportType | string;
75
+ dataId?: string;
76
+ frameOfReferenceUID?: string;
77
+ spaces: ProjectionSpaces;
78
+ transforms?: ProjectionTransforms;
79
+ presentation: TProjectionPresentation;
80
+ rendererCamera?: ICamera<unknown>;
81
+ viewState?: TViewState;
82
+ }
83
+ export interface ProjectionRequest<TViewport = unknown> {
84
+ viewport: TViewport;
85
+ kind?: string;
86
+ dataId?: string;
87
+ viewportType?: ViewportType | string;
88
+ selector?: ViewPresentationSelector;
89
+ }
90
+ export interface ProjectionWriteOptions {
91
+ anchorCanvas?: Point2;
92
+ preserveDisplayArea?: boolean;
93
+ }
94
+ export interface ViewportProjectionAdapter<TViewState = unknown, TPresentation = unknown, TSnapshot extends ProjectionSnapshot<TViewState, ProjectionPresentation<unknown>> = ProjectionSnapshot<TViewState>> {
95
+ id: string;
96
+ viewportTypes: Array<ViewportType | string>;
97
+ getSnapshot(request: ProjectionRequest): TSnapshot | undefined;
98
+ getPresentation(snapshot: TSnapshot, selector?: ViewPresentationSelector): TPresentation;
99
+ withPresentation(snapshot: TSnapshot, presentation: Partial<TPresentation>, options?: ProjectionWriteOptions): TViewState;
100
+ applyToRenderer?(snapshot: TSnapshot, target: unknown): void;
101
+ }
@@ -0,0 +1,8 @@
1
+ import type { LoadedData } from '../ViewportArchitectureTypes';
2
+ import type { Volume3DDataProvider, Volume3DGeometryPayload, Volume3DVolumePayload } from './viewport3DTypes';
3
+ export declare class DefaultVolume3DDataProvider implements Volume3DDataProvider {
4
+ load(dataId: string, options?: {
5
+ renderMode: 'vtkVolume3d' | 'vtkGeometry3d';
6
+ }): Promise<LoadedData<Volume3DVolumePayload | Volume3DGeometryPayload>>;
7
+ private getDataSet;
8
+ }
@@ -0,0 +1,58 @@
1
+ import cache from '../../../cache/cache';
2
+ import { loadAndCacheGeometry } from '../../../loaders/geometryLoader';
3
+ import { createAndCacheVolume } from '../../../loaders/volumeLoader';
4
+ import resolveViewportVolumeId from '../../helpers/resolveViewportVolumeId';
5
+ import { getGenericViewportImageDataSet, isGenericViewportImageDataSet, } from '../genericViewportDataSetAccess';
6
+ export class DefaultVolume3DDataProvider {
7
+ async load(dataId, options) {
8
+ if (!options) {
9
+ throw new Error(`[VolumeViewport3D] No load options were provided for ${dataId}`);
10
+ }
11
+ const dataSet = this.getDataSet(dataId);
12
+ if (options.renderMode === 'vtkVolume3d') {
13
+ if (!dataSet?.imageIds?.length) {
14
+ throw new Error(`[VolumeViewport3D] No registered volume dataset for ${dataId}`);
15
+ }
16
+ const volumeId = resolveViewportVolumeId(dataSet.volumeId ?? dataId);
17
+ const imageVolume = await createAndCacheVolume(volumeId, {
18
+ imageIds: dataSet.imageIds,
19
+ });
20
+ imageVolume.load();
21
+ return {
22
+ id: dataId,
23
+ type: 'image',
24
+ imageIds: imageVolume.imageIds || dataSet.imageIds,
25
+ imageVolume,
26
+ renderMode: 'vtkVolume3d',
27
+ volumeId,
28
+ };
29
+ }
30
+ const geometryId = dataSet?.geometryId || dataId;
31
+ const geometry = cache.getGeometry(geometryId) ||
32
+ (await loadAndCacheGeometry(geometryId, dataSet?.geometryLoadOptions));
33
+ return {
34
+ id: dataId,
35
+ type: 'geometry',
36
+ geometry,
37
+ geometryId,
38
+ renderMode: 'vtkGeometry3d',
39
+ };
40
+ }
41
+ getDataSet(dataId) {
42
+ const dataSet = getGenericViewportImageDataSet(dataId);
43
+ if (!isVolume3DRegisteredDataSet(dataSet)) {
44
+ return;
45
+ }
46
+ return dataSet;
47
+ }
48
+ }
49
+ function isVolume3DRegisteredDataSet(value) {
50
+ if (!isGenericViewportImageDataSet(value)) {
51
+ return false;
52
+ }
53
+ return ((value.geometryId === undefined || typeof value.geometryId === 'string') &&
54
+ (value.volumeId === undefined || typeof value.volumeId === 'string') &&
55
+ (value.geometryLoadOptions === undefined ||
56
+ (typeof value.geometryLoadOptions === 'object' &&
57
+ !Array.isArray(value.geometryLoadOptions))));
58
+ }
@@ -0,0 +1,35 @@
1
+ import { ViewportType } from '../../../enums';
2
+ import type { ICamera, Point2, Point3 } from '../../../types';
3
+ import type { ProjectionPresentation, ProjectionRequest, ProjectionSnapshot } from '../ViewportProjectionTypes';
4
+ import type { Volume3DCamera, Volume3DViewportRenderContext } from './viewport3DTypes';
5
+ export declare const VOLUME3D_PROJECTION_ID = "volume3d";
6
+ export type Volume3DResolvedViewLike = {
7
+ canvasToWorld(canvasPos: Point2): Point3;
8
+ worldToCanvas(worldPos: Point3): Point2;
9
+ getFrameOfReferenceUID(): string | undefined;
10
+ toICamera(): ICamera;
11
+ };
12
+ export type Volume3DProjectionViewport = {
13
+ type: ViewportType | string;
14
+ canvas?: HTMLCanvasElement;
15
+ element?: HTMLDivElement;
16
+ getFrameOfReferenceUID?(): string | undefined;
17
+ getResolvedView?(): Volume3DResolvedViewLike;
18
+ getViewState?(): Volume3DCamera & ICamera;
19
+ };
20
+ export type Volume3DRenderTarget = Pick<Volume3DViewportRenderContext, 'vtk'>;
21
+ export interface Volume3DProjectionPresentation extends ProjectionPresentation {
22
+ camera: Volume3DCamera & ICamera;
23
+ }
24
+ export interface Volume3DProjectionSnapshot extends ProjectionSnapshot<Volume3DCamera, Volume3DProjectionPresentation> {
25
+ canvasHeight: number;
26
+ canvasWidth: number;
27
+ resolvedView?: Volume3DResolvedViewLike;
28
+ }
29
+ export interface Volume3DProjectionRequest extends ProjectionRequest<Volume3DProjectionViewport> {
30
+ camera?: Volume3DCamera & ICamera;
31
+ canvasHeight?: number;
32
+ canvasWidth?: number;
33
+ frameOfReferenceUID?: string;
34
+ resolvedView?: Volume3DResolvedViewLike;
35
+ }
@@ -0,0 +1,2 @@
1
+ import { ViewportType } from '../../../enums';
2
+ export const VOLUME3D_PROJECTION_ID = 'volume3d';
@@ -0,0 +1,4 @@
1
+ import { DefaultRenderPathResolver } from '../DefaultRenderPathResolver';
2
+ import type { RenderPathDefinition } from '../ViewportArchitectureTypes';
3
+ export declare function createDefaultVolume3DRenderPaths(): RenderPathDefinition[];
4
+ export declare function createVolume3DRenderPathResolver(paths?: ReadonlyArray<RenderPathDefinition>): DefaultRenderPathResolver;
@@ -0,0 +1,9 @@
1
+ import { DefaultRenderPathResolver } from '../DefaultRenderPathResolver';
2
+ import { VtkGeometry3DPath } from './VtkGeometry3DRenderPath';
3
+ import { VtkVolume3DPath } from './VtkVolume3DRenderPath';
4
+ export function createDefaultVolume3DRenderPaths() {
5
+ return [new VtkVolume3DPath(), new VtkGeometry3DPath()];
6
+ }
7
+ export function createVolume3DRenderPathResolver(paths = createDefaultVolume3DRenderPaths()) {
8
+ return new DefaultRenderPathResolver(paths);
9
+ }
@@ -0,0 +1,18 @@
1
+ import type vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
2
+ import type { ICamera, Point2, Point3 } from '../../../types';
3
+ import ResolvedViewportView from '../ResolvedViewportView';
4
+ import type { Volume3DCamera } from './viewport3DTypes';
5
+ type Volume3DResolvedViewState = {
6
+ camera: Volume3DCamera & ICamera;
7
+ canvas: HTMLCanvasElement;
8
+ frameOfReferenceUID?: string;
9
+ renderer: vtkRenderer;
10
+ };
11
+ declare class Volume3DResolvedView extends ResolvedViewportView<Volume3DResolvedViewState> {
12
+ canvasToWorld(canvasPos: Point2): Point3;
13
+ worldToCanvas(worldPos: Point3): Point2;
14
+ getFrameOfReferenceUID(): string | undefined;
15
+ protected buildICamera(): ICamera;
16
+ }
17
+ export type { Volume3DResolvedViewState };
18
+ export default Volume3DResolvedView;
@@ -0,0 +1,42 @@
1
+ import { canvasToWorldContextPool, worldToCanvasContextPool, } from '../../helpers/vtkCanvasCoordinateTransforms';
2
+ import ResolvedViewportView from '../ResolvedViewportView';
3
+ class Volume3DResolvedView extends ResolvedViewportView {
4
+ canvasToWorld(canvasPos) {
5
+ return canvasToWorldContextPool({
6
+ canvas: this.state.canvas,
7
+ canvasPos,
8
+ renderer: this.state.renderer,
9
+ });
10
+ }
11
+ worldToCanvas(worldPos) {
12
+ return worldToCanvasContextPool({
13
+ canvas: this.state.canvas,
14
+ renderer: this.state.renderer,
15
+ worldPos,
16
+ });
17
+ }
18
+ getFrameOfReferenceUID() {
19
+ return this.state.frameOfReferenceUID;
20
+ }
21
+ buildICamera() {
22
+ return {
23
+ ...this.state.camera,
24
+ clippingRange: this.state.camera.clippingRange
25
+ ? [...this.state.camera.clippingRange]
26
+ : this.state.camera.clippingRange,
27
+ focalPoint: this.state.camera.focalPoint
28
+ ? [...this.state.camera.focalPoint]
29
+ : this.state.camera.focalPoint,
30
+ position: this.state.camera.position
31
+ ? [...this.state.camera.position]
32
+ : this.state.camera.position,
33
+ viewPlaneNormal: this.state.camera.viewPlaneNormal
34
+ ? [...this.state.camera.viewPlaneNormal]
35
+ : this.state.camera.viewPlaneNormal,
36
+ viewUp: this.state.camera.viewUp
37
+ ? [...this.state.camera.viewUp]
38
+ : this.state.camera.viewUp,
39
+ };
40
+ }
41
+ }
42
+ export default Volume3DResolvedView;
@@ -0,0 +1,39 @@
1
+ import type { ActorEntry, ICamera, IVolumeInput, VolumeViewportProperties } from '../../../types';
2
+ import VolumeViewport3D from './viewport3D';
3
+ import type { Volume3DCamera } from './viewport3DTypes';
4
+ declare class VolumeViewport3DLegacyAdapter extends VolumeViewport3D {
5
+ private readonly managedDataIds;
6
+ private readonly volumeDataIds;
7
+ private readonly legacyProperties;
8
+ private readonly defaultLegacyProperties;
9
+ getCamera(): Volume3DCamera & ICamera;
10
+ setCamera(cameraPatch: Partial<Volume3DCamera>): void;
11
+ getViewPresentation(): {
12
+ camera: Volume3DCamera & ICamera;
13
+ } | undefined;
14
+ setViewPresentation(viewPresentation?: {
15
+ camera?: Partial<Volume3DCamera>;
16
+ } | Partial<Volume3DCamera>): void;
17
+ resetCamera(): boolean;
18
+ resetCameraForResize(): boolean;
19
+ setVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>;
20
+ addVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>;
21
+ setProperties(properties?: VolumeViewportProperties, volumeId?: string, suppressEvents?: boolean): void;
22
+ getProperties(volumeId?: string): VolumeViewportProperties;
23
+ resetProperties(volumeId?: string): void;
24
+ setSampleDistanceMultiplier(multiplier: number): void;
25
+ removeData(dataId: string): void;
26
+ getActors(): ActorEntry[];
27
+ getDefaultActor(): ActorEntry | undefined;
28
+ private mountVolumes;
29
+ private buildActorEntries;
30
+ private applyPresetToBinding;
31
+ private getBindingActor;
32
+ private resolveTargetDataId;
33
+ private resolveVolumeIdForDataId;
34
+ private removeBindingsExcept;
35
+ private getLegacyVolumeDataId;
36
+ private forgetData;
37
+ protected onDestroy(): void;
38
+ }
39
+ export default VolumeViewport3DLegacyAdapter;
@@ -0,0 +1,296 @@
1
+ import cache from '../../../cache/cache';
2
+ import { VIEWPORT_PRESETS } from '../../../constants';
3
+ import { Events } from '../../../enums';
4
+ import applyPreset from '../../../utilities/applyPreset';
5
+ import triggerEvent from '../../../utilities/triggerEvent';
6
+ import genericViewportDataSetMetadataProvider from '../../../utilities/genericViewportDataSetMetadataProvider';
7
+ import { viewportProjection } from '../viewportProjection';
8
+ import VolumeViewport3D from './viewport3D';
9
+ class VolumeViewport3DLegacyAdapter extends VolumeViewport3D {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.managedDataIds = new Set();
13
+ this.volumeDataIds = new Map();
14
+ this.legacyProperties = new Map();
15
+ this.defaultLegacyProperties = new Map();
16
+ }
17
+ getCamera() {
18
+ return this.getViewState();
19
+ }
20
+ setCamera(cameraPatch) {
21
+ this.setViewState(cameraPatch);
22
+ }
23
+ getViewPresentation() {
24
+ return viewportProjection.getPresentation(this);
25
+ }
26
+ setViewPresentation(viewPresentation) {
27
+ if (!viewPresentation) {
28
+ return;
29
+ }
30
+ const presentation = isVolume3DViewPresentation(viewPresentation)
31
+ ? viewPresentation
32
+ : { camera: viewPresentation };
33
+ const nextCamera = viewportProjection.withPresentation(this, presentation);
34
+ if (nextCamera) {
35
+ this.setViewState(nextCamera);
36
+ }
37
+ }
38
+ resetCamera() {
39
+ return this.resetViewState();
40
+ }
41
+ resetCameraForResize() {
42
+ return this.resetViewStateForResize();
43
+ }
44
+ async setVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
45
+ await this.mountVolumes(volumeInputArray, true, suppressEvents);
46
+ if (immediate) {
47
+ this.render();
48
+ }
49
+ }
50
+ async addVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
51
+ await this.mountVolumes(volumeInputArray, false, suppressEvents);
52
+ if (immediate) {
53
+ this.render();
54
+ }
55
+ }
56
+ setProperties(properties = {}, volumeId, suppressEvents = false) {
57
+ const targetDataId = this.resolveTargetDataId(volumeId);
58
+ if (!targetDataId) {
59
+ return;
60
+ }
61
+ const nextProperties = {
62
+ ...(this.legacyProperties.get(targetDataId) || {}),
63
+ ...properties,
64
+ };
65
+ if (!this.defaultLegacyProperties.has(targetDataId)) {
66
+ this.defaultLegacyProperties.set(targetDataId, { ...properties });
67
+ }
68
+ this.legacyProperties.set(targetDataId, nextProperties);
69
+ const presentationPatch = {};
70
+ if (properties.voiRange !== undefined) {
71
+ presentationPatch.voiRange = properties.voiRange;
72
+ }
73
+ if (properties.invert !== undefined) {
74
+ presentationPatch.invert = properties.invert;
75
+ }
76
+ if (properties.interpolationType !== undefined) {
77
+ presentationPatch.interpolationType = properties.interpolationType;
78
+ }
79
+ if (properties.sampleDistanceMultiplier !== undefined) {
80
+ presentationPatch.sampleDistanceMultiplier =
81
+ properties.sampleDistanceMultiplier;
82
+ }
83
+ if (Object.keys(presentationPatch).length) {
84
+ this.setDisplaySetPresentation(targetDataId, presentationPatch);
85
+ }
86
+ if (properties.preset !== undefined) {
87
+ this.applyPresetToBinding(targetDataId, properties.preset, volumeId, suppressEvents);
88
+ }
89
+ this.render();
90
+ }
91
+ getProperties(volumeId) {
92
+ const targetDataId = this.resolveTargetDataId(volumeId);
93
+ if (!targetDataId) {
94
+ return {};
95
+ }
96
+ return { ...(this.legacyProperties.get(targetDataId) || {}) };
97
+ }
98
+ resetProperties(volumeId) {
99
+ const targetDataId = this.resolveTargetDataId(volumeId);
100
+ if (!targetDataId) {
101
+ return;
102
+ }
103
+ const defaults = this.defaultLegacyProperties.get(targetDataId) || {};
104
+ this.legacyProperties.set(targetDataId, { ...defaults });
105
+ this.setDisplaySetPresentation(targetDataId, {
106
+ voiRange: defaults.voiRange,
107
+ invert: defaults.invert,
108
+ interpolationType: defaults.interpolationType,
109
+ sampleDistanceMultiplier: defaults.sampleDistanceMultiplier,
110
+ });
111
+ if (defaults.preset !== undefined) {
112
+ this.applyPresetToBinding(targetDataId, defaults.preset, volumeId, false);
113
+ }
114
+ this.render();
115
+ }
116
+ setSampleDistanceMultiplier(multiplier) {
117
+ this.setProperties({ sampleDistanceMultiplier: multiplier });
118
+ }
119
+ removeData(dataId) {
120
+ super.removeData(dataId);
121
+ this.forgetData(dataId);
122
+ }
123
+ getActors() {
124
+ return super.getActors();
125
+ }
126
+ getDefaultActor() {
127
+ return super.getDefaultActor();
128
+ }
129
+ async mountVolumes(volumeInputArray, replaceExisting, suppressEvents) {
130
+ if (!volumeInputArray.length) {
131
+ return;
132
+ }
133
+ const dataIds = [];
134
+ try {
135
+ for (const volumeInput of volumeInputArray) {
136
+ const cachedVolume = cache.getVolume(volumeInput.volumeId);
137
+ if (!cachedVolume) {
138
+ throw new Error(`imageVolume with id: ${volumeInput.volumeId} does not exist, you need to create/allocate the volume first`);
139
+ }
140
+ const dataId = this.getLegacyVolumeDataId(volumeInput.volumeId);
141
+ const dataSet = {
142
+ imageIds: cachedVolume.imageIds,
143
+ volumeId: volumeInput.volumeId,
144
+ };
145
+ genericViewportDataSetMetadataProvider.add(dataId, dataSet);
146
+ this.managedDataIds.add(dataId);
147
+ this.volumeDataIds.set(volumeInput.volumeId, dataId);
148
+ dataIds.push(dataId);
149
+ }
150
+ if (replaceExisting) {
151
+ this.removeBindingsExcept(new Set(dataIds));
152
+ }
153
+ await this.setDisplaySets(...dataIds.map((dataId) => ({
154
+ displaySetId: dataId,
155
+ options: { renderMode: 'vtkVolume3d' },
156
+ })));
157
+ volumeInputArray.forEach((volumeInput, index) => {
158
+ const dataId = dataIds[index];
159
+ if (volumeInput.visibility !== undefined) {
160
+ this.setDisplaySetPresentation(dataId, {
161
+ visible: volumeInput.visibility,
162
+ });
163
+ }
164
+ if (volumeInput.callback) {
165
+ const actor = this.getBindingActor(dataId);
166
+ if (actor) {
167
+ volumeInput.callback({
168
+ volumeActor: actor,
169
+ volumeId: volumeInput.volumeId,
170
+ });
171
+ }
172
+ }
173
+ });
174
+ if (!suppressEvents) {
175
+ triggerEvent(this.element, Events.VOLUME_VIEWPORT_NEW_VOLUME, {
176
+ viewportId: this.id,
177
+ volumeActors: this.buildActorEntries(volumeInputArray, dataIds),
178
+ });
179
+ }
180
+ }
181
+ catch (error) {
182
+ dataIds.forEach((dataId) => {
183
+ this.forgetData(dataId);
184
+ });
185
+ throw error;
186
+ }
187
+ }
188
+ buildActorEntries(volumeInputArray, dataIds) {
189
+ return volumeInputArray.flatMap((volumeInput, index) => {
190
+ const actor = this.getBindingActor(dataIds[index]);
191
+ if (!actor) {
192
+ return [];
193
+ }
194
+ const { actorUID, slabThickness, volumeId, ...rest } = volumeInput;
195
+ return [
196
+ {
197
+ uid: actorUID || volumeId,
198
+ actor: actor,
199
+ slabThickness,
200
+ referencedId: volumeId,
201
+ ...rest,
202
+ },
203
+ ];
204
+ });
205
+ }
206
+ applyPresetToBinding(dataId, presetNameOrObj, requestedVolumeId, suppressEvents) {
207
+ const preset = typeof presetNameOrObj === 'string'
208
+ ? VIEWPORT_PRESETS.find((entry) => entry.name === presetNameOrObj)
209
+ : presetNameOrObj;
210
+ if (!preset) {
211
+ return;
212
+ }
213
+ const actor = this.getBindingActor(dataId);
214
+ if (!actor) {
215
+ return;
216
+ }
217
+ applyPreset(actor, preset);
218
+ if (!suppressEvents) {
219
+ triggerEvent(this.element, Events.PRESET_MODIFIED, {
220
+ viewportId: this.id,
221
+ volumeId: requestedVolumeId ?? this.resolveVolumeIdForDataId(dataId),
222
+ actor,
223
+ presetName: preset.name,
224
+ });
225
+ }
226
+ }
227
+ getBindingActor(dataId) {
228
+ const binding = this.getBinding(dataId);
229
+ if (!binding) {
230
+ return;
231
+ }
232
+ const rendering = binding.rendering;
233
+ return rendering?.actor;
234
+ }
235
+ resolveTargetDataId(volumeId) {
236
+ if (volumeId) {
237
+ const mapped = this.volumeDataIds.get(volumeId);
238
+ if (mapped) {
239
+ return mapped;
240
+ }
241
+ for (const [dataId, binding] of this.bindings.entries()) {
242
+ const rendering = binding.rendering;
243
+ if (rendering?.imageVolume?.volumeId === volumeId) {
244
+ return dataId;
245
+ }
246
+ }
247
+ }
248
+ return this.bindings.keys().next().value;
249
+ }
250
+ resolveVolumeIdForDataId(dataId) {
251
+ for (const [volumeId, mappedDataId] of this.volumeDataIds.entries()) {
252
+ if (mappedDataId === dataId) {
253
+ return volumeId;
254
+ }
255
+ }
256
+ }
257
+ removeBindingsExcept(keepDataIds) {
258
+ for (const dataId of Array.from(this.bindings.keys())) {
259
+ if (!keepDataIds.has(dataId)) {
260
+ this.removeData(dataId);
261
+ }
262
+ }
263
+ }
264
+ getLegacyVolumeDataId(volumeId) {
265
+ return `__volume3d__:${this.id}:volume:${volumeId}`;
266
+ }
267
+ forgetData(dataId) {
268
+ if (!this.managedDataIds.delete(dataId)) {
269
+ return;
270
+ }
271
+ genericViewportDataSetMetadataProvider.remove(dataId);
272
+ this.legacyProperties.delete(dataId);
273
+ this.defaultLegacyProperties.delete(dataId);
274
+ for (const [volumeId, mappedDataId] of this.volumeDataIds.entries()) {
275
+ if (mappedDataId === dataId) {
276
+ this.volumeDataIds.delete(volumeId);
277
+ }
278
+ }
279
+ }
280
+ onDestroy() {
281
+ for (const dataId of Array.from(this.managedDataIds)) {
282
+ genericViewportDataSetMetadataProvider.remove(dataId);
283
+ }
284
+ this.managedDataIds.clear();
285
+ this.volumeDataIds.clear();
286
+ this.legacyProperties.clear();
287
+ this.defaultLegacyProperties.clear();
288
+ super.onDestroy();
289
+ }
290
+ }
291
+ export default VolumeViewport3DLegacyAdapter;
292
+ function isVolume3DViewPresentation(viewPresentation) {
293
+ return (Boolean(viewPresentation) &&
294
+ typeof viewPresentation === 'object' &&
295
+ 'camera' in viewPresentation);
296
+ }
@@ -0,0 +1,22 @@
1
+ import '@kitware/vtk.js/Rendering/Profiles/Geometry';
2
+ import { ViewportType } from '../../../enums';
3
+ import type { DataAddOptions, LoadedData, RenderPathAttachment, RenderPathDefinition, RenderPath } from '../ViewportArchitectureTypes';
4
+ import type { Volume3DDataPresentation, Volume3DViewportRenderContext, Volume3DVtkGeometryAdapterContext } from './viewport3DTypes';
5
+ export declare class VtkGeometry3DRenderPath implements RenderPath<Volume3DVtkGeometryAdapterContext> {
6
+ addData(ctx: Volume3DVtkGeometryAdapterContext, data: LoadedData, options: DataAddOptions): Promise<RenderPathAttachment<Volume3DDataPresentation>>;
7
+ private updateDataPresentation;
8
+ private applyViewState;
9
+ private canvasToWorld;
10
+ private worldToCanvas;
11
+ private getFrameOfReferenceUID;
12
+ private render;
13
+ private resize;
14
+ private removeData;
15
+ }
16
+ export declare class VtkGeometry3DPath implements RenderPathDefinition<Volume3DViewportRenderContext, Volume3DVtkGeometryAdapterContext> {
17
+ readonly id = "volume3d:vtk-geometry";
18
+ readonly type = ViewportType.VOLUME_3D_NEXT;
19
+ matches(data: LoadedData, options: DataAddOptions): boolean;
20
+ createRenderPath(): VtkGeometry3DRenderPath;
21
+ selectContext(rootContext: Volume3DViewportRenderContext): Volume3DVtkGeometryAdapterContext;
22
+ }