@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
@@ -17,26 +17,25 @@ declare abstract class BaseRenderingEngine {
17
17
  constructor(id?: string);
18
18
  enableElement(viewportInputEntry: PublicViewportInput): void;
19
19
  disableElement(viewportId: string): void;
20
+ disableViewport(viewportId: string): void;
20
21
  setViewports(publicViewportInputEntries: PublicViewportInput[]): void;
21
22
  resize(immediate?: boolean, keepCamera?: boolean): void;
22
- getViewport(viewportId: string): IViewport;
23
+ getViewport<T = IViewport>(viewportId: string): T;
23
24
  getViewports(): IViewport[];
24
- getStackViewport(viewportId: string): IStackViewport;
25
- getStackViewports(): IStackViewport[];
26
- getVolumeViewports(): IVolumeViewport[];
27
25
  render(): void;
28
26
  renderFrameOfReference: (FrameOfReferenceUID: string) => void;
29
27
  renderViewports(viewportIds: string[]): void;
30
28
  renderViewport(viewportId: string): void;
31
29
  destroy(): void;
32
30
  fillCanvasWithBackgroundColor(canvas: HTMLCanvasElement, backgroundColor: [number, number, number]): void;
31
+ private static readonly NEXT_TYPE_REMAP;
33
32
  private _normalizeViewportInputEntry;
34
33
  private _normalizeViewportInputEntries;
35
34
  private _resizeUsingCustomResizeHandler;
36
35
  private _removeViewport;
37
36
  private addCustomViewport;
38
37
  getRenderer(viewportId: any): import("@kitware/vtk.js/Rendering/Core/Renderer").vtkRenderer;
39
- getOffscreenMultiRenderWindow(viewportId?: string): VtkOffscreenMultiRenderWindow;
38
+ getOffscreenMultiRenderWindow(_viewportId?: string): VtkOffscreenMultiRenderWindow;
40
39
  private setCustomViewports;
41
40
  protected _getViewportsAsArray(): IViewport[];
42
41
  private _setViewportsToBeRenderedNextFrame;
@@ -4,14 +4,14 @@ import eventTarget from '../eventTarget';
4
4
  import uuidv4 from '../utilities/uuidv4';
5
5
  import triggerEvent from '../utilities/triggerEvent';
6
6
  import ViewportType from '../enums/ViewportType';
7
- import BaseVolumeViewport from './BaseVolumeViewport';
8
- import StackViewport from './StackViewport';
9
- import viewportTypeUsesCustomRenderingPipeline from './helpers/viewportTypeUsesCustomRenderingPipeline';
7
+ import viewportTypeUsesCustomRenderingPipeline, { viewportUsesCustomRenderingPipeline, } from './helpers/viewportTypeUsesCustomRenderingPipeline';
10
8
  import getOrCreateCanvas from './helpers/getOrCreateCanvas';
11
- import { getShouldUseCPURendering, isCornerstoneInitialized, getConfiguration, } from '../init';
12
- import viewportTypeToViewportClass from './helpers/viewportTypeToViewportClass';
9
+ import { getShouldUseCPURendering, getUseGenericViewport, isCornerstoneInitialized, getConfiguration, } from '../init';
10
+ import { getViewportClassForInput } from './helpers/viewportTypeToViewportClass';
11
+ import ViewportStatus from '../enums/ViewportStatus';
13
12
  import { OrientationAxis } from '../enums';
14
13
  import { StatsOverlay } from './helpers/stats';
14
+ import { convertColorArrayToRgbString } from '../utilities/convertColorArrayToRgbString';
15
15
  export const VIEWPORT_MIN_SIZE = 2;
16
16
  class BaseRenderingEngine {
17
17
  constructor(id) {
@@ -53,7 +53,7 @@ class BaseRenderingEngine {
53
53
  }
54
54
  const { type } = viewportInput;
55
55
  const viewportUsesCustomRenderingPipeline = viewportTypeUsesCustomRenderingPipeline(type);
56
- if (!this.useCPURendering && !viewportUsesCustomRenderingPipeline) {
56
+ if (!viewportUsesCustomRenderingPipeline) {
57
57
  this.enableVTKjsDrivenViewport(viewportInput);
58
58
  }
59
59
  else {
@@ -72,10 +72,8 @@ class BaseRenderingEngine {
72
72
  }
73
73
  this._resetViewport(viewport);
74
74
  if (!viewportTypeUsesCustomRenderingPipeline(viewport.type) &&
75
- !this.useCPURendering) {
76
- if (this.offscreenMultiRenderWindow) {
77
- this.offscreenMultiRenderWindow.removeRenderer(viewportId);
78
- }
75
+ this.offscreenMultiRenderWindow) {
76
+ this.offscreenMultiRenderWindow.removeRenderer(viewportId);
79
77
  }
80
78
  this._removeViewport(viewportId);
81
79
  viewport.isDisabled = true;
@@ -85,6 +83,9 @@ class BaseRenderingEngine {
85
83
  this._clearAnimationFrame();
86
84
  }
87
85
  }
86
+ disableViewport(viewportId) {
87
+ this.disableElement(viewportId);
88
+ }
88
89
  setViewports(publicViewportInputEntries) {
89
90
  const viewportInputEntries = this._normalizeViewportInputEntries(publicViewportInputEntries);
90
91
  this._throwIfDestroyed();
@@ -92,8 +93,7 @@ class BaseRenderingEngine {
92
93
  const vtkDrivenViewportInputEntries = [];
93
94
  const customRenderingViewportInputEntries = [];
94
95
  viewportInputEntries.forEach((vpie) => {
95
- if (!this.useCPURendering &&
96
- !viewportTypeUsesCustomRenderingPipeline(vpie.type)) {
96
+ if (!viewportTypeUsesCustomRenderingPipeline(vpie.type)) {
97
97
  vtkDrivenViewportInputEntries.push(vpie);
98
98
  }
99
99
  else {
@@ -114,7 +114,7 @@ class BaseRenderingEngine {
114
114
  const vtkDrivenViewports = [];
115
115
  const customRenderingViewports = [];
116
116
  viewports.forEach((vpie) => {
117
- if (!viewportTypeUsesCustomRenderingPipeline(vpie.type)) {
117
+ if (!viewportUsesCustomRenderingPipeline(vpie)) {
118
118
  vtkDrivenViewports.push(vpie);
119
119
  }
120
120
  else {
@@ -135,30 +135,6 @@ class BaseRenderingEngine {
135
135
  this._throwIfDestroyed();
136
136
  return this._getViewportsAsArray();
137
137
  }
138
- getStackViewport(viewportId) {
139
- this._throwIfDestroyed();
140
- const viewport = this.getViewport(viewportId);
141
- if (!viewport) {
142
- throw new Error(`Viewport with Id ${viewportId} does not exist`);
143
- }
144
- if (!(viewport instanceof StackViewport)) {
145
- throw new Error(`Viewport with Id ${viewportId} is not a StackViewport.`);
146
- }
147
- return viewport;
148
- }
149
- getStackViewports() {
150
- this._throwIfDestroyed();
151
- const viewports = this.getViewports();
152
- return viewports.filter((vp) => vp instanceof StackViewport);
153
- }
154
- getVolumeViewports() {
155
- this._throwIfDestroyed();
156
- const viewports = this.getViewports();
157
- const isVolumeViewport = (viewport) => {
158
- return viewport instanceof BaseVolumeViewport;
159
- };
160
- return viewports.filter(isVolumeViewport);
161
- }
162
138
  render() {
163
139
  const viewports = this.getViewports();
164
140
  const viewportIds = viewports.map((vp) => vp.id);
@@ -175,37 +151,40 @@ class BaseRenderingEngine {
175
151
  return;
176
152
  }
177
153
  StatsOverlay.cleanup();
178
- if (!this.useCPURendering) {
179
- const viewports = this._getViewportsAsArray();
154
+ const viewports = this._getViewportsAsArray();
155
+ this._reset();
156
+ if (this.offscreenMultiRenderWindow) {
180
157
  viewports.forEach((vp) => {
181
- if (this.offscreenMultiRenderWindow) {
158
+ if (this.offscreenMultiRenderWindow &&
159
+ !viewportUsesCustomRenderingPipeline(vp) &&
160
+ this.offscreenMultiRenderWindow.getRenderer(vp.id)) {
182
161
  this.offscreenMultiRenderWindow.removeRenderer(vp.id);
183
162
  }
184
163
  });
185
- if (this.offscreenMultiRenderWindow) {
186
- this.offscreenMultiRenderWindow.delete();
187
- }
164
+ this.offscreenMultiRenderWindow.delete();
188
165
  delete this.offscreenMultiRenderWindow;
189
166
  }
190
- this._reset();
191
167
  renderingEngineCache.delete(this.id);
192
168
  this.hasBeenDestroyed = true;
193
169
  }
194
170
  fillCanvasWithBackgroundColor(canvas, backgroundColor) {
195
171
  const ctx = canvas.getContext('2d');
196
- let fillStyle;
197
- if (backgroundColor) {
198
- const rgb = backgroundColor.map((f) => Math.floor(255 * f));
199
- fillStyle = `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`;
200
- }
201
- else {
202
- fillStyle = 'black';
203
- }
172
+ const fillStyle = backgroundColor
173
+ ? convertColorArrayToRgbString(backgroundColor)
174
+ : 'black';
204
175
  ctx.fillStyle = fillStyle;
205
176
  ctx.fillRect(0, 0, canvas.width, canvas.height);
206
177
  }
207
178
  _normalizeViewportInputEntry(viewportInputEntry) {
208
- const { type, defaultOptions } = viewportInputEntry;
179
+ const requestedType = viewportInputEntry.type;
180
+ let { type } = viewportInputEntry;
181
+ const { defaultOptions } = viewportInputEntry;
182
+ if (getUseGenericViewport()) {
183
+ const remapped = BaseRenderingEngine.NEXT_TYPE_REMAP[type];
184
+ if (remapped) {
185
+ type = remapped;
186
+ }
187
+ }
209
188
  let options = defaultOptions;
210
189
  if (!options || Object.keys(options).length === 0) {
211
190
  options = {
@@ -213,7 +192,7 @@ class BaseRenderingEngine {
213
192
  orientation: null,
214
193
  displayArea: null,
215
194
  };
216
- if (type === ViewportType.ORTHOGRAPHIC) {
195
+ if (requestedType === ViewportType.ORTHOGRAPHIC) {
217
196
  options = {
218
197
  ...options,
219
198
  orientation: OrientationAxis.AXIAL,
@@ -222,6 +201,10 @@ class BaseRenderingEngine {
222
201
  }
223
202
  return {
224
203
  ...viewportInputEntry,
204
+ requestedType: requestedType !== type || getUseGenericViewport()
205
+ ? requestedType
206
+ : undefined,
207
+ type,
225
208
  defaultOptions: options,
226
209
  };
227
210
  }
@@ -234,16 +217,7 @@ class BaseRenderingEngine {
234
217
  }
235
218
  _resizeUsingCustomResizeHandler(customRenderingViewports, keepCamera = true, immediate = true) {
236
219
  customRenderingViewports.forEach((vp) => {
237
- if (typeof vp.resize === 'function') {
238
- vp.resize();
239
- }
240
- });
241
- customRenderingViewports.forEach((vp) => {
242
- const prevCamera = vp.getCamera();
243
- vp.resetCamera();
244
- if (keepCamera) {
245
- vp.setCamera(prevCamera);
246
- }
220
+ vp.resizeForRenderingEngine({ keepCamera });
247
221
  });
248
222
  if (immediate) {
249
223
  this.render();
@@ -278,8 +252,9 @@ class BaseRenderingEngine {
278
252
  sHeight: clientHeight,
279
253
  defaultOptions: defaultOptions || {},
280
254
  };
281
- const ViewportType = viewportTypeToViewportClass[type];
282
- const viewport = new ViewportType(viewportInput);
255
+ const ViewportClass = getViewportClassForInput(viewportInputEntry);
256
+ const viewport = new ViewportClass(viewportInput);
257
+ viewport.requestedType = type;
283
258
  this._viewports.set(viewportId, viewport);
284
259
  const eventDetail = {
285
260
  element,
@@ -291,9 +266,9 @@ class BaseRenderingEngine {
291
266
  getRenderer(viewportId) {
292
267
  return this.offscreenMultiRenderWindow.getRenderer(viewportId);
293
268
  }
294
- getOffscreenMultiRenderWindow(viewportId) {
295
- if (this.useCPURendering) {
296
- throw new Error('Offscreen multi render window is not available when using CPU rendering.');
269
+ getOffscreenMultiRenderWindow(_viewportId) {
270
+ if (!this.offscreenMultiRenderWindow) {
271
+ throw new Error('Offscreen multi render window is not available.');
297
272
  }
298
273
  return this.offscreenMultiRenderWindow;
299
274
  }
@@ -308,6 +283,10 @@ class BaseRenderingEngine {
308
283
  _setViewportsToBeRenderedNextFrame(viewportIds) {
309
284
  viewportIds.forEach((viewportId) => {
310
285
  this._needsRender.add(viewportId);
286
+ const viewport = this._viewports.get(viewportId);
287
+ if (viewport) {
288
+ viewport.viewportStatus = ViewportStatus.NEEDS_RENDER;
289
+ }
311
290
  });
312
291
  this._render();
313
292
  }
@@ -327,6 +306,7 @@ class BaseRenderingEngine {
327
306
  };
328
307
  viewport.removeWidgets();
329
308
  triggerEvent(eventTarget, Events.ELEMENT_DISABLED, eventDetail);
309
+ viewport.destroy?.();
330
310
  element.removeAttribute('data-viewport-uid');
331
311
  element.removeAttribute('data-rendering-engine-uid');
332
312
  const context = canvas.getContext('2d');
@@ -352,4 +332,12 @@ class BaseRenderingEngine {
352
332
  }
353
333
  }
354
334
  }
335
+ BaseRenderingEngine.NEXT_TYPE_REMAP = {
336
+ [ViewportType.STACK]: ViewportType.PLANAR_NEXT,
337
+ [ViewportType.ORTHOGRAPHIC]: ViewportType.PLANAR_NEXT,
338
+ [ViewportType.VIDEO]: ViewportType.VIDEO_NEXT,
339
+ [ViewportType.WHOLE_SLIDE]: ViewportType.WHOLE_SLIDE_NEXT,
340
+ [ViewportType.ECG]: ViewportType.ECG_NEXT,
341
+ [ViewportType.VOLUME_3D]: ViewportType.VOLUME_3D_NEXT,
342
+ };
355
343
  export default BaseRenderingEngine;
@@ -1,7 +1,7 @@
1
1
  import type { mat4 } from 'gl-matrix';
2
2
  import type { BlendModes, InterpolationType } from '../enums';
3
3
  import { OrientationAxis } from '../enums';
4
- import type { FlipDirection, IImageData, IVolumeInput, OrientationVectors, Point2, Point3, VolumeViewportProperties, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewReference, ICamera } from '../types';
4
+ import type { ActorEntry, FlipDirection, IImageData, IVolumeInput, OrientationVectors, Point2, Point3, VolumeViewportProperties, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewReference, ICamera } from '../types';
5
5
  import type { VoiModifiedEventDetail } from '../types/EventTypes';
6
6
  import type { PlaneRestriction, ViewportInput } from '../types/IViewport';
7
7
  import type { TransferFunctionNodes } from '../types/ITransferFunctionNode';
@@ -20,6 +20,7 @@ declare abstract class BaseVolumeViewport extends Viewport {
20
20
  private volumeIds;
21
21
  constructor(props: ViewportInput);
22
22
  static get useCustomRenderingPipeline(): boolean;
23
+ isOrientationChangeable(): boolean;
23
24
  getSliceViewInfo(): {
24
25
  width: number;
25
26
  height: number;
@@ -46,7 +47,7 @@ declare abstract class BaseVolumeViewport extends Viewport {
46
47
  isReferenceViewable(viewRef: ViewReference, options?: ReferenceCompatibleOptions): boolean;
47
48
  scroll(delta?: number): void;
48
49
  abstract isInAcquisitionPlane(): boolean;
49
- setBestOrentation(inPlaneVector1: any, inPlaneVector2: any): void;
50
+ setBestOrentation(inPlaneVector1: Point3, inPlaneVector2: Point3): void;
50
51
  setViewPlane(planeRestriction: PlaneRestriction): void;
51
52
  setViewReference(viewRef: ViewReference): void;
52
53
  private setThreshold;
@@ -55,11 +56,12 @@ declare abstract class BaseVolumeViewport extends Viewport {
55
56
  private setSmoothing;
56
57
  protected shouldUseCustomRenderPass(): boolean;
57
58
  getRenderPasses: () => any[];
59
+ protected _restoreVolumeRenderingDefaults(volumeActor: ActorEntry, volumeId: string): void;
58
60
  resetToDefaultProperties(volumeId: string): void;
59
61
  private setPreset;
60
62
  setSampleDistanceMultiplier(multiplier: number): void;
61
63
  getDefaultProperties: (volumeId?: string) => VolumeViewportProperties;
62
- getProperties: (volumeId?: string) => VolumeViewportProperties;
64
+ getProperties: (volumeId?: string) => VolumeViewportProperties | undefined | null;
63
65
  private getColormap;
64
66
  setVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>;
65
67
  addVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>;
@@ -88,7 +90,7 @@ declare abstract class BaseVolumeViewport extends Viewport {
88
90
  getRendererContextPool(): vtkRenderer;
89
91
  getRendererTiled(): vtkRenderer;
90
92
  hasImageURI: (imageURI: string) => boolean;
91
- protected _getViewUp(viewPlaneNormal: any): Point3;
93
+ protected _getViewUp(viewPlaneNormal: Point3): Point3;
92
94
  protected _getOrientationVectors(orientation: OrientationAxis | OrientationVectors): OrientationVectors;
93
95
  protected _getAcquisitionPlaneOrientation(): OrientationVectors;
94
96
  getSlabThickness(): number;
@@ -1,5 +1,4 @@
1
1
  import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
2
- import vtkColorMaps from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps';
3
2
  import vtkPiecewiseFunction from '@kitware/vtk.js/Common/DataModel/PiecewiseFunction';
4
3
  import { vec2, vec3 } from 'gl-matrix';
5
4
  import cache from '../cache/cache';
@@ -14,13 +13,14 @@ import invertRgbTransferFunction from '../utilities/invertRgbTransferFunction';
14
13
  import createSigmoidRGBTransferFunction from '../utilities/createSigmoidRGBTransferFunction';
15
14
  import transformWorldToIndex from '../utilities/transformWorldToIndex';
16
15
  import { findMatchingColormap, updateOpacity as colormapUpdateOpacity, updateThreshold as colormapUpdateThreshold, getThresholdValue, getMaxOpacity, } from '../utilities/colormap';
17
- import { getTransferFunctionNodes } from '../utilities/transferFunctionUtils';
16
+ import getAcquisitionPlaneOrientation from '../utilities/getAcquisitionPlaneOrientation';
17
+ import { getTransferFunctionNodes, setTransferFunctionNodes, } from '../utilities/transferFunctionUtils';
18
18
  import createVolumeActor from './helpers/createVolumeActor';
19
19
  import volumeNewImageEventDispatcher, { resetVolumeNewImageState, } from './helpers/volumeNewImageEventDispatcher';
20
20
  import Viewport from './Viewport';
21
21
  import vtkSlabCamera from './vtkClasses/vtkSlabCamera';
22
22
  import getVolumeViewportScrollInfo from '../utilities/getVolumeViewportScrollInfo';
23
- import { actorIsA } from '../utilities/actorCheck';
23
+ import { actorIsA, isImageActor } from '../utilities/actorCheck';
24
24
  import snapFocalPointToSlice from '../utilities/snapFocalPointToSlice';
25
25
  import getVoiFromSigmoidRGBTransferFunction from '../utilities/getVoiFromSigmoidRGBTransferFunction';
26
26
  import isEqual, { isEqualAbs, isEqualNegative } from '../utilities/isEqual';
@@ -31,6 +31,7 @@ import { getCameraVectors } from './helpers/getCameraVectors';
31
31
  import { isContextPoolRenderingEngine } from './helpers/isContextPoolRenderingEngine';
32
32
  import mprCameraValues from '../constants/mprCameraValues';
33
33
  import { isInvalidNumber } from './helpers/isInvalidNumber';
34
+ import getVolumeViewReferenceId from '../utilities/getVolumeViewReferenceId';
34
35
  import { createSharpeningRenderPass, createSmoothingRenderPass, } from './renderPasses';
35
36
  class BaseVolumeViewport extends Viewport {
36
37
  constructor(props) {
@@ -367,6 +368,9 @@ class BaseVolumeViewport extends Viewport {
367
368
  static get useCustomRenderingPipeline() {
368
369
  return false;
369
370
  }
371
+ isOrientationChangeable() {
372
+ return true;
373
+ }
370
374
  getSliceViewInfo() {
371
375
  throw new Error('Method not implemented.');
372
376
  }
@@ -391,7 +395,8 @@ class BaseVolumeViewport extends Viewport {
391
395
  initializeVolumeNewImageEventDispatcher() {
392
396
  const volumeNewImageHandlerBound = volumeNewImageHandler.bind(this);
393
397
  const volumeNewImageCleanUpBound = volumeNewImageCleanUp.bind(this);
394
- function volumeNewImageHandler(cameraEvent) {
398
+ function volumeNewImageHandler(event) {
399
+ const cameraEvent = event;
395
400
  const { viewportId } = cameraEvent.detail;
396
401
  if (viewportId !== this.id || this.isDisabled) {
397
402
  return;
@@ -430,11 +435,7 @@ class BaseVolumeViewport extends Viewport {
430
435
  }
431
436
  const { volumeActor } = applicableVolumeActorInfo;
432
437
  const cfun = vtkColorTransferFunction.newInstance();
433
- let colormapObj = colormapUtils.getColormap(colormap.name);
434
- const { name } = colormap;
435
- if (!colormapObj) {
436
- colormapObj = vtkColorMaps.getPresetByName(name);
437
- }
438
+ const colormapObj = colormapUtils.resolveColormap(colormap.name);
438
439
  if (!colormapObj) {
439
440
  throw new Error(`Colormap ${colormap} not found`);
440
441
  }
@@ -834,6 +835,21 @@ class BaseVolumeViewport extends Viewport {
834
835
  shouldUseCustomRenderPass() {
835
836
  return !this.useCPURendering;
836
837
  }
838
+ _restoreVolumeRenderingDefaults(volumeActor, volumeId) {
839
+ if (!isImageActor(volumeActor)) {
840
+ return;
841
+ }
842
+ const properties = this.getDefaultProperties(volumeId);
843
+ if (properties?.preset || properties?.colormap) {
844
+ this.setProperties(properties, volumeId, true);
845
+ }
846
+ else {
847
+ const transferFunction = volumeActor.actor
848
+ .getProperty()
849
+ .getRGBTransferFunction(0);
850
+ setTransferFunctionNodes(transferFunction, this.initialTransferFunctionNodes);
851
+ }
852
+ }
837
853
  resetToDefaultProperties(volumeId) {
838
854
  const properties = this.globalDefaultProperties;
839
855
  if (properties.colormap?.name) {
@@ -869,24 +885,21 @@ class BaseVolumeViewport extends Viewport {
869
885
  return;
870
886
  }
871
887
  const { volumeActor } = applicableVolumeActorInfo;
872
- let preset = presetNameOrObj;
873
- if (typeof preset === 'string') {
874
- preset = VIEWPORT_PRESETS.find((preset) => {
875
- return preset.name === presetNameOrObj;
876
- });
877
- }
878
- if (!preset) {
888
+ const viewportPreset = typeof presetNameOrObj === 'string'
889
+ ? VIEWPORT_PRESETS.find((preset) => preset.name === presetNameOrObj)
890
+ : presetNameOrObj;
891
+ if (!viewportPreset) {
879
892
  return;
880
893
  }
881
- applyPreset(volumeActor, preset);
882
- this.viewportProperties.preset = preset;
894
+ applyPreset(volumeActor, viewportPreset);
895
+ this.viewportProperties.preset = viewportPreset.name;
883
896
  this.render();
884
897
  if (!suppressEvents) {
885
898
  triggerEvent(this.element, Events.PRESET_MODIFIED, {
886
899
  viewportId: this.id,
887
900
  volumeId: applicableVolumeActorInfo.volumeId,
888
901
  actor: volumeActor,
889
- presetName: preset.name,
902
+ presetName: viewportPreset.name,
890
903
  });
891
904
  }
892
905
  }
@@ -1159,13 +1172,7 @@ class BaseVolumeViewport extends Viewport {
1159
1172
  if (!imageVolume) {
1160
1173
  throw new Error(`imageVolume with id: ${volumeId} does not exist in cache`);
1161
1174
  }
1162
- const { direction } = imageVolume;
1163
- const viewPlaneNormal = direction.slice(6, 9).map((x) => -x);
1164
- const viewUp = direction.slice(3, 6).map((x) => -x);
1165
- return {
1166
- viewPlaneNormal,
1167
- viewUp,
1168
- };
1175
+ return getAcquisitionPlaneOrientation(imageVolume);
1169
1176
  }
1170
1177
  getSlabThickness() {
1171
1178
  const actors = this.getActors();
@@ -1215,10 +1222,12 @@ class BaseVolumeViewport extends Viewport {
1215
1222
  }
1216
1223
  const currentIndex = this.getSliceIndex();
1217
1224
  sliceIndex ??= currentIndex;
1218
- const { viewPlaneNormal, focalPoint } = this.getCamera();
1219
- const querySeparator = volumeId.includes('?') ? '&' : '?';
1220
- const formattedNormal = viewPlaneNormal.map((v) => v.toFixed(3)).join(',');
1221
- return `volumeId:${volumeId}${querySeparator}sliceIndex=${sliceIndex}&viewPlaneNormal=${formattedNormal}`;
1225
+ const { viewPlaneNormal } = this.getCamera();
1226
+ return getVolumeViewReferenceId({
1227
+ sliceIndex,
1228
+ viewPlaneNormal,
1229
+ volumeId,
1230
+ });
1222
1231
  }
1223
1232
  _addVolumeId(volumeId) {
1224
1233
  this.volumeIds.add(volumeId);
@@ -3,4 +3,5 @@ export default class CanvasMapper {
3
3
  private actor;
4
4
  constructor(actor: CanvasActor);
5
5
  getInputData(): any;
6
+ modified(): void;
6
7
  }
@@ -5,4 +5,7 @@ export default class CanvasMapper {
5
5
  getInputData() {
6
6
  return this.actor.getImage();
7
7
  }
8
+ modified() {
9
+ this.actor.modified();
10
+ }
8
11
  }
@@ -4,12 +4,20 @@ export default class CanvasProperties {
4
4
  private opacity;
5
5
  private outlineOpacity;
6
6
  private transferFunction;
7
+ private scalarOpacityFunction;
8
+ private colorCache;
7
9
  constructor(actor: CanvasActor);
8
10
  setRGBTransferFunction(index: any, cfun: any): void;
9
- setScalarOpacity(opacity: number): void;
11
+ getRGBTransferFunction(index?: number): any;
12
+ setScalarOpacity(indexOrOpacity: any, scalarOpacityFunction?: any): void;
13
+ getScalarOpacity(): any;
14
+ getOpacity(): number;
10
15
  setInterpolationTypeToNearest(): void;
11
16
  setUseLabelOutline(): void;
12
17
  setLabelOutlineOpacity(opacity: any): void;
13
18
  setLabelOutlineThickness(): void;
14
- getColor(index: number): any[];
19
+ modified(): void;
20
+ getColorBytes(index: number, destination?: Uint8ClampedArray | Uint8Array | number[], offset?: number): [number, number, number, number];
21
+ getColor(index: number): number[];
22
+ private invalidateColorCache;
15
23
  }
@@ -3,12 +3,37 @@ export default class CanvasProperties {
3
3
  this.opacity = 0.4;
4
4
  this.outlineOpacity = 0.4;
5
5
  this.transferFunction = [];
6
+ this.colorCache = new Map();
6
7
  this.actor = actor;
7
8
  }
8
9
  setRGBTransferFunction(index, cfun) {
9
10
  this.transferFunction[index] = cfun;
11
+ this.invalidateColorCache();
10
12
  }
11
- setScalarOpacity(opacity) {
13
+ getRGBTransferFunction(index = 0) {
14
+ return this.transferFunction[index];
15
+ }
16
+ setScalarOpacity(indexOrOpacity, scalarOpacityFunction) {
17
+ if (scalarOpacityFunction?.getValue) {
18
+ this.scalarOpacityFunction = scalarOpacityFunction;
19
+ this.invalidateColorCache();
20
+ return;
21
+ }
22
+ if (indexOrOpacity?.getValue) {
23
+ this.scalarOpacityFunction = indexOrOpacity;
24
+ this.invalidateColorCache();
25
+ return;
26
+ }
27
+ if (typeof indexOrOpacity === 'number') {
28
+ this.opacity = indexOrOpacity;
29
+ this.invalidateColorCache();
30
+ }
31
+ }
32
+ getScalarOpacity() {
33
+ return this.scalarOpacityFunction;
34
+ }
35
+ getOpacity() {
36
+ return this.opacity;
12
37
  }
13
38
  setInterpolationTypeToNearest() {
14
39
  }
@@ -19,11 +44,44 @@ export default class CanvasProperties {
19
44
  }
20
45
  setLabelOutlineThickness() {
21
46
  }
47
+ modified() {
48
+ this.invalidateColorCache();
49
+ }
50
+ getColorBytes(index, destination, offset = 0) {
51
+ let color = this.colorCache.get(index);
52
+ if (!color) {
53
+ const cfun = this.transferFunction[0];
54
+ if (!cfun) {
55
+ color = [0, 0, 0, 0];
56
+ }
57
+ else {
58
+ const rawOpacity = this.scalarOpacityFunction?.getValue
59
+ ? this.scalarOpacityFunction.getValue(index)
60
+ : this.opacity;
61
+ const opacity = Math.min(Math.max(rawOpacity, 0), 1);
62
+ color = [
63
+ Math.round(Math.min(Math.max(cfun.getRedValue(index), 0), 1) * 255),
64
+ Math.round(Math.min(Math.max(cfun.getGreenValue(index), 0), 1) * 255),
65
+ Math.round(Math.min(Math.max(cfun.getBlueValue(index), 0), 1) * 255),
66
+ Math.round(opacity * 255),
67
+ ];
68
+ }
69
+ this.colorCache.set(index, color);
70
+ }
71
+ if (destination) {
72
+ destination[offset] = color[0];
73
+ destination[offset + 1] = color[1];
74
+ destination[offset + 2] = color[2];
75
+ destination[offset + 3] = color[3];
76
+ }
77
+ return color;
78
+ }
22
79
  getColor(index) {
23
- const cfun = this.transferFunction[0];
24
- const r = cfun.getRedValue(index);
25
- const g = cfun.getGreenValue(index);
26
- const b = cfun.getBlueValue(index);
27
- return [r, g, b, this.opacity];
80
+ const [r, g, b, opacity] = this.getColorBytes(index);
81
+ return [r / 255, g / 255, b / 255, opacity / 255];
82
+ }
83
+ invalidateColorCache() {
84
+ this.colorCache.clear();
85
+ this.actor.modified();
28
86
  }
29
87
  }
@@ -8,6 +8,9 @@ export default class CanvasActor {
8
8
  private visibility;
9
9
  private mapper;
10
10
  private viewport;
11
+ private rasterDirty;
12
+ private hasCachedRaster;
13
+ private cachedImageData?;
11
14
  protected className: string;
12
15
  protected canvas: any;
13
16
  constructor(viewport: IViewport, derivedImage: any);
@@ -19,5 +22,6 @@ export default class CanvasActor {
19
22
  setVisibility(visibility: boolean): void;
20
23
  getMapper(): CanvasMapper;
21
24
  isA(actorType: any): boolean;
25
+ modified(): void;
22
26
  getImage(): any;
23
27
  }