@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,156 @@
1
+ import '@kitware/vtk.js/Rendering/Profiles/Geometry';
2
+ import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor';
3
+ import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper';
4
+ import vtkPolyData from '@kitware/vtk.js/Common/DataModel/PolyData';
5
+ import vtkCellArray from '@kitware/vtk.js/Common/Core/CellArray';
6
+ import { GeometryType, ViewportType } from '../../../enums';
7
+ import uuidv4 from '../../../utilities/uuidv4';
8
+ import { canvasToWorldContextPool, worldToCanvasContextPool, } from '../../helpers/vtkCanvasCoordinateTransforms';
9
+ import applyVolume3DCamera from './applyVolume3DCamera';
10
+ export class VtkGeometry3DRenderPath {
11
+ async addData(ctx, data, options) {
12
+ const payload = data;
13
+ const actors = createActorEntries(payload.geometry);
14
+ const hadVisibleProps = hasVisibleProps(ctx);
15
+ actors.forEach((actorEntry) => {
16
+ ctx.vtk.renderer.addActor(actorEntry.actor);
17
+ });
18
+ if (!hadVisibleProps) {
19
+ ctx.vtk.renderer.resetCamera();
20
+ }
21
+ ctx.vtk.renderer.resetCameraClippingRange();
22
+ const rendering = {
23
+ renderMode: 'vtkGeometry3d',
24
+ actors,
25
+ frameOfReferenceUID: payload.geometry.type === GeometryType.SURFACE
26
+ ? payload.geometry.data.frameOfReferenceUID
27
+ : undefined,
28
+ };
29
+ return {
30
+ rendering,
31
+ updateDataPresentation: (props) => {
32
+ this.updateDataPresentation(rendering, props);
33
+ },
34
+ applyViewState: (camera) => {
35
+ this.applyViewState(ctx, camera);
36
+ },
37
+ getFrameOfReferenceUID: () => {
38
+ return this.getFrameOfReferenceUID(rendering);
39
+ },
40
+ render: () => {
41
+ this.render(ctx);
42
+ },
43
+ resize: () => {
44
+ this.resize(ctx);
45
+ },
46
+ removeData: () => {
47
+ this.removeData(ctx, rendering);
48
+ },
49
+ };
50
+ }
51
+ updateDataPresentation(rendering, props) {
52
+ applyDataPresentation(rendering, props);
53
+ }
54
+ applyViewState(ctx, camera) {
55
+ applyVolume3DCamera(ctx, camera, {
56
+ resetClippingRange: true,
57
+ });
58
+ }
59
+ canvasToWorld(ctx, canvasPos) {
60
+ return canvasToWorldContextPool({
61
+ canvas: ctx.vtk.canvas,
62
+ renderer: ctx.vtk.renderer,
63
+ canvasPos,
64
+ });
65
+ }
66
+ worldToCanvas(ctx, worldPos) {
67
+ return worldToCanvasContextPool({
68
+ canvas: ctx.vtk.canvas,
69
+ renderer: ctx.vtk.renderer,
70
+ worldPos,
71
+ });
72
+ }
73
+ getFrameOfReferenceUID(rendering) {
74
+ return rendering.frameOfReferenceUID;
75
+ }
76
+ render(ctx) {
77
+ ctx.display.requestRender();
78
+ }
79
+ resize(ctx) {
80
+ ctx.display.requestRender();
81
+ }
82
+ removeData(ctx, rendering) {
83
+ rendering.actors.forEach((actorEntry) => {
84
+ ctx.vtk.renderer.removeActor(actorEntry.actor);
85
+ });
86
+ }
87
+ }
88
+ export class VtkGeometry3DPath {
89
+ constructor() {
90
+ this.id = 'volume3d:vtk-geometry';
91
+ this.type = ViewportType.VOLUME_3D_NEXT;
92
+ }
93
+ matches(data, options) {
94
+ return data.type === 'geometry' && options.renderMode === 'vtkGeometry3d';
95
+ }
96
+ createRenderPath() {
97
+ return new VtkGeometry3DRenderPath();
98
+ }
99
+ selectContext(rootContext) {
100
+ return rootContext;
101
+ }
102
+ }
103
+ function createActorEntries(geometry) {
104
+ if (geometry.type === GeometryType.SURFACE) {
105
+ const surface = geometry.data;
106
+ const polyData = vtkPolyData.newInstance();
107
+ polyData.getPoints().setData(surface.points, 3);
108
+ polyData.setPolys(vtkCellArray.newInstance({
109
+ values: Uint32Array.from(surface.polys),
110
+ }));
111
+ const mapper = vtkMapper.newInstance();
112
+ mapper.setInputData(polyData);
113
+ const actor = vtkActor.newInstance();
114
+ actor.setMapper(mapper);
115
+ actor.setVisibility(surface.visible !== false);
116
+ actor
117
+ .getProperty()
118
+ .setColor(surface.color[0] / 255, surface.color[1] / 255, surface.color[2] / 255);
119
+ return [
120
+ {
121
+ actor,
122
+ referencedId: geometry.id,
123
+ uid: uuidv4(),
124
+ },
125
+ ];
126
+ }
127
+ if (geometry.type === GeometryType.MESH) {
128
+ const mesh = geometry.data;
129
+ return mesh.actors.map((sourceActor, index) => {
130
+ return {
131
+ actor: sourceActor,
132
+ referencedId: geometry.id,
133
+ uid: uuidv4(),
134
+ };
135
+ });
136
+ }
137
+ throw new Error(`[VolumeViewport3D] Geometry type ${geometry.type} is not supported in 3D Next rendering`);
138
+ }
139
+ function applyDataPresentation(rendering, props) {
140
+ rendering.actors.forEach((actorEntry) => {
141
+ const actor = actorEntry.actor;
142
+ actor.setVisibility(props?.visible === false ? false : true);
143
+ if (props?.opacity !== undefined) {
144
+ actor.getProperty().setOpacity(props.opacity);
145
+ }
146
+ if (props?.color) {
147
+ actor
148
+ .getProperty()
149
+ .setColor(props.color[0] / 255, props.color[1] / 255, props.color[2] / 255);
150
+ }
151
+ });
152
+ }
153
+ function hasVisibleProps(ctx) {
154
+ const renderer = ctx.vtk.renderer;
155
+ return Boolean(renderer.getActors?.().length || renderer.getVolumes?.().length);
156
+ }
@@ -0,0 +1,23 @@
1
+ import '@kitware/vtk.js/Rendering/Profiles/Volume';
2
+ import { ViewportType } from '../../../enums';
3
+ import type { DataAddOptions, LoadedData, RenderPathAttachment, RenderPathDefinition, RenderPath } from '../ViewportArchitectureTypes';
4
+ import type { Volume3DDataPresentation, Volume3DViewportRenderContext, Volume3DVtkVolumeAdapterContext } from './viewport3DTypes';
5
+ export declare class VtkVolume3DRenderPath implements RenderPath<Volume3DVtkVolumeAdapterContext> {
6
+ addData(ctx: Volume3DVtkVolumeAdapterContext, data: LoadedData, options: DataAddOptions): Promise<RenderPathAttachment<Volume3DDataPresentation>>;
7
+ private updateDataPresentation;
8
+ private applyViewState;
9
+ private canvasToWorld;
10
+ private worldToCanvas;
11
+ private getFrameOfReferenceUID;
12
+ private getImageData;
13
+ private render;
14
+ private resize;
15
+ private removeData;
16
+ }
17
+ export declare class VtkVolume3DPath implements RenderPathDefinition<Volume3DViewportRenderContext, Volume3DVtkVolumeAdapterContext> {
18
+ readonly id = "volume3d:vtk-volume";
19
+ readonly type = ViewportType.VOLUME_3D_NEXT;
20
+ matches(data: LoadedData, options: DataAddOptions): boolean;
21
+ createRenderPath(): VtkVolume3DRenderPath;
22
+ selectContext(rootContext: Volume3DViewportRenderContext): Volume3DVtkVolumeAdapterContext;
23
+ }
@@ -0,0 +1,205 @@
1
+ import '@kitware/vtk.js/Rendering/Profiles/Volume';
2
+ import { Events, ViewportType } from '../../../enums';
3
+ import eventTarget from '../../../eventTarget';
4
+ import createLinearRGBTransferFunction from '../../../utilities/createLinearRGBTransferFunction';
5
+ import invertRgbTransferFunction from '../../../utilities/invertRgbTransferFunction';
6
+ import { updateOpacity as updateVolumeOpacity } from '../../../utilities/colormap';
7
+ import uuidv4 from '../../../utilities/uuidv4';
8
+ import createVolumeActor from '../../helpers/createVolumeActor';
9
+ import { canvasToWorldContextPool, worldToCanvasContextPool, } from '../../helpers/vtkCanvasCoordinateTransforms';
10
+ import applyVolume3DCamera from './applyVolume3DCamera';
11
+ import { getInitialVolume3DCamera } from './vtkVolume3DInitialCamera';
12
+ import setVtkCameraClippingRange from '../setVtkCameraClippingRange';
13
+ export class VtkVolume3DRenderPath {
14
+ async addData(ctx, data, options) {
15
+ const payload = data;
16
+ const hadVolume = ctx.vtk.renderer.getVolumes().length > 0;
17
+ const actor = await createVolumeActor({
18
+ volumeId: payload.volumeId,
19
+ }, ctx.viewport.element, ctx.viewportId, true);
20
+ const mapper = actor.getMapper();
21
+ ctx.vtk.renderer.addVolume(actor);
22
+ if (!hadVolume) {
23
+ const initialCamera = getInitialVolume3DCamera(ctx, payload.imageVolume);
24
+ if (initialCamera) {
25
+ applyCamera(ctx, initialCamera);
26
+ }
27
+ }
28
+ setCameraClippingRange(ctx);
29
+ const defaultRange = actor
30
+ .getProperty()
31
+ .getRGBTransferFunction(0)
32
+ .getRange();
33
+ const rendering = {
34
+ renderMode: 'vtkVolume3d',
35
+ actorEntryUID: uuidv4(),
36
+ actor,
37
+ defaultVOIRange: defaultRange
38
+ ? { lower: defaultRange[0], upper: defaultRange[1] }
39
+ : undefined,
40
+ imageVolume: payload.imageVolume,
41
+ mapper,
42
+ removeStreamingSubscriptions: subscribeToVolumeEvents(payload.volumeId, () => {
43
+ ctx.display.requestRender();
44
+ }),
45
+ };
46
+ return {
47
+ rendering,
48
+ updateDataPresentation: (props) => {
49
+ this.updateDataPresentation(rendering, props);
50
+ },
51
+ applyViewState: (camera) => {
52
+ this.applyViewState(ctx, camera);
53
+ },
54
+ getFrameOfReferenceUID: () => {
55
+ return this.getFrameOfReferenceUID(rendering);
56
+ },
57
+ getImageData: () => {
58
+ return this.getImageData(rendering);
59
+ },
60
+ render: () => {
61
+ this.render(ctx);
62
+ },
63
+ resize: () => {
64
+ this.resize(ctx);
65
+ },
66
+ removeData: () => {
67
+ this.removeData(ctx, rendering);
68
+ },
69
+ };
70
+ }
71
+ updateDataPresentation(rendering, props) {
72
+ applyDataPresentation(rendering, props);
73
+ }
74
+ applyViewState(ctx, camera) {
75
+ applyCamera(ctx, camera);
76
+ }
77
+ canvasToWorld(ctx, canvasPos) {
78
+ return canvasToWorldContextPool({
79
+ canvas: ctx.vtk.canvas,
80
+ renderer: ctx.vtk.renderer,
81
+ canvasPos,
82
+ });
83
+ }
84
+ worldToCanvas(ctx, worldPos) {
85
+ return worldToCanvasContextPool({
86
+ canvas: ctx.vtk.canvas,
87
+ renderer: ctx.vtk.renderer,
88
+ worldPos,
89
+ });
90
+ }
91
+ getFrameOfReferenceUID(rendering) {
92
+ return rendering.imageVolume.metadata?.FrameOfReferenceUID;
93
+ }
94
+ getImageData(rendering) {
95
+ return buildVolumeImageData(rendering.imageVolume);
96
+ }
97
+ render(ctx) {
98
+ ctx.display.requestRender();
99
+ }
100
+ resize(ctx) {
101
+ ctx.display.requestRender();
102
+ }
103
+ removeData(ctx, rendering) {
104
+ const { actor, removeStreamingSubscriptions } = rendering;
105
+ removeStreamingSubscriptions?.();
106
+ ctx.vtk.renderer.removeVolume(actor);
107
+ }
108
+ }
109
+ export class VtkVolume3DPath {
110
+ constructor() {
111
+ this.id = 'volume3d:vtk-volume';
112
+ this.type = ViewportType.VOLUME_3D_NEXT;
113
+ }
114
+ matches(data, options) {
115
+ return data.type === 'image' && options.renderMode === 'vtkVolume3d';
116
+ }
117
+ createRenderPath() {
118
+ return new VtkVolume3DRenderPath();
119
+ }
120
+ selectContext(rootContext) {
121
+ return rootContext;
122
+ }
123
+ }
124
+ function subscribeToVolumeEvents(volumeId, onProgress) {
125
+ const handleProgress = (evt) => {
126
+ const detail = evt.detail;
127
+ if (detail?.volumeId !== volumeId) {
128
+ return;
129
+ }
130
+ onProgress();
131
+ };
132
+ eventTarget.addEventListener(Events.IMAGE_VOLUME_MODIFIED, handleProgress);
133
+ eventTarget.addEventListener(Events.IMAGE_VOLUME_LOADING_COMPLETED, handleProgress);
134
+ return () => {
135
+ eventTarget.removeEventListener(Events.IMAGE_VOLUME_MODIFIED, handleProgress);
136
+ eventTarget.removeEventListener(Events.IMAGE_VOLUME_LOADING_COMPLETED, handleProgress);
137
+ };
138
+ }
139
+ function applyDataPresentation(rendering, props) {
140
+ const { actor, defaultVOIRange } = rendering;
141
+ const property = actor.getProperty();
142
+ const voiRange = props?.voiRange ?? defaultVOIRange;
143
+ actor.setVisibility(props?.visible === false ? false : true);
144
+ if (props?.opacity !== undefined) {
145
+ updateVolumeOpacity(actor, props.opacity);
146
+ }
147
+ if (!voiRange) {
148
+ return;
149
+ }
150
+ const transferFunction = createLinearRGBTransferFunction(voiRange);
151
+ if (props?.invert) {
152
+ invertRgbTransferFunction(transferFunction);
153
+ }
154
+ property.setRGBTransferFunction(0, transferFunction);
155
+ if (props?.interpolationType !== undefined) {
156
+ property.setInterpolationType(props.interpolationType);
157
+ }
158
+ if (props?.sampleDistanceMultiplier !== undefined) {
159
+ applySampleDistanceMultiplier(rendering.mapper, props.sampleDistanceMultiplier);
160
+ }
161
+ }
162
+ function applyCamera(ctx, camera) {
163
+ applyVolume3DCamera(ctx, camera);
164
+ if (camera && camera.clippingRange === undefined) {
165
+ setCameraClippingRange(ctx);
166
+ }
167
+ }
168
+ function applySampleDistanceMultiplier(mapper, multiplier) {
169
+ const imageData = mapper.getInputData?.();
170
+ if (!imageData) {
171
+ return;
172
+ }
173
+ const spacing = imageData.getSpacing();
174
+ const defaultSampleDistance = (spacing[0] + spacing[1] + spacing[2]) / 6;
175
+ const safeMultiplier = Number.isFinite(multiplier)
176
+ ? Math.max(multiplier, 0.001)
177
+ : 1;
178
+ mapper.setSampleDistance(defaultSampleDistance * safeMultiplier);
179
+ }
180
+ function setCameraClippingRange(ctx) {
181
+ setVtkCameraClippingRange(ctx.vtk.renderer.getActiveCamera());
182
+ }
183
+ function buildVolumeImageData(imageVolume) {
184
+ const vtkImageData = imageVolume.imageData;
185
+ if (!vtkImageData) {
186
+ return;
187
+ }
188
+ return {
189
+ dimensions: vtkImageData.getDimensions(),
190
+ spacing: vtkImageData.getSpacing(),
191
+ origin: vtkImageData.getOrigin(),
192
+ direction: vtkImageData.getDirection(),
193
+ imageData: vtkImageData,
194
+ metadata: {
195
+ Modality: imageVolume.metadata?.Modality,
196
+ FrameOfReferenceUID: imageVolume.metadata?.FrameOfReferenceUID,
197
+ },
198
+ get scalarData() {
199
+ return imageVolume.voxelManager?.getScalarData();
200
+ },
201
+ scaling: imageVolume.scaling,
202
+ hasPixelSpacing: imageVolume.hasPixelSpacing,
203
+ voxelManager: imageVolume.voxelManager,
204
+ };
205
+ }
@@ -0,0 +1,4 @@
1
+ import type { Volume3DCamera, Volume3DViewportRenderContext } from './viewport3DTypes';
2
+ export default function applyVolume3DCamera(ctx: Pick<Volume3DViewportRenderContext, 'vtk'>, camera?: Partial<Volume3DCamera>, options?: {
3
+ resetClippingRange?: boolean;
4
+ }): void;
@@ -0,0 +1,33 @@
1
+ export default function applyVolume3DCamera(ctx, camera, options = {}) {
2
+ if (!camera) {
3
+ return;
4
+ }
5
+ const vtkCamera = ctx.vtk.renderer.getActiveCamera();
6
+ if (camera.parallelProjection !== undefined) {
7
+ vtkCamera.setParallelProjection(camera.parallelProjection);
8
+ }
9
+ if (camera.viewUp) {
10
+ vtkCamera.setViewUp(...camera.viewUp);
11
+ }
12
+ if (camera.viewPlaneNormal) {
13
+ vtkCamera.setDirectionOfProjection(-camera.viewPlaneNormal[0], -camera.viewPlaneNormal[1], -camera.viewPlaneNormal[2]);
14
+ }
15
+ if (camera.position) {
16
+ vtkCamera.setPosition(...camera.position);
17
+ }
18
+ if (camera.focalPoint) {
19
+ vtkCamera.setFocalPoint(...camera.focalPoint);
20
+ }
21
+ if (camera.parallelScale !== undefined) {
22
+ vtkCamera.setParallelScale(camera.parallelScale);
23
+ }
24
+ if (camera.viewAngle !== undefined) {
25
+ vtkCamera.setViewAngle(camera.viewAngle);
26
+ }
27
+ if (camera.clippingRange !== undefined) {
28
+ vtkCamera.setClippingRange(...camera.clippingRange);
29
+ }
30
+ else if (options.resetClippingRange) {
31
+ ctx.vtk.renderer.resetCameraClippingRange();
32
+ }
33
+ }
@@ -0,0 +1,10 @@
1
+ import { getVolume3DProjectionSnapshot } from './volume3DProjectionAdapter';
2
+ export { DefaultVolume3DDataProvider } from './DefaultVolume3DDataProvider';
3
+ export { createDefaultVolume3DRenderPaths, createVolume3DRenderPathResolver, } from './Volume3DRenderPathResolver';
4
+ export declare const volume3DProjection: {
5
+ adapter: import("..").ViewportProjectionAdapter<import("./viewport3DTypes").Volume3DCamera, import("./Volume3DProjectionTypes").Volume3DProjectionPresentation, import("./Volume3DProjectionTypes").Volume3DProjectionSnapshot>;
6
+ getSnapshot: typeof getVolume3DProjectionSnapshot;
7
+ };
8
+ export type { Volume3DProjectionPresentation, Volume3DProjectionRequest, Volume3DProjectionSnapshot, } from './volume3DProjectionAdapter';
9
+ export { default } from './viewport3D';
10
+ export type { Volume3DCamera, Volume3DDataPresentation, Volume3DPresentationProps, Volume3DProperties, Volume3DRequestedRenderMode, Volume3DSetDataOptions, VolumeViewport3DInput, } from './viewport3DTypes';
@@ -0,0 +1,8 @@
1
+ import { getVolume3DProjectionSnapshot, volume3DProjectionAdapter, } from './volume3DProjectionAdapter';
2
+ export { DefaultVolume3DDataProvider } from './DefaultVolume3DDataProvider';
3
+ export { createDefaultVolume3DRenderPaths, createVolume3DRenderPathResolver, } from './Volume3DRenderPathResolver';
4
+ export const volume3DProjection = {
5
+ adapter: volume3DProjectionAdapter,
6
+ getSnapshot: getVolume3DProjectionSnapshot,
7
+ };
8
+ export { default } from './viewport3D';
@@ -0,0 +1,60 @@
1
+ import { ViewportType } from '../../../enums';
2
+ import type { ActorEntry, ICamera, IImageData, ViewReference, ViewReferenceSpecifier } from '../../../types';
3
+ import type ViewportInputOptions from '../../../types/ViewportInputOptions';
4
+ import type { DataAddOptions, ViewportDataBinding } from '../ViewportArchitectureTypes';
5
+ import GenericViewport from '../GenericViewport';
6
+ import { type GenericViewportReferenceContext } from '../genericViewportReferenceCompatibility';
7
+ import Volume3DResolvedView from './Volume3DResolvedView';
8
+ import type { Volume3DCamera, Volume3DDataPresentation, Volume3DSetDataOptions, Volume3DViewportRenderContext, VolumeViewport3DInput } from './viewport3DTypes';
9
+ declare class VolumeViewport3D extends GenericViewport<Volume3DCamera, Volume3DDataPresentation, Volume3DViewportRenderContext> {
10
+ readonly type = ViewportType.VOLUME_3D_NEXT;
11
+ readonly renderingEngineId: string;
12
+ readonly canvas: HTMLCanvasElement;
13
+ sWidth: number;
14
+ sHeight: number;
15
+ defaultOptions: ViewportInputOptions;
16
+ suppressEvents: boolean;
17
+ protected renderContext: Volume3DViewportRenderContext;
18
+ private primaryDataId?;
19
+ static get useCustomRenderingPipeline(): boolean;
20
+ getUseCustomRenderingPipeline(): boolean;
21
+ setRendered(): void;
22
+ constructor(args: VolumeViewport3DInput);
23
+ setDisplaySets(...entries: Array<{
24
+ displaySetId: string;
25
+ options?: Volume3DSetDataOptions;
26
+ }>): Promise<void>;
27
+ addDisplaySet(displaySetId: string, options?: Volume3DSetDataOptions | DataAddOptions): Promise<void>;
28
+ getRenderingEngine(): import("../..").RenderingEngine;
29
+ getImageIds(): string[];
30
+ getRenderer(): import("@kitware/vtk.js/Rendering/Core/Renderer").vtkRenderer;
31
+ getCanvas(): HTMLCanvasElement;
32
+ getVtkActiveCamera(): import("@kitware/vtk.js/Rendering/Core/Camera").vtkCamera;
33
+ getViewState(): Volume3DCamera & ICamera;
34
+ setViewState(viewStatePatch: Partial<Volume3DCamera>): void;
35
+ protected getRuntimeCamera(): Volume3DCamera & ICamera;
36
+ getResolvedView(): Volume3DResolvedView;
37
+ getViewReference(_viewRefSpecifier?: ViewReferenceSpecifier): ViewReference;
38
+ getVolumeId(): string | undefined;
39
+ hasVolumeId(volumeId: string): boolean;
40
+ hasVolumeURI(volumeURI: string): boolean;
41
+ getImageData(): IImageData | undefined;
42
+ getActors(): ActorEntry[];
43
+ getDefaultActor(): ActorEntry | undefined;
44
+ resetViewState(): boolean;
45
+ resetViewStateForResize(): boolean;
46
+ resize(): void;
47
+ render(): void;
48
+ protected onDestroy(): void;
49
+ private getProjectionSnapshot;
50
+ protected getCurrentBinding(): ViewportDataBinding<Volume3DDataPresentation>;
51
+ protected getReferenceViewContexts(): GenericViewportReferenceContext[];
52
+ private requestRenderingEngineRender;
53
+ private resolveRenderMode;
54
+ private getDataSet;
55
+ private getVolume3DPayload;
56
+ private resolveFrameOfReferenceUID;
57
+ private getVolume3DRendering;
58
+ private getActorEntriesForRendering;
59
+ }
60
+ export default VolumeViewport3D;