@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
@@ -5,6 +5,8 @@ export default class CanvasActor {
5
5
  this.canvasProperties = new CanvasProperties(this);
6
6
  this.visibility = false;
7
7
  this.mapper = new CanvasMapper(this);
8
+ this.rasterDirty = true;
9
+ this.hasCachedRaster = false;
8
10
  this.className = 'CanvasActor';
9
11
  this.derivedImage = derivedImage;
10
12
  this.viewport = viewport;
@@ -14,53 +16,54 @@ export default class CanvasActor {
14
16
  let { canvas } = this;
15
17
  if (!canvas || canvas.width !== width || canvas.height !== height) {
16
18
  this.canvas = canvas = new window.OffscreenCanvas(width, height);
19
+ this.cachedImageData = undefined;
20
+ this.rasterDirty = true;
21
+ }
22
+ if (!this.rasterDirty) {
23
+ if (this.hasCachedRaster) {
24
+ context.drawImage(canvas, 0, 0);
25
+ }
26
+ return;
17
27
  }
18
28
  const localContext = canvas.getContext('2d');
19
- const imageData = localContext.createImageData(width, height);
29
+ let imageData = this.cachedImageData;
30
+ if (!imageData) {
31
+ imageData = localContext.createImageData(width, height);
32
+ this.cachedImageData = imageData;
33
+ }
20
34
  const { data: imageArray } = imageData;
21
35
  imageArray.fill(0);
22
36
  const { map } = voxelManager;
23
- let dirtyX = Infinity;
24
- let dirtyY = Infinity;
25
- let dirtyX2 = -Infinity;
26
- let dirtyY2 = -Infinity;
37
+ let hasVisiblePixels = false;
27
38
  for (let y = 0; y < height; y++) {
28
39
  const row = map.getRun(y, 0);
29
40
  if (!row) {
30
41
  continue;
31
42
  }
32
- dirtyY = Math.min(dirtyY, y);
33
- dirtyY2 = Math.max(dirtyY2, y);
34
43
  const baseOffset = (y * width) << 2;
35
- let indicesToDelete;
36
44
  for (const run of row) {
37
45
  const { start, end, value: segmentIndex } = run;
38
46
  if (segmentIndex === 0) {
39
- indicesToDelete ||= [];
40
- indicesToDelete.push(row.indexOf(run));
41
47
  continue;
42
48
  }
43
- dirtyX = Math.min(dirtyX, start);
44
- dirtyX2 = Math.max(dirtyX2, end);
45
- const rgb = this.canvasProperties
46
- .getColor(segmentIndex)
47
- .map((v) => v * 255);
49
+ hasVisiblePixels = true;
48
50
  let startOffset = baseOffset + (start << 2);
49
51
  for (let i = start; i < end; i++) {
50
- imageArray[startOffset++] = rgb[0];
51
- imageArray[startOffset++] = rgb[1];
52
- imageArray[startOffset++] = rgb[2];
53
- imageArray[startOffset++] = rgb[3];
52
+ this.canvasProperties.getColorBytes(segmentIndex, imageArray, startOffset);
53
+ startOffset += 4;
54
54
  }
55
55
  }
56
56
  }
57
- if (dirtyX > width) {
57
+ if (!hasVisiblePixels) {
58
+ localContext.clearRect(0, 0, width, height);
59
+ this.hasCachedRaster = false;
60
+ this.rasterDirty = false;
58
61
  return;
59
62
  }
60
- const dirtyWidth = dirtyX2 - dirtyX;
61
- const dirtyHeight = dirtyY2 - dirtyY;
62
- localContext.putImageData(imageData, 0, 0, dirtyX - 1, dirtyY - 1, dirtyWidth + 2, dirtyHeight + 2);
63
- context.drawImage(canvas, dirtyX, dirtyY, dirtyWidth, dirtyHeight, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
63
+ localContext.putImageData(imageData, 0, 0);
64
+ this.hasCachedRaster = true;
65
+ this.rasterDirty = false;
66
+ context.drawImage(canvas, 0, 0);
64
67
  }
65
68
  setMapper(mapper) {
66
69
  this.mapper = mapper;
@@ -76,49 +79,53 @@ export default class CanvasActor {
76
79
  return;
77
80
  }
78
81
  const { voxelManager } = image;
79
- if (voxelManager) {
80
- if (voxelManager.map.getRun) {
81
- this.renderRLE(viewport, context, voxelManager);
82
- return;
83
- }
82
+ if (voxelManager?.map?.getRun) {
83
+ this.renderRLE(viewport, context, voxelManager);
84
+ return;
84
85
  }
85
86
  let { canvas } = this;
86
87
  if (!canvas || canvas.width !== width || canvas.height !== height) {
87
88
  this.canvas = canvas = new window.OffscreenCanvas(width, height);
89
+ this.cachedImageData = undefined;
90
+ this.rasterDirty = true;
91
+ }
92
+ if (!this.rasterDirty) {
93
+ if (this.hasCachedRaster) {
94
+ context.drawImage(canvas, 0, 0);
95
+ }
96
+ return;
88
97
  }
89
98
  const localContext = canvas.getContext('2d');
90
- const imageData = localContext.createImageData(width, height);
99
+ let imageData = this.cachedImageData;
100
+ if (!imageData) {
101
+ imageData = localContext.createImageData(width, height);
102
+ this.cachedImageData = imageData;
103
+ }
91
104
  const { data: imageArray } = imageData;
105
+ imageArray.fill(0);
92
106
  let offset = 0;
93
107
  let destOffset = 0;
94
- let dirtyX = Infinity;
95
- let dirtyY = Infinity;
96
- let dirtyX2 = -Infinity;
97
- let dirtyY2 = -Infinity;
108
+ let hasVisiblePixels = false;
98
109
  for (let y = 0; y < height; y++) {
99
110
  for (let x = 0; x < width; x++) {
100
111
  const segmentIndex = data[offset++];
101
112
  if (segmentIndex) {
102
- dirtyX = Math.min(x, dirtyX);
103
- dirtyY = Math.min(y, dirtyY);
104
- dirtyX2 = Math.max(x, dirtyX2);
105
- dirtyY2 = Math.max(y, dirtyY2);
106
- const rgb = this.canvasProperties.getColor(segmentIndex);
107
- imageArray[destOffset] = rgb[0] * 255;
108
- imageArray[destOffset + 1] = rgb[1] * 255;
109
- imageArray[destOffset + 2] = rgb[2] * 255;
110
- imageArray[destOffset + 3] = 127;
113
+ hasVisiblePixels = true;
114
+ this.canvasProperties.getColorBytes(segmentIndex, imageArray, destOffset);
111
115
  }
112
116
  destOffset += 4;
113
117
  }
114
118
  }
115
- if (dirtyX > width) {
119
+ if (!hasVisiblePixels) {
120
+ localContext.clearRect(0, 0, width, height);
121
+ this.hasCachedRaster = false;
122
+ this.rasterDirty = false;
116
123
  return;
117
124
  }
118
- const dirtyWidth = dirtyX2 - dirtyX + 1;
119
- const dirtyHeight = dirtyY2 - dirtyY + 1;
120
- localContext.putImageData(imageData, 0, 0, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
121
- context.drawImage(canvas, dirtyX, dirtyY, dirtyWidth, dirtyHeight, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
125
+ localContext.putImageData(imageData, 0, 0);
126
+ this.hasCachedRaster = true;
127
+ this.rasterDirty = false;
128
+ context.drawImage(canvas, 0, 0);
122
129
  }
123
130
  getClassName() {
124
131
  return this.className;
@@ -135,6 +142,9 @@ export default class CanvasActor {
135
142
  isA(actorType) {
136
143
  return actorType === this.className;
137
144
  }
145
+ modified() {
146
+ this.rasterDirty = true;
147
+ }
138
148
  getImage() {
139
149
  if (this.image) {
140
150
  return this.image;
@@ -152,6 +162,7 @@ export default class CanvasActor {
152
162
  setDerivedImage: (image) => {
153
163
  this.derivedImage = image;
154
164
  this.image = null;
165
+ this.modified();
155
166
  },
156
167
  modified: () => null,
157
168
  });
@@ -1,17 +1,16 @@
1
1
  import BaseRenderingEngine from './BaseRenderingEngine';
2
- import type IStackViewport from '../types/IStackViewport';
3
- import type IVolumeViewport from '../types/IVolumeViewport';
4
2
  import type * as EventTypes from '../types/EventTypes';
5
3
  import type { InternalViewportInput, NormalizedViewportInput, IViewport } from '../types/IViewport';
6
4
  import type vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
7
5
  import type { VtkOffscreenMultiRenderWindow } from '../types';
8
6
  declare class ContextPoolRenderingEngine extends BaseRenderingEngine {
9
- private contextPool;
7
+ private contextPool?;
10
8
  constructor(id?: string);
9
+ private ensureContextPool;
11
10
  protected enableVTKjsDrivenViewport(viewportInputEntry: NormalizedViewportInput): void;
12
11
  protected addVtkjsDrivenViewport(viewportInputEntry: InternalViewportInput): void;
13
12
  protected setVtkjsDrivenViewports(viewportInputEntries: NormalizedViewportInput[]): void;
14
- protected _resizeVTKViewports(vtkDrivenViewports: (IStackViewport | IVolumeViewport)[], keepCamera?: boolean, immediate?: boolean): void;
13
+ protected _resizeVTKViewports(vtkDrivenViewports: IViewport[], keepCamera?: boolean, immediate?: boolean): void;
15
14
  protected _renderFlaggedViewports: () => void;
16
15
  private renderViewportUsingCustomOrVtkPipeline;
17
16
  private _renderViewportWithContext;
@@ -5,11 +5,9 @@ import Events from '../enums/Events';
5
5
  import eventTarget from '../eventTarget';
6
6
  import triggerEvent from '../utilities/triggerEvent';
7
7
  import ViewportType from '../enums/ViewportType';
8
- import VolumeViewport from './VolumeViewport';
9
- import StackViewport from './StackViewport';
10
- import VolumeViewport3D from './VolumeViewport3D';
11
- import viewportTypeUsesCustomRenderingPipeline from './helpers/viewportTypeUsesCustomRenderingPipeline';
8
+ import viewportTypeUsesCustomRenderingPipeline, { viewportUsesCustomRenderingPipeline, } from './helpers/viewportTypeUsesCustomRenderingPipeline';
12
9
  import getOrCreateCanvas, { updateCanvasSizeAndAspectRatio, } from './helpers/getOrCreateCanvas';
10
+ import { getViewportClassForInput } from './helpers/viewportTypeToViewportClass';
13
11
  class ContextPoolRenderingEngine extends BaseRenderingEngine {
14
12
  constructor(id) {
15
13
  super(id);
@@ -36,11 +34,17 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
36
34
  }
37
35
  });
38
36
  };
39
- const { rendering } = getConfiguration();
40
- const { webGlContextCount } = rendering;
41
37
  if (!this.useCPURendering) {
38
+ this.ensureContextPool();
39
+ }
40
+ }
41
+ ensureContextPool() {
42
+ if (!this.contextPool) {
43
+ const { rendering } = getConfiguration();
44
+ const { webGlContextCount } = rendering;
42
45
  this.contextPool = new WebGLContextPool(webGlContextCount);
43
46
  }
47
+ return this.contextPool;
44
48
  }
45
49
  enableVTKjsDrivenViewport(viewportInputEntry) {
46
50
  const viewports = this._getViewportsAsArray();
@@ -53,18 +57,19 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
53
57
  this.addVtkjsDrivenViewport(internalViewportEntry);
54
58
  }
55
59
  addVtkjsDrivenViewport(viewportInputEntry) {
60
+ const contextPool = this.ensureContextPool();
56
61
  const { element, canvas, viewportId, type, defaultOptions } = viewportInputEntry;
57
62
  element.tabIndex = -1;
58
63
  let contextIndex = 0;
59
64
  if (type === ViewportType.STACK) {
60
- const contexts = this.contextPool.getAllContexts();
65
+ const contexts = contextPool.getAllContexts();
61
66
  contextIndex = this._viewports.size % contexts.length;
62
67
  }
63
- this.contextPool.assignViewportToContext(viewportId, contextIndex);
64
- this.contextPool.updateViewportSize(viewportId, canvas.width, canvas.height);
65
- const contextData = this.contextPool.getContextByIndex(contextIndex);
68
+ contextPool.assignViewportToContext(viewportId, contextIndex);
69
+ contextPool.updateViewportSize(viewportId, canvas.width, canvas.height);
70
+ const contextData = contextPool.getContextByIndex(contextIndex);
66
71
  const { context: offscreenMultiRenderWindow, container } = contextData;
67
- const maxSize = this.contextPool.getMaxSizeForContext(contextIndex);
72
+ const maxSize = contextPool.getMaxSizeForContext(contextIndex);
68
73
  container.width = maxSize.width;
69
74
  container.height = maxSize.height;
70
75
  offscreenMultiRenderWindow.resize();
@@ -87,20 +92,13 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
87
92
  sHeight: canvas.height,
88
93
  defaultOptions: defaultOptions || {},
89
94
  };
90
- let viewport;
91
- if (type === ViewportType.STACK) {
92
- viewport = new StackViewport(viewportInput);
93
- }
94
- else if (type === ViewportType.ORTHOGRAPHIC ||
95
- type === ViewportType.PERSPECTIVE) {
96
- viewport = new VolumeViewport(viewportInput);
97
- }
98
- else if (type === ViewportType.VOLUME_3D) {
99
- viewport = new VolumeViewport3D(viewportInput);
100
- }
101
- else {
95
+ const ViewportClass = getViewportClassForInput(viewportInputEntry);
96
+ if (!ViewportClass) {
102
97
  throw new Error(`Viewport Type ${type} is not supported`);
103
98
  }
99
+ const viewport = new ViewportClass(viewportInput);
100
+ viewport.requestedType =
101
+ viewportInputEntry.requestedType ?? type;
104
102
  this._viewports.set(viewportId, viewport);
105
103
  const eventDetail = {
106
104
  element,
@@ -147,9 +145,6 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
147
145
  if (viewportsNeedingResize.length === 0) {
148
146
  return;
149
147
  }
150
- if (this._animationFrameSet) {
151
- return;
152
- }
153
148
  for (const vp of viewportsNeedingResize) {
154
149
  const canvas = getOrCreateCanvas(vp.element);
155
150
  const displayedWidth = Math.round(canvas.clientWidth * devicePixelRatio);
@@ -159,14 +154,24 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
159
154
  vp.sWidth = targetWidth;
160
155
  vp.sHeight = targetHeight;
161
156
  }
157
+ if (this._animationFrameSet) {
158
+ return;
159
+ }
162
160
  if (vtkDrivenViewports.length) {
163
161
  this._resize(vtkDrivenViewports);
164
162
  }
165
163
  vtkDrivenViewports.forEach((vp) => {
164
+ vp.resize?.();
166
165
  const prevCamera = vp.getCamera();
167
- const rotation = vp.getRotation();
166
+ const rotation = vp.getRotation?.() ?? 0;
168
167
  const { flipHorizontal } = prevCamera;
169
- vp.resetCameraForResize();
168
+ const resizeResetViewport = vp;
169
+ if (resizeResetViewport.resetViewStateForResize) {
170
+ resizeResetViewport.resetViewStateForResize();
171
+ }
172
+ else {
173
+ resizeResetViewport.resetCameraForResize?.();
174
+ }
170
175
  const displayArea = vp.getDisplayArea();
171
176
  if (keepCamera) {
172
177
  if (displayArea) {
@@ -187,11 +192,11 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
187
192
  }
188
193
  }
189
194
  renderViewportUsingCustomOrVtkPipeline(viewport) {
190
- if (viewportTypeUsesCustomRenderingPipeline(viewport.type)) {
195
+ if (viewportUsesCustomRenderingPipeline(viewport)) {
191
196
  const eventDetail = viewport.customRenderViewportToCanvas();
192
197
  return eventDetail;
193
198
  }
194
- if (this.useCPURendering) {
199
+ if (!this.contextPool) {
195
200
  throw new Error('GPU not available, and using a viewport with no custom render pipeline.');
196
201
  }
197
202
  const assignedContextIndex = this.contextPool.getContextIndexForViewport(viewport.id);
@@ -210,10 +215,10 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
210
215
  console.warn('Viewport is too small', viewport.sWidth, viewport.sHeight);
211
216
  return;
212
217
  }
213
- if (viewportTypeUsesCustomRenderingPipeline(viewport.type)) {
218
+ if (viewportUsesCustomRenderingPipeline(viewport)) {
214
219
  return viewport.customRenderViewportToCanvas();
215
220
  }
216
- if (this.useCPURendering) {
221
+ if (!this.contextPool) {
217
222
  throw new Error('GPU not available, and using a viewport with no custom render pipeline.');
218
223
  }
219
224
  if (!offscreenMultiRenderWindow.getRenderer(viewport.id)) {
@@ -241,7 +246,8 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
241
246
  renderer.setViewport(0, 0, xEnd, yEnd);
242
247
  const allRenderers = offscreenMultiRenderWindow.getRenderers();
243
248
  allRenderers.forEach(({ renderer: r, id }) => {
244
- r.setDraw(id === viewport.id);
249
+ const baseId = id.split('::')[0];
250
+ r.setDraw(baseId === viewport.id);
245
251
  });
246
252
  const widgetRenderers = this.getWidgetRenderers();
247
253
  widgetRenderers.forEach((viewportId, renderer) => {
@@ -349,7 +355,13 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
349
355
  }
350
356
  getRenderer(viewportId) {
351
357
  const contextIndex = this.contextPool?.getContextIndexForViewport(viewportId);
358
+ if (contextIndex === undefined || !this.contextPool) {
359
+ return;
360
+ }
352
361
  const contextData = this.contextPool.getContextByIndex(contextIndex);
362
+ if (!contextData) {
363
+ return;
364
+ }
353
365
  const { context: offscreenMultiRenderWindow } = contextData;
354
366
  return offscreenMultiRenderWindow.getRenderer(viewportId);
355
367
  }
@@ -360,7 +372,7 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
360
372
  }
361
373
  super.disableElement(viewportId);
362
374
  if (!viewportTypeUsesCustomRenderingPipeline(viewport.type) &&
363
- !this.useCPURendering) {
375
+ this.contextPool) {
364
376
  const contextIndex = this.contextPool.getContextIndexForViewport(viewportId);
365
377
  if (contextIndex !== undefined) {
366
378
  const contextData = this.contextPool.getContextByIndex(contextIndex);
@@ -373,17 +385,23 @@ class ContextPoolRenderingEngine extends BaseRenderingEngine {
373
385
  }
374
386
  }
375
387
  destroy() {
388
+ super.destroy();
376
389
  if (this.contextPool) {
377
390
  this.contextPool.destroy();
378
391
  }
379
- super.destroy();
380
392
  }
381
393
  getOffscreenMultiRenderWindow(viewportId) {
382
- if (this.useCPURendering) {
383
- throw new Error('Offscreen multi render window is not available when using CPU rendering.');
394
+ if (!this.contextPool) {
395
+ throw new Error('Offscreen multi render window is not available.');
384
396
  }
385
397
  const contextIndex = this.contextPool.getContextIndexForViewport(viewportId);
398
+ if (contextIndex === undefined) {
399
+ throw new Error(`Offscreen multi render window is not available for viewport ${viewportId}.`);
400
+ }
386
401
  const contextData = this.contextPool.getContextByIndex(contextIndex);
402
+ if (!contextData) {
403
+ throw new Error(`Offscreen multi render window is not available for viewport ${viewportId}.`);
404
+ }
387
405
  return contextData.context;
388
406
  }
389
407
  }
@@ -78,7 +78,7 @@ declare class ECGViewport extends Viewport {
78
78
  indexToWorld: (point: Point3) => Point3;
79
79
  };
80
80
  hasPixelSpacing: boolean;
81
- calibration: import("../types").IImageCalibration;
81
+ calibration: import("packages/metadata/dist/esm").IImageCalibration;
82
82
  preScale: {
83
83
  scaled: boolean;
84
84
  };