@cornerstonejs/core 5.0.0-beta.1 → 5.0.1

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
@@ -7,10 +7,9 @@ import Viewport from './Viewport';
7
7
  import { getOrCreateCanvas } from './helpers';
8
8
  import { EPSILON } from '../constants';
9
9
  import triggerEvent from '../utilities/triggerEvent';
10
- import { peerImport } from '../init';
11
- import microscopyViewportCss from '../constants/microscopyViewportCss';
12
10
  import eventTarget from '../eventTarget';
13
11
  import imageIdToURI from '../utilities/imageIdToURI';
12
+ import { addWSIMiniNavigationOverlayCss, getDicomMicroscopyViewer, loadWSIData, } from '../utilities/WSIUtilities';
14
13
  let WSIUtilFunctions = null;
15
14
  const EVENT_POSTRENDER = 'postrender';
16
15
  const ANNOTATION_REMOVED = 'CORNERSTONE_TOOLS_ANNOTATION_REMOVED';
@@ -166,48 +165,7 @@ class WSIViewport extends Viewport {
166
165
  this.microscopyElement = null;
167
166
  this.imageURISet.clear();
168
167
  }
169
- getImageDataMetadata(imageIndex = 0) {
170
- const maxImage = this.metadataDicomweb.reduce((maxImage, image) => {
171
- return maxImage?.NumberOfFrames < image.NumberOfFrames ? image : maxImage;
172
- });
173
- const { TotalPixelMatrixColumns: columns, TotalPixelMatrixRows: rows, ImageOrientationSlide, ImagedVolumeWidth: width, ImagedVolumeHeight: height, ImagedVolumeDepth: depth, } = maxImage;
174
- const imagePlaneModule = metaData.get(MetadataModules.IMAGE_PLANE, this.imageIds[imageIndex]);
175
- let rowCosines = ImageOrientationSlide.slice(0, 3);
176
- let columnCosines = ImageOrientationSlide.slice(3, 6);
177
- if (rowCosines == null || columnCosines == null) {
178
- rowCosines = [1, 0, 0];
179
- columnCosines = [0, 1, 0];
180
- }
181
- const rowCosineVec = vec3.fromValues(rowCosines[0], rowCosines[1], rowCosines[2]);
182
- const colCosineVec = vec3.fromValues(columnCosines[0], columnCosines[1], columnCosines[2]);
183
- const scanAxisNormal = vec3.create();
184
- vec3.cross(scanAxisNormal, rowCosineVec, colCosineVec);
185
- const { XOffsetInSlideCoordinateSystem = 0, YOffsetInSlideCoordinateSystem = 0, ZOffsetInSlideCoordinateSystem = 0, } = maxImage.TotalPixelMatrixOriginSequence?.[0] || {};
186
- const origin = [
187
- XOffsetInSlideCoordinateSystem,
188
- YOffsetInSlideCoordinateSystem,
189
- ZOffsetInSlideCoordinateSystem,
190
- ];
191
- const xSpacing = width / columns;
192
- const ySpacing = height / rows;
193
- const xVoxels = columns;
194
- const yVoxels = rows;
195
- const zSpacing = depth;
196
- const zVoxels = 1;
197
- this.hasPixelSpacing = !!(width && height);
198
- return {
199
- bitsAllocated: 8,
200
- numberOfComponents: 3,
201
- origin,
202
- direction: [...rowCosineVec, ...colCosineVec, ...scanAxisNormal],
203
- dimensions: [xVoxels, yVoxels, zVoxels],
204
- spacing: [xSpacing, ySpacing, zSpacing],
205
- hasPixelSpacing: this.hasPixelSpacing,
206
- numVoxels: xVoxels * yVoxels * zVoxels,
207
- imagePlaneModule,
208
- };
209
- }
210
- async setFrameNumber(frame) {
168
+ async setFrameNumber(_frame) {
211
169
  }
212
170
  setProperties(props) {
213
171
  if (props.voiRange) {
@@ -309,12 +267,12 @@ class WSIViewport extends Viewport {
309
267
  if (parallelScale) {
310
268
  const worldToCanvasRatio = this.element.clientHeight / parallelScale;
311
269
  const resolution = 1 / xSpacing / worldToCanvasRatio;
312
- view.setResolution(resolution);
270
+ view.setResolution?.(resolution);
313
271
  }
314
272
  if (focalPoint) {
315
273
  const newCanvas = this.worldToCanvas(focalPoint);
316
274
  const newIndex = this.canvasToIndex(newCanvas);
317
- view.setCenter(newIndex);
275
+ view.setCenter([newIndex[0], newIndex[1]]);
318
276
  }
319
277
  const updatedCamera = this.getCamera();
320
278
  this.triggerCameraModifiedEventIfNecessary(previousCamera, updatedCamera);
@@ -344,9 +302,6 @@ class WSIViewport extends Viewport {
344
302
  viewPlaneNormal: [0, 0, 1],
345
303
  };
346
304
  }
347
- static { this.getDicomMicroscopyViewer = async () => {
348
- return peerImport('dicom-microscopy-viewer');
349
- }; }
350
305
  worldToIndexWSI(point) {
351
306
  if (!WSIUtilFunctions) {
352
307
  return;
@@ -381,9 +336,22 @@ class WSIViewport extends Viewport {
381
336
  vec3.transformMat4(worldPos, point3D, indexToWorldMatrix);
382
337
  return [worldPos[0], worldPos[1], worldPos[2]];
383
338
  }
339
+ setDataList(entries) {
340
+ if (!entries.length) {
341
+ return;
342
+ }
343
+ const { dataId } = entries[0];
344
+ const dataSet = metaData.get('genericViewportDataSet', dataId);
345
+ if (dataSet?.imageIds) {
346
+ return this.setDataIds(dataSet.imageIds, {
347
+ webClient: dataSet.options?.webClient,
348
+ });
349
+ }
350
+ return this.setDataIds([dataId]);
351
+ }
384
352
  setDataIds(imageIds, options) {
385
353
  if (options?.miniNavigationOverlay !== false) {
386
- WSIViewport.addMiniNavigationOverlayCss();
354
+ addWSIMiniNavigationOverlayCss();
387
355
  }
388
356
  const webClient = options?.webClient ||
389
357
  metaData.get(MetadataModules.WADO_WEB_CLIENT, imageIds[0]);
@@ -396,56 +364,25 @@ class WSIViewport extends Viewport {
396
364
  this.microscopyElement.style.background = 'black';
397
365
  this.microscopyElement.innerText = 'Loading';
398
366
  this.imageIds = imageIds;
399
- this.imageURISet = new Set(imageIds.map((imageId) => imageIdToURI(imageId)));
400
- const DicomMicroscopyViewer = await WSIViewport.getDicomMicroscopyViewer();
367
+ const DicomMicroscopyViewer = await getDicomMicroscopyViewer();
401
368
  WSIUtilFunctions ||= DicomMicroscopyViewer.utils;
402
- this.frameOfReferenceUID = null;
403
- const metadataDicomweb = this.imageIds.map((imageId) => {
404
- const imageMetadata = client.getDICOMwebMetadata(imageId);
405
- Object.defineProperty(imageMetadata, 'isMultiframe', {
406
- value: imageMetadata.isMultiframe,
407
- enumerable: false,
408
- });
409
- Object.defineProperty(imageMetadata, 'frameNumber', {
410
- value: undefined,
411
- enumerable: false,
412
- });
413
- const imageType = imageMetadata['00080008']?.Value;
414
- if (imageType?.length === 1) {
415
- imageMetadata['00080008'].Value = imageType[0].split('\\');
416
- }
417
- const frameOfReference = imageMetadata['00200052']?.Value?.[0];
418
- if (!this.frameOfReferenceUID) {
419
- this.frameOfReferenceUID = frameOfReference;
420
- }
421
- else if (frameOfReference !== this.frameOfReferenceUID) {
422
- imageMetadata['00200052'].Value = [this.frameOfReferenceUID];
423
- }
424
- return imageMetadata;
425
- });
426
- const volumeImages = [];
427
- metadataDicomweb.forEach((m) => {
428
- const image = new DicomMicroscopyViewer.metadata.VLWholeSlideMicroscopyImage({
429
- metadata: m,
430
- });
431
- const imageFlavor = image.ImageType[2];
432
- if (imageFlavor === 'VOLUME' || imageFlavor === 'THUMBNAIL') {
433
- volumeImages.push(image);
434
- }
435
- else {
436
- console.log('Unknown image type', image.ImageType);
437
- }
369
+ const loadedData = await loadWSIData({
370
+ imageIds: this.imageIds,
371
+ client,
372
+ dicomMicroscopyViewer: DicomMicroscopyViewer,
438
373
  });
439
- this.metadataDicomweb = volumeImages;
374
+ this.imageURISet = loadedData.imageURISet;
375
+ this.frameOfReferenceUID = loadedData.frameOfReferenceUID;
376
+ this.metadata = loadedData.metadata;
377
+ this.hasPixelSpacing = loadedData.metadata.hasPixelSpacing;
440
378
  const viewer = new DicomMicroscopyViewer.viewer.VolumeImageViewer({
441
379
  client,
442
- metadata: volumeImages,
380
+ metadata: loadedData.volumeImages,
443
381
  controls: ['overview', 'position'],
444
382
  retrieveRendered: false,
445
383
  bindings: {},
446
384
  });
447
385
  viewer.render({ container: this.microscopyElement });
448
- this.metadata = this.getImageDataMetadata();
449
386
  viewer.deactivateDragPanInteraction();
450
387
  this.viewer = viewer;
451
388
  this.map = viewer.getMap();
@@ -530,15 +467,5 @@ class WSIViewport extends Viewport {
530
467
  getCurrentImageIdIndex() {
531
468
  return 0;
532
469
  }
533
- static { this.overlayCssId = 'overlayCss'; }
534
- static addMiniNavigationOverlayCss() {
535
- if (document.getElementById(this.overlayCssId)) {
536
- return;
537
- }
538
- const overlayCss = document.createElement('style');
539
- overlayCss.innerText = microscopyViewportCss;
540
- overlayCss.setAttribute('id', this.overlayCssId);
541
- document.getElementsByTagName('head')[0].append(overlayCss);
542
- }
543
470
  }
544
471
  export default WSIViewport;
@@ -1,20 +1,18 @@
1
- import BaseVolumeViewport from '../BaseVolumeViewport';
1
+ import isVolumeCompatible, {} from './supportsVolumeCompatibilityApi';
2
2
  async function addVolumesToViewports(renderingEngine, volumeInputs, viewportIds, immediateRender = false, suppressEvents = false) {
3
+ const compatibleViewports = [];
3
4
  for (const viewportId of viewportIds) {
4
5
  const viewport = renderingEngine.getViewport(viewportId);
5
6
  if (!viewport) {
6
7
  throw new Error(`Viewport with Id ${viewportId} does not exist`);
7
8
  }
8
- if (!(viewport instanceof BaseVolumeViewport)) {
9
- console.warn(`Viewport with Id ${viewportId} is not a BaseVolumeViewport. Cannot add volume to this viewport.`);
9
+ if (!isVolumeCompatible(viewport)) {
10
+ console.warn(`Viewport with Id ${viewportId} does not implement addVolumes. Cannot add volume to this viewport.`);
10
11
  return;
11
12
  }
13
+ compatibleViewports.push(viewport);
12
14
  }
13
- const addVolumePromises = viewportIds.map(async (viewportId) => {
14
- const viewport = renderingEngine.getViewport(viewportId);
15
- await viewport.addVolumes(volumeInputs, immediateRender, suppressEvents);
16
- });
17
- await Promise.all(addVolumePromises);
15
+ await Promise.all(compatibleViewports.map((viewport) => viewport.addVolumes(volumeInputs, immediateRender, suppressEvents)));
18
16
  return;
19
17
  }
20
18
  export default addVolumesToViewports;
@@ -1,3 +1,6 @@
1
- import type { CPUFallbackColormap, CPUFallbackColormapData } from '../../../../types';
1
+ import type { ColormapPublic, CPUFallbackColormap, CPUFallbackColormapData, VOIRange } from '../../../../types';
2
2
  export declare function getColormapsList(): any[];
3
+ export declare function resolveCPUFallbackColormap(colormap?: string | ColormapPublic, fallbackColormap?: CPUFallbackColormap, options?: {
4
+ voiRange?: VOIRange;
5
+ }): CPUFallbackColormap | undefined;
3
6
  export declare function getColormap(id: string, colormapData?: CPUFallbackColormapData): CPUFallbackColormap;
@@ -1,6 +1,21 @@
1
1
  import LookupTable from './lookupTable';
2
2
  import CPU_COLORMAPS from '../../../../constants/cpuColormaps';
3
+ import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
4
+ import { resolveColormap as resolveSharedColormap } from '../../../../utilities/colormap';
3
5
  const COLOR_TRANSPARENT = [0, 0, 0, 0];
6
+ const CPU_FALLBACK_COLOR_COUNT = 256;
7
+ const CPU_FALLBACK_GRAYSCALE_NAMES = new Set([
8
+ 'gray',
9
+ 'grey',
10
+ 'grayscale',
11
+ 'greyscale',
12
+ ]);
13
+ function getCPUFallbackUnitValue(index) {
14
+ return index / CPU_FALLBACK_COLOR_COUNT;
15
+ }
16
+ function mapCPUFallbackColorIndex(index, colorCount) {
17
+ return Math.min(colorCount - 1, Math.floor(getCPUFallbackUnitValue(index) * colorCount));
18
+ }
4
19
  function linspace(a, b, n) {
5
20
  n = n === null ? 100 : n;
6
21
  const increment = (b - a) / (n - 1);
@@ -109,6 +124,23 @@ export function getColormapsList() {
109
124
  });
110
125
  return colormaps;
111
126
  }
127
+ export function resolveCPUFallbackColormap(colormap, fallbackColormap, options) {
128
+ const name = typeof colormap === 'string' ? colormap.trim() : colormap?.name?.trim();
129
+ if (!name) {
130
+ return fallbackColormap;
131
+ }
132
+ const normalizedName = name.toLowerCase();
133
+ if (CPU_FALLBACK_GRAYSCALE_NAMES.has(normalizedName)) {
134
+ return undefined;
135
+ }
136
+ const registeredColormap = resolveSharedColormap(name);
137
+ if (registeredColormap) {
138
+ return resolveCPUFallbackOpacityMappedColormap(getOrCreateCPUFallbackColormap(registeredColormap, name), typeof colormap === 'string' ? undefined : colormap, options?.voiRange);
139
+ }
140
+ const colormapId = findCPUFallbackColormapId(name);
141
+ const resolvedBaseColormap = colormapId ? getColormap(colormapId) : undefined;
142
+ return resolveCPUFallbackOpacityMappedColormap(resolvedBaseColormap, typeof colormap === 'string' ? undefined : colormap, options?.voiRange);
143
+ }
112
144
  export function getColormap(id, colormapData) {
113
145
  let colormap = CPU_COLORMAPS[id];
114
146
  if (!colormap) {
@@ -192,3 +224,128 @@ export function getColormap(id, colormapData) {
192
224
  };
193
225
  return cpuFallbackColormap;
194
226
  }
227
+ function getOrCreateCPUFallbackColormap(colormap, originalName) {
228
+ const id = `vtk:${(colormap.name || colormap.Name || originalName)
229
+ .trim()
230
+ .toLowerCase()}`;
231
+ return getColormap(id, createCPUFallbackColormapData(colormap, originalName));
232
+ }
233
+ function createCPUFallbackColormapData(colormap, originalName) {
234
+ const transferFunction = vtkColorTransferFunction.newInstance();
235
+ transferFunction.applyColorMap(colormap);
236
+ const [lower, upper] = transferFunction.getRange();
237
+ const colors = Array.from({ length: CPU_FALLBACK_COLOR_COUNT }, (_unused, index) => {
238
+ const t = getCPUFallbackUnitValue(index);
239
+ const x = lower + t * (upper - lower);
240
+ const rgb = [];
241
+ transferFunction.getColor(x, rgb);
242
+ return [
243
+ Math.round(rgb[0] * 255),
244
+ Math.round(rgb[1] * 255),
245
+ Math.round(rgb[2] * 255),
246
+ 255,
247
+ ];
248
+ });
249
+ return {
250
+ colors,
251
+ name: colormap.Name || originalName,
252
+ numColors: colors.length,
253
+ };
254
+ }
255
+ function findCPUFallbackColormapId(name) {
256
+ const normalizedName = name.trim().toLowerCase();
257
+ return Object.keys(CPU_COLORMAPS).find((id) => {
258
+ const colormap = CPU_COLORMAPS[id];
259
+ return (id.toLowerCase() === normalizedName ||
260
+ colormap.name?.trim().toLowerCase() === normalizedName);
261
+ });
262
+ }
263
+ function resolveCPUFallbackOpacityMappedColormap(baseColormap, colormap, voiRange) {
264
+ if (!baseColormap) {
265
+ return;
266
+ }
267
+ if (colormap?.opacity === undefined && colormap?.threshold === undefined) {
268
+ return baseColormap;
269
+ }
270
+ if (!voiRange || voiRange.upper <= voiRange.lower) {
271
+ return baseColormap;
272
+ }
273
+ const alphaMappedColors = createOpacityMappedColors(baseColormap, colormap, voiRange);
274
+ const id = [
275
+ baseColormap.getId(),
276
+ `lower:${roundColormapNumber(voiRange.lower)}`,
277
+ `upper:${roundColormapNumber(voiRange.upper)}`,
278
+ `opacity:${serializeColormapOpacity(colormap?.opacity)}`,
279
+ `threshold:${roundColormapNumber(colormap?.threshold)}`,
280
+ ].join(':');
281
+ return getColormap(id, {
282
+ colors: alphaMappedColors,
283
+ name: baseColormap.getColorSchemeName(),
284
+ numColors: alphaMappedColors.length,
285
+ });
286
+ }
287
+ function createOpacityMappedColors(baseColormap, colormap, voiRange) {
288
+ const numberOfColors = Math.max(baseColormap.getNumberOfColors(), 1);
289
+ return Array.from({ length: CPU_FALLBACK_COLOR_COUNT }, (_unused, index) => {
290
+ const sourceIndex = numberOfColors === 1
291
+ ? 0
292
+ : mapCPUFallbackColorIndex(index, numberOfColors);
293
+ const rgba = baseColormap.getColor(sourceIndex);
294
+ const scalarValue = voiRange.lower +
295
+ (voiRange.upper - voiRange.lower) * getCPUFallbackUnitValue(index);
296
+ const opacity = resolveOpacityAtValue(scalarValue, colormap?.opacity, colormap?.threshold);
297
+ return [
298
+ rgba[0],
299
+ rgba[1],
300
+ rgba[2],
301
+ Math.round((rgba[3] / 255) * opacity * 255),
302
+ ];
303
+ });
304
+ }
305
+ function resolveOpacityAtValue(scalarValue, opacity, threshold) {
306
+ if (threshold !== undefined && scalarValue < threshold) {
307
+ return 0;
308
+ }
309
+ if (opacity === undefined) {
310
+ return 1;
311
+ }
312
+ if (typeof opacity === 'number') {
313
+ return clampToUnit(opacity);
314
+ }
315
+ if (!opacity.length) {
316
+ return 1;
317
+ }
318
+ if (scalarValue <= opacity[0].value) {
319
+ return clampToUnit(opacity[0].opacity);
320
+ }
321
+ for (let i = 1; i < opacity.length; i++) {
322
+ const previous = opacity[i - 1];
323
+ const current = opacity[i];
324
+ if (scalarValue <= current.value) {
325
+ const range = current.value - previous.value;
326
+ const t = range > 0 ? (scalarValue - previous.value) / range : 0;
327
+ return clampToUnit(previous.opacity + (current.opacity - previous.opacity) * t);
328
+ }
329
+ }
330
+ return clampToUnit(opacity[opacity.length - 1].opacity);
331
+ }
332
+ function clampToUnit(value) {
333
+ return Math.max(0, Math.min(1, value));
334
+ }
335
+ function serializeColormapOpacity(opacity) {
336
+ if (opacity === undefined) {
337
+ return 'none';
338
+ }
339
+ if (typeof opacity === 'number') {
340
+ return String(roundColormapNumber(opacity));
341
+ }
342
+ return opacity
343
+ .map(({ opacity: alpha, value }) => `${roundColormapNumber(value)}-${roundColormapNumber(alpha)}`)
344
+ .join(',');
345
+ }
346
+ function roundColormapNumber(value) {
347
+ if (value === undefined) {
348
+ return 'none';
349
+ }
350
+ return String(Math.round(value * 1000) / 1000);
351
+ }
@@ -1,3 +1,2 @@
1
- import { getColormap, getColormapsList } from './colormap';
2
- import LookupTable from './lookupTable';
3
- export { getColormap, getColormapsList, LookupTable };
1
+ export * from './colormap';
2
+ export { default as LookupTable } from './lookupTable';
@@ -1,3 +1,2 @@
1
- import { getColormap, getColormapsList } from './colormap';
2
- import LookupTable from './lookupTable';
3
- export { getColormap, getColormapsList, LookupTable };
1
+ export * from './colormap';
2
+ export { default as LookupTable } from './lookupTable';
@@ -1,6 +1,14 @@
1
1
  import { Transform } from './transform';
2
+ function getViewportScale(scale) {
3
+ if (Array.isArray(scale)) {
4
+ return [scale[0] ?? 1, scale[1] ?? 1, true];
5
+ }
6
+ const scalarScale = scale ?? 1;
7
+ return [scalarScale, scalarScale, false];
8
+ }
2
9
  export default function (enabledElement, scale) {
3
10
  const transform = new Transform();
11
+ const aspectRatio = enabledElement.viewport.aspectRatio;
4
12
  if (!enabledElement.viewport.displayedArea) {
5
13
  return transform;
6
14
  }
@@ -9,13 +17,16 @@ export default function (enabledElement, scale) {
9
17
  if (angle !== 0) {
10
18
  transform.rotate((angle * Math.PI) / 180);
11
19
  }
12
- let widthScale = enabledElement.viewport.scale;
13
- let heightScale = enabledElement.viewport.scale;
20
+ const [viewportScaleX, viewportScaleY, hasExplicitAxisScale] = getViewportScale(enabledElement.viewport.scale);
21
+ let widthScale = viewportScaleX;
22
+ let heightScale = viewportScaleY;
14
23
  const width = enabledElement.viewport.displayedArea.brhc.x -
15
24
  (enabledElement.viewport.displayedArea.tlhc.x - 1);
16
25
  const height = enabledElement.viewport.displayedArea.brhc.y -
17
26
  (enabledElement.viewport.displayedArea.tlhc.y - 1);
18
- if (enabledElement.viewport.displayedArea.presentationSizeMode === 'NONE') {
27
+ if (hasExplicitAxisScale) {
28
+ }
29
+ else if (enabledElement.viewport.displayedArea.presentationSizeMode === 'NONE') {
19
30
  if (enabledElement.image.rowPixelSpacing <
20
31
  enabledElement.image.columnPixelSpacing) {
21
32
  widthScale *=
@@ -59,9 +70,13 @@ export default function (enabledElement, scale) {
59
70
  if (angle !== 0) {
60
71
  transform.rotate((angle * Math.PI) / 180);
61
72
  }
62
- if (scale !== undefined) {
73
+ if (scale !== undefined && aspectRatio === undefined) {
63
74
  transform.scale(scale, scale);
64
75
  }
76
+ if (aspectRatio !== undefined && scale === undefined) {
77
+ const [scaleX, scaleY] = aspectRatio;
78
+ transform.scale(scaleX, scaleY);
79
+ }
65
80
  if (enabledElement.viewport.hflip) {
66
81
  transform.scale(-1, 1);
67
82
  }
@@ -19,7 +19,12 @@ function getRenderCanvas(enabledElement, image, invalidated) {
19
19
  console.warn('enabledElement.options.colormap is deprecated. Use enabledElement.viewport.colormap instead');
20
20
  }
21
21
  if (colormap && typeof colormap === 'string') {
22
- colormap = colors.getColormap(colormap);
22
+ colormap = colors.resolveCPUFallbackColormap(colormap);
23
+ }
24
+ else if (colormap &&
25
+ typeof colormap === 'object' &&
26
+ typeof colormap.getId !== 'function') {
27
+ colormap = colors.resolveCPUFallbackColormap(colormap);
23
28
  }
24
29
  if (!colormap) {
25
30
  throw new Error('renderPseudoColorImage: colormap not found.');
@@ -87,8 +92,13 @@ export function renderPseudoColorImage(enabledElement, invalidated) {
87
92
  }
88
93
  const context = enabledElement.canvas.getContext('2d');
89
94
  context.setTransform(1, 0, 0, 1, 0, 0);
90
- context.fillStyle = 'black';
91
- context.fillRect(0, 0, enabledElement.canvas.width, enabledElement.canvas.height);
95
+ if (enabledElement.options?.transparentBackground) {
96
+ context.clearRect(0, 0, enabledElement.canvas.width, enabledElement.canvas.height);
97
+ }
98
+ else {
99
+ context.fillStyle = 'black';
100
+ context.fillRect(0, 0, enabledElement.canvas.width, enabledElement.canvas.height);
101
+ }
92
102
  context.imageSmoothingEnabled = !enabledElement.viewport.pixelReplication;
93
103
  setToPixelCoordinateSystem(enabledElement, context);
94
104
  const renderCanvas = getRenderCanvas(enabledElement, image, invalidated);
@@ -0,0 +1,14 @@
1
+ import vtkPlane from '@kitware/vtk.js/Common/DataModel/Plane';
2
+ import type { ImageActor } from '../../types/IActor';
3
+ interface CreateVolumeSliceActorOptions {
4
+ volumeId: string;
5
+ callback?: ({ volumeActor, volumeId, }: {
6
+ volumeActor: ImageActor;
7
+ volumeId: string;
8
+ }) => void;
9
+ }
10
+ declare function createVolumeSliceActor(props: CreateVolumeSliceActorOptions, element: HTMLDivElement, viewportId: string, suppressEvents?: boolean): Promise<{
11
+ actor: ImageActor;
12
+ slicePlane: vtkPlane;
13
+ }>;
14
+ export default createVolumeSliceActor;
@@ -0,0 +1,69 @@
1
+ import vtkPlane from '@kitware/vtk.js/Common/DataModel/Plane';
2
+ import vtkImageSlice from '@kitware/vtk.js/Rendering/Core/ImageSlice';
3
+ import { vtkSharedImageResliceMapper } from '../vtkClasses';
4
+ import { loadVolume } from '../../loaders/volumeLoader';
5
+ import triggerEvent from '../../utilities/triggerEvent';
6
+ import { Events } from '../../enums';
7
+ import setDefaultVolumeVOI from './setDefaultVolumeVOI';
8
+ async function createVolumeSliceActor(props, element, viewportId, suppressEvents = false) {
9
+ const { volumeId, callback } = props;
10
+ const imageVolume = await loadVolume(volumeId);
11
+ if (!imageVolume) {
12
+ throw new Error(`imageVolume with id: ${volumeId} does not exist`);
13
+ }
14
+ const { imageData, vtkOpenGLTexture } = imageVolume;
15
+ const loadStatus = imageVolume.loadStatus;
16
+ const slicePlane = vtkPlane.newInstance();
17
+ const mapper = vtkSharedImageResliceMapper.newInstance();
18
+ if (!loadStatus || loadStatus.loaded) {
19
+ vtkOpenGLTexture.modified();
20
+ }
21
+ mapper.setInputData(imageData);
22
+ mapper.setSlicePlane(slicePlane);
23
+ mapper.setSlabThickness(0);
24
+ mapper.setScalarTexture?.(vtkOpenGLTexture);
25
+ mapper.modified();
26
+ const actor = vtkImageSlice.newInstance();
27
+ actor.setMapper(mapper);
28
+ const imageDataMetadata = imageData.get('numberOfComponents');
29
+ const numberOfComponents = imageDataMetadata?.numberOfComponents ?? 1;
30
+ if (numberOfComponents > 1) {
31
+ actor.getProperty().setIndependentComponents(false);
32
+ }
33
+ const imageProperty = actor.getProperty();
34
+ imageProperty.set({ viewportId }, true);
35
+ await setDefaultVolumeVOI(actor, imageVolume);
36
+ const defaultWindow = imageProperty.getColorWindow?.();
37
+ const defaultLevel = imageProperty.getColorLevel?.();
38
+ if (defaultWindow === 255 && defaultLevel === 127.5) {
39
+ const scalarRange = imageVolume.voxelManager?.getRange?.();
40
+ if (scalarRange?.length === 2) {
41
+ imageProperty.setColorWindow(scalarRange[1] - scalarRange[0]);
42
+ imageProperty.setColorLevel((scalarRange[1] + scalarRange[0]) / 2);
43
+ }
44
+ }
45
+ if (callback) {
46
+ callback({ volumeActor: actor, volumeId });
47
+ }
48
+ if (!suppressEvents) {
49
+ triggerVOIModified(element, viewportId, actor, volumeId);
50
+ }
51
+ return { actor, slicePlane };
52
+ }
53
+ function triggerVOIModified(element, viewportId, actor, volumeId) {
54
+ const transferFunction = actor.getProperty().getRGBTransferFunction(0);
55
+ if (!transferFunction) {
56
+ return;
57
+ }
58
+ const voiRange = transferFunction.getRange();
59
+ const voiModifiedEventDetail = {
60
+ viewportId,
61
+ range: {
62
+ lower: voiRange[0],
63
+ upper: voiRange[1],
64
+ },
65
+ volumeId,
66
+ };
67
+ triggerEvent(element, Events.VOI_MODIFIED, voiModifiedEventDetail);
68
+ }
69
+ export default createVolumeSliceActor;
@@ -6,12 +6,13 @@ export interface CameraPositionConfig {
6
6
  orientation?: Enums.OrientationAxis;
7
7
  useViewportNormal?: boolean;
8
8
  }
9
+ export type CameraVectorViewport = Pick<Types.IBaseVolumeViewport, 'getActors' | 'getCamera' | 'getCurrentImageId' | 'getImageIds' | 'type'>;
9
10
  export declare function calculateCameraPosition(rowCosineVec: vec3, colCosineVec: vec3, scanAxisNormal: vec3, orientation: Enums.OrientationAxis): {
10
11
  viewPlaneNormal: [number, number, number];
11
12
  viewUp: [number, number, number];
12
13
  viewRight: [number, number, number];
13
14
  };
14
- export declare function getCameraVectors(viewport: Types.IBaseVolumeViewport, config?: CameraPositionConfig): {
15
+ export declare function getCameraVectors(viewport: CameraVectorViewport, config?: CameraPositionConfig): {
15
16
  viewPlaneNormal: [number, number, number];
16
17
  viewUp: [number, number, number];
17
18
  viewRight: [number, number, number];
@@ -103,7 +103,7 @@ export function getCameraVectors(viewport, config) {
103
103
  if (!imageId) {
104
104
  return;
105
105
  }
106
- const { imageOrientationPatient } = metaData.get('imagePlaneModule', imageId);
106
+ const { imageOrientationPatient } = metaData.get(Enums.MetadataModules.IMAGE_PLANE, imageId);
107
107
  const rowCosineVec = vec3.fromValues(imageOrientationPatient[0], imageOrientationPatient[1], imageOrientationPatient[2]);
108
108
  const colCosineVec = vec3.fromValues(imageOrientationPatient[3], imageOrientationPatient[4], imageOrientationPatient[5]);
109
109
  const scanAxisNormal = vec3.cross(vec3.create(), rowCosineVec, colCosineVec);
@@ -0,0 +1,2 @@
1
+ import { mat4 } from 'gl-matrix';
2
+ export declare function getProjectionScaleMatrix(aspectRatio: Array<number>): mat4;
@@ -0,0 +1,10 @@
1
+ import { mat4 } from 'gl-matrix';
2
+ export function getProjectionScaleMatrix(aspectRatio) {
3
+ const [scaleX, scaleY] = aspectRatio;
4
+ const projectionScaleMatrix = mat4.fromScaling(mat4.create(), [
5
+ scaleX,
6
+ scaleY,
7
+ 1.0,
8
+ ]);
9
+ return projectionScaleMatrix;
10
+ }
@@ -5,4 +5,5 @@ import setVolumesForViewports from './setVolumesForViewports';
5
5
  import addVolumesToViewports from './addVolumesToViewports';
6
6
  import volumeNewImageEventDispatcher from './volumeNewImageEventDispatcher';
7
7
  import addImageSlicesToViewports from './addImageSlicesToViewports';
8
- export { createVolumeActor, createVolumeMapper, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, volumeNewImageEventDispatcher, };
8
+ import { getProjectionScaleMatrix } from './getProjectionScaleMatrix';
9
+ export { createVolumeActor, createVolumeMapper, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, volumeNewImageEventDispatcher, getProjectionScaleMatrix, };
@@ -5,4 +5,5 @@ import setVolumesForViewports from './setVolumesForViewports';
5
5
  import addVolumesToViewports from './addVolumesToViewports';
6
6
  import volumeNewImageEventDispatcher from './volumeNewImageEventDispatcher';
7
7
  import addImageSlicesToViewports from './addImageSlicesToViewports';
8
- export { createVolumeActor, createVolumeMapper, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, volumeNewImageEventDispatcher, };
8
+ import { getProjectionScaleMatrix } from './getProjectionScaleMatrix';
9
+ export { createVolumeActor, createVolumeMapper, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, volumeNewImageEventDispatcher, getProjectionScaleMatrix, };