volview 4.0.0 → 4.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 (404) hide show
  1. package/dist/css/app.925b979f.css +1 -0
  2. package/dist/css/chunk-vendors.43a6a19a.css +5 -0
  3. package/{public → dist}/favicon.ico +0 -0
  4. package/{public → dist}/global.css +0 -0
  5. package/{src/assets/KitwareHeadAndNeck.jpg → dist/img/KitwareHeadAndNeck.11db5ffb.jpg} +0 -0
  6. package/dist/index.html +1 -0
  7. package/dist/itk/image-io/BMPImageIOReadImage.js +1 -0
  8. package/dist/itk/image-io/BMPImageIOReadImage.umd.js +1 -0
  9. package/dist/itk/image-io/BMPImageIOReadImage.wasm +0 -0
  10. package/dist/itk/image-io/BMPImageIOWriteImage.js +1 -0
  11. package/dist/itk/image-io/BMPImageIOWriteImage.umd.js +1 -0
  12. package/dist/itk/image-io/BMPImageIOWriteImage.wasm +0 -0
  13. package/dist/itk/image-io/GDCMImageIOReadImage.js +1 -0
  14. package/dist/itk/image-io/GDCMImageIOReadImage.umd.js +1 -0
  15. package/dist/itk/image-io/GDCMImageIOReadImage.wasm +0 -0
  16. package/dist/itk/image-io/GDCMImageIOWriteImage.js +1 -0
  17. package/dist/itk/image-io/GDCMImageIOWriteImage.umd.js +1 -0
  18. package/dist/itk/image-io/GDCMImageIOWriteImage.wasm +0 -0
  19. package/dist/itk/image-io/JPEGImageIOReadImage.js +1 -0
  20. package/dist/itk/image-io/JPEGImageIOReadImage.umd.js +1 -0
  21. package/dist/itk/image-io/JPEGImageIOReadImage.wasm +0 -0
  22. package/dist/itk/image-io/JPEGImageIOWriteImage.js +1 -0
  23. package/dist/itk/image-io/JPEGImageIOWriteImage.umd.js +1 -0
  24. package/dist/itk/image-io/JPEGImageIOWriteImage.wasm +0 -0
  25. package/dist/itk/image-io/MetaImageIOReadImage.js +1 -0
  26. package/dist/itk/image-io/MetaImageIOReadImage.umd.js +1 -0
  27. package/dist/itk/image-io/MetaImageIOReadImage.wasm +0 -0
  28. package/dist/itk/image-io/MetaImageIOWriteImage.js +1 -0
  29. package/dist/itk/image-io/MetaImageIOWriteImage.umd.js +1 -0
  30. package/dist/itk/image-io/MetaImageIOWriteImage.wasm +0 -0
  31. package/dist/itk/image-io/NiftiImageIOReadImage.js +1 -0
  32. package/dist/itk/image-io/NiftiImageIOReadImage.umd.js +1 -0
  33. package/dist/itk/image-io/NiftiImageIOReadImage.wasm +0 -0
  34. package/dist/itk/image-io/NiftiImageIOWriteImage.js +1 -0
  35. package/dist/itk/image-io/NiftiImageIOWriteImage.umd.js +1 -0
  36. package/dist/itk/image-io/NiftiImageIOWriteImage.wasm +0 -0
  37. package/dist/itk/image-io/NrrdImageIOReadImage.js +1 -0
  38. package/dist/itk/image-io/NrrdImageIOReadImage.umd.js +1 -0
  39. package/dist/itk/image-io/NrrdImageIOReadImage.wasm +0 -0
  40. package/dist/itk/image-io/NrrdImageIOWriteImage.js +1 -0
  41. package/dist/itk/image-io/NrrdImageIOWriteImage.umd.js +1 -0
  42. package/dist/itk/image-io/NrrdImageIOWriteImage.wasm +0 -0
  43. package/dist/itk/image-io/PNGImageIOReadImage.js +1 -0
  44. package/dist/itk/image-io/PNGImageIOReadImage.umd.js +1 -0
  45. package/dist/itk/image-io/PNGImageIOReadImage.wasm +0 -0
  46. package/dist/itk/image-io/PNGImageIOWriteImage.js +1 -0
  47. package/dist/itk/image-io/PNGImageIOWriteImage.umd.js +1 -0
  48. package/dist/itk/image-io/PNGImageIOWriteImage.wasm +0 -0
  49. package/dist/itk/image-io/ReadDICOMTags.js +1 -0
  50. package/dist/itk/image-io/ReadDICOMTags.umd.js +1 -0
  51. package/dist/itk/image-io/ReadDICOMTags.wasm +0 -0
  52. package/dist/itk/image-io/ReadImageDICOMFileSeries.js +1 -0
  53. package/dist/itk/image-io/ReadImageDICOMFileSeries.umd.js +1 -0
  54. package/dist/itk/image-io/ReadImageDICOMFileSeries.wasm +0 -0
  55. package/dist/itk/image-io/VTKImageIOReadImage.js +1 -0
  56. package/dist/itk/image-io/VTKImageIOReadImage.umd.js +1 -0
  57. package/dist/itk/image-io/VTKImageIOReadImage.wasm +0 -0
  58. package/dist/itk/image-io/VTKImageIOWriteImage.js +1 -0
  59. package/dist/itk/image-io/VTKImageIOWriteImage.umd.js +1 -0
  60. package/dist/itk/image-io/VTKImageIOWriteImage.wasm +0 -0
  61. package/dist/itk/pipelines/dicom.js +1 -0
  62. package/dist/itk/pipelines/dicom.umd.js +1 -0
  63. package/{src/io/itk-dicom/web-build → dist/itk/pipelines}/dicom.umd.wasm +0 -0
  64. package/{src/io/itk-dicom/web-build → dist/itk/pipelines}/dicom.wasm +0 -0
  65. package/dist/itk/web-workers/IOInput.d.ts +6 -0
  66. package/dist/itk/web-workers/IOInput.js +1 -0
  67. package/dist/itk/web-workers/ITKConfig.d.ts +8 -0
  68. package/dist/itk/web-workers/ITKConfig.js +1 -0
  69. package/dist/itk/web-workers/RunPipelineInput.d.ts +10 -0
  70. package/dist/itk/web-workers/RunPipelineInput.js +1 -0
  71. package/dist/itk/web-workers/WebWorkerInput.d.ts +6 -0
  72. package/dist/itk/web-workers/WebWorkerInput.js +1 -0
  73. package/dist/itk/web-workers/bundles/pipeline.worker.js +1 -0
  74. package/dist/itk/web-workers/loadImageIOPipelineModule.d.ts +4 -0
  75. package/dist/itk/web-workers/loadImageIOPipelineModule.js +1 -0
  76. package/dist/itk/web-workers/loadMeshIOPipelineModule.d.ts +4 -0
  77. package/dist/itk/web-workers/loadMeshIOPipelineModule.js +1 -0
  78. package/dist/itk/web-workers/loadPipelineModule.d.ts +3 -0
  79. package/dist/itk/web-workers/loadPipelineModule.js +1 -0
  80. package/dist/itk/web-workers/min-bundles/pipeline.worker.js +3 -0
  81. package/dist/itk/web-workers/pipeline.worker.d.ts +1 -0
  82. package/dist/itk/web-workers/pipeline.worker.js +1 -0
  83. package/dist/itk/web-workers/runPipeline.d.ts +5 -0
  84. package/dist/itk/web-workers/runPipeline.js +1 -0
  85. package/dist/js/23.be4d694e.js +21 -0
  86. package/dist/js/23.be4d694e.js.map +1 -0
  87. package/dist/js/385.51ca48a2.js +2 -0
  88. package/dist/js/385.51ca48a2.js.map +1 -0
  89. package/dist/js/422.c64a6aa7.js +2 -0
  90. package/dist/js/422.c64a6aa7.js.map +1 -0
  91. package/dist/js/979.c4823352.js +2 -0
  92. package/dist/js/979.c4823352.js.map +1 -0
  93. package/dist/js/app.81e49d9a.js +2 -0
  94. package/dist/js/app.81e49d9a.js.map +1 -0
  95. package/dist/js/chunk-vendors.0ab48f8d.js +33 -0
  96. package/dist/js/chunk-vendors.0ab48f8d.js.map +1 -0
  97. package/{public → dist}/pvm-sample.png +0 -0
  98. package/package.json +3 -2
  99. package/.browserslistrc +0 -4
  100. package/.editorconfig +0 -6
  101. package/.env +0 -6
  102. package/.eslintrc.js +0 -109
  103. package/.gitattributes +0 -1
  104. package/.github/workflows/checks.yml +0 -16
  105. package/.github/workflows/publish.yml +0 -52
  106. package/.prettierignore +0 -5
  107. package/CONTRIBUTING.md +0 -29
  108. package/babel.config.js +0 -3
  109. package/documentation/config.js +0 -15
  110. package/documentation/content/KWVolViewLogo.png +0 -0
  111. package/documentation/content/KWVolViewLogo.svg +0 -35
  112. package/documentation/content/VolViewLogo.png +0 -0
  113. package/documentation/content/VolViewLogo.svg +0 -22
  114. package/documentation/content/doc/index.md +0 -64
  115. package/documentation/content/doc/loading_data.md +0 -30
  116. package/documentation/content/doc/mouse_controls.md +0 -34
  117. package/documentation/content/doc/quick_start_guide.md +0 -75
  118. package/documentation/content/doc/rendering.md +0 -27
  119. package/documentation/content/doc/state_files.md +0 -18
  120. package/documentation/content/doc/toolbar.md +0 -20
  121. package/documentation/content/doc/welcome_screen.md +0 -23
  122. package/documentation/content/gallery/01-volview-welcome-notes.jpg +0 -0
  123. package/documentation/content/gallery/01-volview-welcome.jpg +0 -0
  124. package/documentation/content/gallery/02-volview-about.jpg +0 -0
  125. package/documentation/content/gallery/02-volview-notifications.jpg +0 -0
  126. package/documentation/content/gallery/02-volview-settings.jpg +0 -0
  127. package/documentation/content/gallery/03-volview-sample-datasets.jpg +0 -0
  128. package/documentation/content/gallery/04-volview-active-data.jpg +0 -0
  129. package/documentation/content/gallery/05-volview-select-data-to-delete.jpg +0 -0
  130. package/documentation/content/gallery/06-volview-corner-annotation.jpg +0 -0
  131. package/documentation/content/gallery/07-volview-layout-notes.jpg +0 -0
  132. package/documentation/content/gallery/07-volview-layout.jpg +0 -0
  133. package/documentation/content/gallery/09-volview-layout-3DPrimary.jpg +0 -0
  134. package/documentation/content/gallery/10-volview-wl-pan-zoom-notes.jpg +0 -0
  135. package/documentation/content/gallery/10-volview-wl-pan-zoom.jpg +0 -0
  136. package/documentation/content/gallery/11-volview-paint-notes.jpg +0 -0
  137. package/documentation/content/gallery/11-volview-paint.jpg +0 -0
  138. package/documentation/content/gallery/12-volview-paint-options.jpg +0 -0
  139. package/documentation/content/gallery/13-volview-crop-notes.jpg +0 -0
  140. package/documentation/content/gallery/13-volview-crop.jpg +0 -0
  141. package/documentation/content/gallery/14-volview-ruler.jpg +0 -0
  142. package/documentation/content/gallery/15-volview-crosshairs.jpg +0 -0
  143. package/documentation/content/gallery/16-volview-rendering.jpg +0 -0
  144. package/documentation/content/gallery/17-volview-colormap-notes.jpg +0 -0
  145. package/documentation/content/gallery/17-volview-colormap.jpg +0 -0
  146. package/documentation/content/gallery/17-volview-opacity-notes.jpg +0 -0
  147. package/documentation/content/gallery/17-volview-opacity.jpg +0 -0
  148. package/documentation/content/gallery/17-volview-opacity2.jpg +0 -0
  149. package/documentation/content/gallery/18-volview-presets.jpg +0 -0
  150. package/documentation/content/gallery/19-volview-color.jpg +0 -0
  151. package/documentation/content/gallery/19-volview-color2.jpg +0 -0
  152. package/documentation/content/gallery/20-volview-lightfollowcamera0.jpg +0 -0
  153. package/documentation/content/gallery/20-volview-lightfollowcamera1.jpg +0 -0
  154. package/documentation/content/gallery/20-volview-lightfollowcamera2.jpg +0 -0
  155. package/documentation/content/gallery/20-volview-lightfollowcamera3.jpg +0 -0
  156. package/documentation/content/gallery/21-volview-hybrid-final.jpg +0 -0
  157. package/documentation/content/gallery/21-volview-hybrid0.0.jpg +0 -0
  158. package/documentation/content/gallery/21-volview-hybrid0.5.jpg +0 -0
  159. package/documentation/content/gallery/21-volview-hybrid1.0.jpg +0 -0
  160. package/documentation/content/gallery/LocalAmbientOcclusion.jpg +0 -0
  161. package/documentation/content/gallery/Notes.pptx +0 -0
  162. package/documentation/content/gallery/VolView-Overview.jpg +0 -0
  163. package/documentation/content/gallery/index.md +0 -53
  164. package/documentation/content/icon/favicon-16x16.png +0 -0
  165. package/documentation/content/icon/favicon-196x196.png +0 -0
  166. package/documentation/content/icon/favicon-32x32.png +0 -0
  167. package/documentation/content/icon/favicon-96x96.png +0 -0
  168. package/documentation/content/index.pug +0 -43
  169. package/documentation/content/logo.png +0 -0
  170. package/documentation/content/logo.svg +0 -20
  171. package/documentation/data/menu.yml +0 -3
  172. package/documentation/themes/navy/layout/partial/footer.swig +0 -22
  173. package/documentation/tpl/__en__ +0 -31
  174. package/documentation/tpl/__sidebar__ +0 -11
  175. package/patches/jsdom-global+3.0.2.patch +0 -12
  176. package/patches/vue-toastification+1.7.14.patch +0 -41
  177. package/patches/vuetify+2.6.10.patch +0 -13
  178. package/prettier.config.js +0 -9
  179. package/public/index.html +0 -28
  180. package/server/helper.py +0 -147
  181. package/server/host.js +0 -134
  182. package/server/serialize.js +0 -111
  183. package/server/serialize.py +0 -203
  184. package/server/server.py +0 -84
  185. package/server/test.py +0 -17
  186. package/src/assets/logo.png +0 -0
  187. package/src/assets/logo.svg +0 -20
  188. package/src/assets/samples/3DUS-Fetus.jpg +0 -0
  189. package/src/assets/samples/CTA-Head_and_Neck.jpg +0 -0
  190. package/src/assets/samples/MRA-Head_and_Neck.jpg +0 -0
  191. package/src/assets/samples/MRI-Cardiac.jpg +0 -0
  192. package/src/assets/samples/MRI-PROSTATEx.jpg +0 -0
  193. package/src/components/AboutBox.vue +0 -157
  194. package/src/components/AiModule.vue +0 -60
  195. package/src/components/AnnotationsModule.vue +0 -37
  196. package/src/components/App.vue +0 -539
  197. package/src/components/ColorFunctionSlider.vue +0 -181
  198. package/src/components/DataBrowser.vue +0 -173
  199. package/src/components/DragAndDrop.vue +0 -107
  200. package/src/components/GroupableItem.vue +0 -30
  201. package/src/components/ImageDataBrowser.vue +0 -186
  202. package/src/components/ImageListCard.vue +0 -114
  203. package/src/components/ItemGroup.vue +0 -74
  204. package/src/components/LabelmapList.vue +0 -36
  205. package/src/components/LayoutGrid.vue +0 -96
  206. package/src/components/MeasurementsList.vue +0 -134
  207. package/src/components/MessageCenter.vue +0 -189
  208. package/src/components/MessageItem.vue +0 -83
  209. package/src/components/MessageNotificationContent.vue +0 -20
  210. package/src/components/MessageNotifications.vue +0 -84
  211. package/src/components/ModelBrowser.vue +0 -83
  212. package/src/components/ModulePanel.vue +0 -137
  213. package/src/components/PaintControls.vue +0 -174
  214. package/src/components/PatientBrowser.vue +0 -280
  215. package/src/components/PatientStudyVolumeBrowser.vue +0 -325
  216. package/src/components/RenderingModule.vue +0 -49
  217. package/src/components/ResizableNavDrawer.vue +0 -158
  218. package/src/components/SampleDataBrowser.vue +0 -198
  219. package/src/components/SaveSession.vue +0 -57
  220. package/src/components/Settings.vue +0 -35
  221. package/src/components/SliceSlider.vue +0 -182
  222. package/src/components/SpleenModule.vue +0 -101
  223. package/src/components/ToolButton.vue +0 -58
  224. package/src/components/ToolStrip.vue +0 -186
  225. package/src/components/ViewOverlayGrid.vue +0 -84
  226. package/src/components/VolumePresets.vue +0 -165
  227. package/src/components/VolumeProperties.vue +0 -171
  228. package/src/components/VolumeRendering.vue +0 -365
  229. package/src/components/VtkThreeView.vue +0 -512
  230. package/src/components/VtkTwoView.vue +0 -665
  231. package/src/components/__tests__/ResizableNavDrawer.spec.js +0 -32
  232. package/src/components/__tests__/ToolButton.spec.js +0 -46
  233. package/src/components/icons/KitwareLogoIcon.vue +0 -54
  234. package/src/components/icons/VolViewFullLogo.vue +0 -139
  235. package/src/components/icons/VolViewLogo.vue +0 -78
  236. package/src/components/styles/utils.css +0 -16
  237. package/src/components/styles/vtk-view.css +0 -116
  238. package/src/components/tools/CropTool.vue +0 -61
  239. package/src/components/tools/CrosshairsTool.vue +0 -93
  240. package/src/components/tools/MouseManipulatorTool.vue +0 -108
  241. package/src/components/tools/PaintTool.vue +0 -54
  242. package/src/components/tools/PanTool.vue +0 -35
  243. package/src/components/tools/RulerTool.vue +0 -202
  244. package/src/components/tools/SliceScrollTool.vue +0 -123
  245. package/src/components/tools/WindowLevelTool.vue +0 -191
  246. package/src/components/tools/ZoomTool.vue +0 -35
  247. package/src/components/tools/crop/Crop2D.vue +0 -367
  248. package/src/components/tools/crop/Crop2DLineHandle.vue +0 -103
  249. package/src/components/tools/crop/Crop3D.vue +0 -192
  250. package/src/components/tools/crop/CropControls.vue +0 -38
  251. package/src/components/tools/crop/types.ts +0 -12
  252. package/src/components/tools/crosshairs/CrosshairSVG2D.vue +0 -125
  253. package/src/components/tools/crosshairs/CrosshairsWidget2D.vue +0 -100
  254. package/src/components/tools/paint/PaintWidget2D.vue +0 -192
  255. package/src/components/tools/ruler/RulerSVG2D.vue +0 -181
  256. package/src/components/tools/ruler/RulerWidget2D.vue +0 -154
  257. package/src/composables/__tests__/useDoubleRecord.spec.ts +0 -57
  258. package/src/composables/__tests__/useOrientationLabels.spec.ts +0 -29
  259. package/src/composables/isViewAnimating.ts +0 -25
  260. package/src/composables/manageVTKSubscription.ts +0 -6
  261. package/src/composables/onProxyManagerEvent.ts +0 -50
  262. package/src/composables/proxyManager.ts +0 -13
  263. package/src/composables/sync/__tests__/createPrimitiveSyncContext.spec.ts +0 -41
  264. package/src/composables/sync/__tests__/useWindowingSync.spec.ts +0 -51
  265. package/src/composables/sync/createPrimitiveSyncContext.ts +0 -83
  266. package/src/composables/sync/useWindowingSync.ts +0 -48
  267. package/src/composables/useAppLoadingNotifications.ts +0 -73
  268. package/src/composables/useCameraOrientation.ts +0 -34
  269. package/src/composables/useCurrentImage.ts +0 -74
  270. package/src/composables/useCurrentSlice.ts +0 -43
  271. package/src/composables/useDoubleRecord.ts +0 -77
  272. package/src/composables/useEventListener.ts +0 -26
  273. package/src/composables/useGlobalErrorHook.ts +0 -18
  274. package/src/composables/useMultiSelection.ts +0 -29
  275. package/src/composables/useOrientationLabels.ts +0 -62
  276. package/src/composables/usePanels.ts +0 -42
  277. package/src/composables/usePersistCameraConfig.ts +0 -138
  278. package/src/composables/useResizeObserver.ts +0 -37
  279. package/src/composables/useResizeToFit.ts +0 -50
  280. package/src/composables/useSceneBuilder.ts +0 -96
  281. package/src/composables/useToast.js +0 -11
  282. package/src/composables/useVTKCallback.ts +0 -33
  283. package/src/composables/useVTKWorldToDisplay.ts +0 -141
  284. package/src/composables/useViewProxy.ts +0 -87
  285. package/src/composables/useVolumeThumbnailing.ts +0 -173
  286. package/src/composables/useWebGLWatchdog.ts +0 -32
  287. package/src/composables/useWidgetManager.ts +0 -41
  288. package/src/config.ts +0 -182
  289. package/src/constants.ts +0 -38
  290. package/src/core/id.ts +0 -18
  291. package/src/core/provider.ts +0 -31
  292. package/src/core/proxies.ts +0 -90
  293. package/src/core/thumbnailers/__tests__/vtk-image.spec.ts +0 -58
  294. package/src/core/thumbnailers/index.ts +0 -5
  295. package/src/core/thumbnailers/volume-thumbnailer.ts +0 -130
  296. package/src/core/thumbnailers/vtk-image.ts +0 -142
  297. package/src/core/tools/__tests__/paint.spec.ts +0 -101
  298. package/src/core/tools/__tests__/ruler.spec.ts +0 -73
  299. package/src/core/tools/paint/brush.ts +0 -20
  300. package/src/core/tools/paint/ellipse-brush.ts +0 -96
  301. package/src/core/tools/paint/index.ts +0 -141
  302. package/src/core/tools/ruler.ts +0 -149
  303. package/src/global.d.ts +0 -24
  304. package/src/io/__tests__/io.spec.ts +0 -26
  305. package/src/io/dicom.ts +0 -187
  306. package/src/io/index.ts +0 -11
  307. package/src/io/io.ts +0 -157
  308. package/src/io/itk/itkConfig.js +0 -8
  309. package/src/io/itk-dicom/dicom.cpp +0 -327
  310. package/src/io/itk-dicom/web-build/dicom.js +0 -16
  311. package/src/io/itk-dicom/web-build/dicom.umd.js +0 -21
  312. package/src/io/manifest.ts +0 -30
  313. package/src/io/readers.ts +0 -36
  314. package/src/io/state-file/index.ts +0 -170
  315. package/src/io/state-file/schema.ts +0 -277
  316. package/src/io/state-file/utils.ts +0 -33
  317. package/src/io/types.ts +0 -4
  318. package/src/io/vtk/async.reader.worker.ts +0 -50
  319. package/src/io/vtk/async.ts +0 -58
  320. package/src/io/vtk/async.writer.worker.ts +0 -46
  321. package/src/io/vtk/common.ts +0 -30
  322. package/src/io/zip.ts +0 -31
  323. package/src/main.js +0 -66
  324. package/src/main.ts +0 -1
  325. package/src/plugins/vuetify.js +0 -25
  326. package/src/shims-itk.d.ts +0 -67
  327. package/src/shims-misc.d.ts +0 -4
  328. package/src/shims-tsx.d.ts +0 -13
  329. package/src/shims-vtk.d.ts +0 -1042
  330. package/src/shims-vue.d.ts +0 -5
  331. package/src/store/__tests__/datasets.spec.ts +0 -75
  332. package/src/store/__tests__/messages.spec.ts +0 -74
  333. package/src/store/__tests__/rulers.spec.ts +0 -77
  334. package/src/store/__tests__/view-configs.spec.ts +0 -37
  335. package/src/store/datasets-dicom.ts +0 -398
  336. package/src/store/datasets-files.ts +0 -35
  337. package/src/store/datasets-images.ts +0 -118
  338. package/src/store/datasets-labelmaps.ts +0 -136
  339. package/src/store/datasets-models.ts +0 -25
  340. package/src/store/datasets.ts +0 -341
  341. package/src/store/messages.ts +0 -144
  342. package/src/store/tools/crop.ts +0 -136
  343. package/src/store/tools/crosshairs.ts +0 -131
  344. package/src/store/tools/index.ts +0 -95
  345. package/src/store/tools/paint.ts +0 -191
  346. package/src/store/tools/rulers.ts +0 -305
  347. package/src/store/tools/types.ts +0 -54
  348. package/src/store/view-configs/camera.ts +0 -51
  349. package/src/store/view-configs/common.ts +0 -61
  350. package/src/store/view-configs/slicing.ts +0 -86
  351. package/src/store/view-configs/types.ts +0 -39
  352. package/src/store/view-configs/volume-coloring.ts +0 -193
  353. package/src/store/view-configs/windowing.ts +0 -69
  354. package/src/store/view-configs.ts +0 -78
  355. package/src/store/views.ts +0 -130
  356. package/src/types/index.ts +0 -16
  357. package/src/types/layout.ts +0 -10
  358. package/src/types/lps.ts +0 -40
  359. package/src/types/views.ts +0 -65
  360. package/src/types/vtk-types.ts +0 -29
  361. package/src/utils/__tests__/lps.spec.ts +0 -102
  362. package/src/utils/color.ts +0 -23
  363. package/src/utils/errors.js +0 -3
  364. package/src/utils/fetch.ts +0 -101
  365. package/src/utils/hacks.ts +0 -14
  366. package/src/utils/index.ts +0 -83
  367. package/src/utils/lps.ts +0 -129
  368. package/src/utils/manipulators.ts +0 -35
  369. package/src/utils/promise-worker.ts +0 -45
  370. package/src/utils/vtk-helpers.ts +0 -215
  371. package/src/utils/workerHandler.js +0 -42
  372. package/src/vtk/ColorMaps.ts +0 -72
  373. package/src/vtk/CrosshairsWidget/behavior.ts +0 -112
  374. package/src/vtk/CrosshairsWidget/index.d.ts +0 -22
  375. package/src/vtk/CrosshairsWidget/index.js +0 -73
  376. package/src/vtk/CrosshairsWidget/state.ts +0 -51
  377. package/src/vtk/IJKSliceRepresentationProxy/index.d.ts +0 -9
  378. package/src/vtk/IJKSliceRepresentationProxy/index.js +0 -59
  379. package/src/vtk/LPSView2DProxy/index.d.ts +0 -18
  380. package/src/vtk/LPSView2DProxy/index.js +0 -89
  381. package/src/vtk/LPSView3DProxy/index.d.ts +0 -16
  382. package/src/vtk/LPSView3DProxy/index.js +0 -78
  383. package/src/vtk/LabelMap/index.d.ts +0 -16
  384. package/src/vtk/LabelMap/index.js +0 -49
  385. package/src/vtk/LabelMapSliceRepProxy/index.d.ts +0 -6
  386. package/src/vtk/LabelMapSliceRepProxy/index.js +0 -104
  387. package/src/vtk/MedicalColorPresets.json +0 -1448
  388. package/src/vtk/PaintBrushContextRepresentation/index.js +0 -191
  389. package/src/vtk/PaintWidget/behavior.ts +0 -101
  390. package/src/vtk/PaintWidget/index.d.ts +0 -28
  391. package/src/vtk/PaintWidget/index.js +0 -56
  392. package/src/vtk/PaintWidget/state.ts +0 -41
  393. package/src/vtk/PiecewiseWidget/index.js +0 -203
  394. package/src/vtk/RulerWidget/behavior.ts +0 -185
  395. package/src/vtk/RulerWidget/index.d.ts +0 -25
  396. package/src/vtk/RulerWidget/index.js +0 -79
  397. package/src/vtk/RulerWidget/state.ts +0 -63
  398. package/src/vtk/TreJsonConverter/index.js +0 -150
  399. package/src/vtk/proxy.js +0 -66
  400. package/src/vtk/proxyUtils.js +0 -16
  401. package/src/vtk/webvr-empty.js +0 -1
  402. package/tests/testUtils.js +0 -12
  403. package/tsconfig.json +0 -46
  404. package/vue.config.js +0 -86
@@ -1,38 +0,0 @@
1
- <script lang="ts">
2
- import { defineComponent } from '@vue/composition-api';
3
- import ToolButton from '@/src/components/ToolButton.vue';
4
- import { useCurrentImage } from '@/src/composables/useCurrentImage';
5
- import { useCropStore } from '@/src/store/tools/crop';
6
-
7
- export default defineComponent({
8
- components: {
9
- ToolButton,
10
- },
11
- setup() {
12
- const { currentImageID } = useCurrentImage();
13
- const cropStore = useCropStore();
14
-
15
- const resetCrop = () => {
16
- const imageID = currentImageID.value;
17
- if (imageID) {
18
- cropStore.resetCropping(imageID);
19
- }
20
- };
21
-
22
- return {
23
- resetCrop,
24
- };
25
- },
26
- });
27
- </script>
28
-
29
- <template>
30
- <v-card dark>
31
- <tool-button
32
- size="40"
33
- icon="mdi-restore"
34
- name="Reset Crop"
35
- @click="resetCrop"
36
- />
37
- </v-card>
38
- </template>
@@ -1,12 +0,0 @@
1
- export interface CropLine<T> {
2
- startEdge: T;
3
- startCrop: T;
4
- endCrop: T;
5
- endEdge: T;
6
- }
7
-
8
- export interface CropLines<T> {
9
- lowerLine: CropLine<T>;
10
- upperLine: CropLine<T>;
11
- outOfBounds: boolean;
12
- }
@@ -1,125 +0,0 @@
1
- <template>
2
- <g ref="containerEl">
3
- <line
4
- v-if="x != null && y != null"
5
- :x1="x"
6
- y1="0%"
7
- :x2="x"
8
- :y2="y - 8"
9
- stroke="yellow"
10
- stroke-width="1"
11
- />
12
- <line
13
- v-if="x != null && y != null"
14
- :x1="x"
15
- :y1="y + 8"
16
- :x2="x"
17
- y2="100%"
18
- stroke="yellow"
19
- stroke-width="1"
20
- />
21
- <line
22
- v-if="x != null && y != null"
23
- x1="0%"
24
- :y1="y"
25
- :x2="x - 8"
26
- :y2="y"
27
- stroke="yellow"
28
- stroke-width="1"
29
- />
30
- <line
31
- v-if="x != null && y != null"
32
- :x1="x + 8"
33
- :y1="y"
34
- x2="100%"
35
- :y2="y"
36
- stroke="yellow"
37
- stroke-width="1"
38
- />
39
- </g>
40
- </template>
41
-
42
- <script lang="ts">
43
- import { useResizeObserver } from '@/src/composables/useResizeObserver';
44
- import { useVTKCallback } from '@/src/composables/useVTKCallback';
45
- import { useViewStore } from '@/src/store/views';
46
- import { worldToSVG } from '@/src/utils/vtk-helpers';
47
- import vtkLPSView2DProxy from '@/src/vtk/LPSView2DProxy';
48
- import { Vector3 } from '@kitware/vtk.js/types';
49
- import {
50
- PropType,
51
- defineComponent,
52
- toRefs,
53
- unref,
54
- ref,
55
- watchEffect,
56
- computed,
57
- } from '@vue/composition-api';
58
-
59
- type SVGPoint = {
60
- x: number;
61
- y: number;
62
- };
63
-
64
- export default defineComponent({
65
- props: {
66
- position: Array as PropType<Array<number>>,
67
- viewId: {
68
- type: String,
69
- required: true,
70
- },
71
- },
72
- setup(props) {
73
- const { viewId: viewID, position } = toRefs(props);
74
- const position2D = ref<SVGPoint>();
75
-
76
- const viewStore = useViewStore();
77
-
78
- const viewProxy = computed(
79
- () => viewStore.getViewProxy<vtkLPSView2DProxy>(viewID.value)!
80
- );
81
-
82
- const updatePoints = () => {
83
- const viewRenderer = viewProxy.value.getRenderer();
84
- const pt = unref(position) as Vector3 | undefined;
85
- if (pt) {
86
- const point2D = worldToSVG(pt, viewRenderer);
87
- if (point2D) {
88
- position2D.value = {
89
- x: point2D[0],
90
- y: point2D[1],
91
- };
92
- }
93
- }
94
- };
95
-
96
- const cameraOnModified = useVTKCallback(
97
- computed(() => viewProxy.value.getCamera().onModified)
98
- );
99
- cameraOnModified(updatePoints);
100
-
101
- watchEffect(updatePoints);
102
-
103
- // --- resize --- //
104
-
105
- const containerEl = ref<Element | null>(null);
106
-
107
- useResizeObserver(containerEl, () => {
108
- updatePoints();
109
- });
110
-
111
- return {
112
- devicePixelRatio,
113
- x: computed(() => position2D.value?.x),
114
- y: computed(() => position2D.value?.y),
115
- containerEl,
116
- };
117
- },
118
- });
119
- </script>
120
-
121
- <style scoped>
122
- .handle {
123
- cursor: pointer;
124
- }
125
- </style>
@@ -1,100 +0,0 @@
1
- <script lang="ts">
2
- import vtkWidgetManager from '@kitware/vtk.js/Widgets/Core/WidgetManager';
3
- import {
4
- defineComponent,
5
- onBeforeUnmount,
6
- onMounted,
7
- PropType,
8
- ref,
9
- toRefs,
10
- watchEffect,
11
- } from '@vue/composition-api';
12
- import vtkPlaneManipulator from '@kitware/vtk.js/Widgets/Manipulators/PlaneManipulator';
13
- import { LPSAxisDir } from '@/src/types/lps';
14
- import { useCurrentImage } from '@/src/composables/useCurrentImage';
15
- import { updatePlaneManipulatorFor2DView } from '@/src/utils/manipulators';
16
- import { vtkCrosshairsViewWidget } from '@/src/vtk/CrosshairsWidget';
17
- import { useCrosshairsToolStore } from '@/src/store/tools/crosshairs';
18
-
19
- export default defineComponent({
20
- name: 'CrosshairsWidget2D',
21
- props: {
22
- widgetManager: {
23
- type: Object as PropType<vtkWidgetManager>,
24
- required: true,
25
- },
26
- viewId: {
27
- type: String,
28
- required: true,
29
- },
30
- viewDirection: {
31
- type: String as PropType<LPSAxisDir>,
32
- required: true,
33
- },
34
- slice: {
35
- type: Number,
36
- required: true,
37
- },
38
- },
39
- setup(props) {
40
- const {
41
- widgetManager: widgetManagerRef,
42
- viewDirection,
43
- slice,
44
- } = toRefs(props);
45
-
46
- const crosshairsStore = useCrosshairsToolStore();
47
- const factory = crosshairsStore.getWidgetFactory();
48
-
49
- const widgetRef = ref<vtkCrosshairsViewWidget>();
50
-
51
- const { currentImageMetadata } = useCurrentImage();
52
- onMounted(() => {
53
- const widgetManager = widgetManagerRef.value;
54
- widgetRef.value = widgetManager.addWidget(
55
- factory
56
- ) as vtkCrosshairsViewWidget;
57
-
58
- if (!widgetRef.value) {
59
- throw new Error('[PaintWidget2D] failed to create view widget');
60
- }
61
- });
62
-
63
- // --- manipulator --- //
64
-
65
- const manipulator = vtkPlaneManipulator.newInstance();
66
-
67
- onMounted(() => {
68
- widgetRef.value!.setManipulator(manipulator);
69
- });
70
-
71
- watchEffect(() => {
72
- updatePlaneManipulatorFor2DView(
73
- manipulator,
74
- viewDirection.value,
75
- slice.value,
76
- currentImageMetadata.value
77
- );
78
- });
79
-
80
- // --- visibility --- //
81
-
82
- onMounted(() => {
83
- widgetRef.value!.setVisibility(true);
84
- });
85
-
86
- // --- focus and rendering --- //
87
-
88
- onMounted(() => {
89
- const widgetManager = widgetManagerRef.value;
90
- widgetManager.renderWidgets();
91
- });
92
-
93
- onBeforeUnmount(() => {
94
- widgetManagerRef.value.removeWidget(widgetRef.value!);
95
- });
96
-
97
- return () => null;
98
- },
99
- });
100
- </script>
@@ -1,192 +0,0 @@
1
- <script lang="ts">
2
- import vtkWidgetManager from '@kitware/vtk.js/Widgets/Core/WidgetManager';
3
- import {
4
- computed,
5
- defineComponent,
6
- onBeforeUnmount,
7
- onMounted,
8
- onUnmounted,
9
- PropType,
10
- ref,
11
- toRefs,
12
- watchEffect,
13
- } from '@vue/composition-api';
14
- import vtkPlaneManipulator from '@kitware/vtk.js/Widgets/Manipulators/PlaneManipulator';
15
- import { getLPSAxisFromDir } from '@/src/utils/lps';
16
- import { useCurrentImage } from '@/src/composables/useCurrentImage';
17
- import { updatePlaneManipulatorFor2DView } from '@/src/utils/manipulators';
18
- import { vtkSubscription } from '@kitware/vtk.js/interfaces';
19
- import { usePaintToolStore } from '@/src/store/tools/paint';
20
- import { vtkPaintViewWidget } from '@/src/vtk/PaintWidget';
21
- import { useViewStore } from '@/src/store/views';
22
- import { PaintWidgetState } from '@/src/vtk/PaintWidget/state';
23
- import { vec3 } from 'gl-matrix';
24
- import { manageVTKSubscription } from '@/src/composables/manageVTKSubscription';
25
- import { LPSAxisDir } from '@/src/types/lps';
26
-
27
- export default defineComponent({
28
- name: 'PaintWidget2D',
29
- props: {
30
- widgetManager: {
31
- type: Object as PropType<vtkWidgetManager>,
32
- required: true,
33
- },
34
- viewId: {
35
- type: String,
36
- required: true,
37
- },
38
- viewDirection: {
39
- type: String as PropType<LPSAxisDir>,
40
- required: true,
41
- },
42
- slice: {
43
- type: Number,
44
- required: true,
45
- },
46
- },
47
- setup(props) {
48
- const {
49
- widgetManager: widgetManagerRef,
50
- viewDirection,
51
- slice,
52
- viewId: viewID,
53
- } = toRefs(props);
54
-
55
- const paintStore = usePaintToolStore();
56
- const factory = paintStore.getWidgetFactory();
57
-
58
- const viewStore = useViewStore();
59
- const viewProxyRef = computed(() => viewStore.getViewProxy(viewID.value));
60
-
61
- const widgetRef = ref<vtkPaintViewWidget>();
62
-
63
- const { currentImageMetadata } = useCurrentImage();
64
- const viewAxis = computed(() => getLPSAxisFromDir(viewDirection.value));
65
- const viewAxisIndex = computed(
66
- () => currentImageMetadata.value.lpsOrientation[viewAxis.value]
67
- );
68
-
69
- const worldPointToIndex = (worldPoint: vec3) => {
70
- const { worldToIndex } = currentImageMetadata.value;
71
- const indexPoint = vec3.create();
72
- vec3.transformMat4(indexPoint, worldPoint, worldToIndex);
73
- return indexPoint;
74
- };
75
-
76
- onMounted(() => {
77
- const widgetManager = widgetManagerRef.value;
78
- widgetRef.value = widgetManager.addWidget(factory) as vtkPaintViewWidget;
79
-
80
- if (!widgetRef.value) {
81
- throw new Error('[PaintWidget2D] failed to create view widget');
82
- }
83
- });
84
-
85
- // --- widget representation config --- //
86
-
87
- watchEffect(() => {
88
- const widget = widgetRef.value!;
89
- const metadata = currentImageMetadata.value;
90
- const slicingIndex = metadata.lpsOrientation[viewAxis.value];
91
- if (widget) {
92
- widget.setSlicingIndex(slicingIndex);
93
- widget.setIndexToWorld(metadata.indexToWorld);
94
- widget.setWorldToIndex(metadata.worldToIndex);
95
- }
96
- });
97
-
98
- // --- interaction --- //
99
-
100
- const subs: vtkSubscription[] = [];
101
-
102
- onMounted(() => {
103
- const widget = widgetRef.value!;
104
-
105
- subs.push(
106
- widget.onStartInteractionEvent(() => {
107
- // start stroke
108
- const state = widget.getWidgetState() as PaintWidgetState;
109
- // StartInteraction cannot occur if origin is null.
110
- const indexPoint = worldPointToIndex(state.getBrush().getOrigin()!);
111
- paintStore.startStroke(indexPoint, viewAxisIndex.value);
112
- }),
113
- widget.onInteractionEvent(() => {
114
- // register stroke
115
- const state = widget.getWidgetState() as PaintWidgetState;
116
- const indexPoint = worldPointToIndex(state.getBrush().getOrigin()!);
117
- paintStore.placeStrokePoint(indexPoint, viewAxisIndex.value);
118
- }),
119
- widget.onEndInteractionEvent(() => {
120
- // end stroke
121
- const state = widget.getWidgetState() as PaintWidgetState;
122
- const indexPoint = worldPointToIndex(state.getBrush().getOrigin()!);
123
- paintStore.endStroke(indexPoint, viewAxisIndex.value);
124
- })
125
- );
126
- });
127
-
128
- onUnmounted(() => {
129
- while (subs.length) {
130
- subs.pop()!.unsubscribe();
131
- }
132
- });
133
-
134
- // --- manipulator --- //
135
-
136
- const manipulator = vtkPlaneManipulator.newInstance();
137
-
138
- onMounted(() => {
139
- widgetRef.value!.setManipulator(manipulator);
140
- });
141
-
142
- watchEffect(() => {
143
- updatePlaneManipulatorFor2DView(
144
- manipulator,
145
- viewDirection.value,
146
- slice.value,
147
- currentImageMetadata.value
148
- );
149
- });
150
-
151
- // --- visibility --- //
152
-
153
- onMounted(() => {
154
- widgetRef.value!.setVisibility(false);
155
- });
156
-
157
- manageVTKSubscription(
158
- viewProxyRef.value!.getInteractor().onMouseEnter(() => {
159
- const widget = widgetRef.value;
160
- if (widget) {
161
- paintStore.setSliceAxis(viewAxisIndex.value);
162
- widget.setVisibility(true);
163
- }
164
- })
165
- );
166
-
167
- manageVTKSubscription(
168
- viewProxyRef.value!.getInteractor().onMouseLeave(() => {
169
- const widget = widgetRef.value;
170
- if (widget) {
171
- widget.setVisibility(false);
172
- }
173
- })
174
- );
175
-
176
- // --- focus and rendering --- //
177
-
178
- onMounted(() => {
179
- const widgetManager = widgetManagerRef.value;
180
- widgetManager.renderWidgets();
181
- widgetManager.grabFocus(widgetRef.value!);
182
- });
183
-
184
- onBeforeUnmount(() => {
185
- widgetManagerRef.value.removeWidget(widgetRef.value!);
186
- widgetManagerRef.value.releaseFocus();
187
- });
188
-
189
- return () => null;
190
- },
191
- });
192
- </script>
@@ -1,181 +0,0 @@
1
- <template>
2
- <g ref="containerEl">
3
- <line
4
- v-if="first && second"
5
- :x1="first.x"
6
- :y1="first.y"
7
- :x2="second.x"
8
- :y2="second.y"
9
- :stroke="color"
10
- stroke-width="1"
11
- />
12
- <!-- radius is related to the vtkRulerWidget scale, specified in state -->
13
- <circle
14
- v-if="first"
15
- :cx="first.x"
16
- :cy="first.y"
17
- :stroke="color"
18
- stroke-width="1"
19
- fill="transparent"
20
- :r="10 / devicePixelRatio"
21
- />
22
- <circle
23
- v-if="second"
24
- :cx="second.x"
25
- :cy="second.y"
26
- :stroke="color"
27
- stroke-width="1"
28
- fill="transparent"
29
- :r="10 / devicePixelRatio"
30
- class="handle"
31
- />
32
- <text
33
- v-if="second"
34
- :x="second.x"
35
- :y="second.y"
36
- :dx="textdx"
37
- :dy="textdy"
38
- :text-anchor="anchor"
39
- stroke-width="0.75"
40
- stroke="black"
41
- :fill="color"
42
- :font-size="`${textSize}px`"
43
- font-weight="bold"
44
- >
45
- {{ rulerLength }}
46
- </text>
47
- </g>
48
- </template>
49
-
50
- <script lang="ts">
51
- import { useResizeObserver } from '@/src/composables/useResizeObserver';
52
- import { useVTKCallback } from '@/src/composables/useVTKCallback';
53
- import { useViewStore } from '@/src/store/views';
54
- import { worldToSVG } from '@/src/utils/vtk-helpers';
55
- import vtkLPSView2DProxy from '@/src/vtk/LPSView2DProxy';
56
- import { Vector3 } from '@kitware/vtk.js/types';
57
- import {
58
- PropType,
59
- computed,
60
- defineComponent,
61
- toRefs,
62
- unref,
63
- ref,
64
- watch,
65
- } from '@vue/composition-api';
66
-
67
- type SVGPoint = {
68
- x: number;
69
- y: number;
70
- };
71
-
72
- export default defineComponent({
73
- props: {
74
- point1: Array as PropType<Array<number>>,
75
- point2: Array as PropType<Array<number>>,
76
- color: String,
77
- length: Number,
78
- viewId: {
79
- type: String,
80
- required: true,
81
- },
82
- textOffset: {
83
- type: Number,
84
- default: 8,
85
- },
86
- textSize: {
87
- type: Number,
88
- default: 14,
89
- },
90
- },
91
- setup(props) {
92
- const {
93
- viewId: viewID,
94
- point1,
95
- point2,
96
- textOffset,
97
- length,
98
- } = toRefs(props);
99
- const firstPoint = ref<SVGPoint | null>();
100
- const secondPoint = ref<SVGPoint | null>();
101
-
102
- const viewStore = useViewStore();
103
-
104
- const viewProxy = computed(
105
- () => viewStore.getViewProxy<vtkLPSView2DProxy>(viewID.value)!
106
- );
107
-
108
- const updatePoints = () => {
109
- const viewRenderer = viewProxy.value.getRenderer();
110
- const pt1 = unref(point1) as Vector3 | undefined;
111
- const pt2 = unref(point2) as Vector3 | undefined;
112
- if (pt1) {
113
- const point2D = worldToSVG(pt1, viewRenderer);
114
- if (point2D) {
115
- firstPoint.value = {
116
- x: point2D[0],
117
- y: point2D[1],
118
- };
119
- }
120
- }
121
- if (pt2) {
122
- const point2D = worldToSVG(pt2, viewRenderer);
123
- if (point2D) {
124
- secondPoint.value = {
125
- x: point2D[0],
126
- y: point2D[1],
127
- };
128
- }
129
- }
130
- };
131
-
132
- const cameraOnModified = useVTKCallback(
133
- computed(() => viewProxy.value.getCamera().onModified)
134
- );
135
- cameraOnModified(updatePoints);
136
-
137
- watch([viewProxy, point1, point2], updatePoints, {
138
- deep: true,
139
- immediate: true,
140
- });
141
-
142
- const textProperties = computed(() => {
143
- const first = unref(firstPoint);
144
- const second = unref(secondPoint);
145
- const offset = textOffset.value;
146
- if (!first || !second) {
147
- return null;
148
- }
149
- if (second.x > first.x) {
150
- return { dx: offset, dy: -offset, anchor: 'start' };
151
- }
152
- return { dx: -offset, dy: -offset, anchor: 'end' };
153
- });
154
-
155
- // --- resize --- //
156
-
157
- const containerEl = ref<Element | null>(null);
158
-
159
- useResizeObserver(containerEl, () => {
160
- updatePoints();
161
- });
162
-
163
- return {
164
- devicePixelRatio,
165
- textdx: computed(() => textProperties.value?.dx ?? 0),
166
- textdy: computed(() => textProperties.value?.dy ?? 0),
167
- anchor: computed(() => textProperties.value?.anchor ?? 'start'),
168
- first: firstPoint,
169
- second: secondPoint,
170
- rulerLength: computed(() => length?.value?.toFixed(2) ?? ''),
171
- containerEl,
172
- };
173
- },
174
- });
175
- </script>
176
-
177
- <style scoped>
178
- .handle {
179
- cursor: pointer;
180
- }
181
- </style>