@kitware/vtk.js 28.10.2 → 28.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/Common/Core/Base64.js +53 -82
  2. package/Common/Core/CellArray.js +52 -60
  3. package/Common/Core/ClassHierarchy.js +8 -36
  4. package/Common/Core/DataArray/Constants.js +6 -6
  5. package/Common/Core/DataArray.js +185 -270
  6. package/Common/Core/Endian.js +14 -17
  7. package/Common/Core/HalfFloat.js +17 -34
  8. package/Common/Core/ImageHelper.js +17 -25
  9. package/Common/Core/LookupTable.js +131 -144
  10. package/Common/Core/Math/Constants.js +8 -8
  11. package/Common/Core/Math/index.js +754 -942
  12. package/Common/Core/Math.js +2 -4
  13. package/Common/Core/MatrixBuilder.js +99 -151
  14. package/Common/Core/Points.js +43 -43
  15. package/Common/Core/PriorityQueue.js +30 -28
  16. package/Common/Core/ProgressHandler.js +31 -32
  17. package/Common/Core/ScalarsToColors/Constants.js +4 -4
  18. package/Common/Core/ScalarsToColors.js +196 -253
  19. package/Common/Core/StringArray.js +48 -73
  20. package/Common/Core/URLExtract.js +10 -29
  21. package/Common/Core/VariantArray.js +48 -73
  22. package/Common/Core.js +11 -11
  23. package/Common/DataModel/AbstractPointLocator.js +19 -17
  24. package/Common/DataModel/BoundingBox.js +322 -490
  25. package/Common/DataModel/Box.js +46 -63
  26. package/Common/DataModel/CardinalSpline1D.js +92 -102
  27. package/Common/DataModel/Cell.js +41 -61
  28. package/Common/DataModel/CellLinks.js +91 -127
  29. package/Common/DataModel/CellTypes/Constants.js +7 -6
  30. package/Common/DataModel/CellTypes.js +55 -74
  31. package/Common/DataModel/Collection.js +45 -61
  32. package/Common/DataModel/Cone.js +28 -20
  33. package/Common/DataModel/Cylinder.js +41 -35
  34. package/Common/DataModel/DataSet/Constants.js +11 -5
  35. package/Common/DataModel/DataSet.js +37 -25
  36. package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
  37. package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
  38. package/Common/DataModel/DataSetAttributes.js +96 -138
  39. package/Common/DataModel/EdgeLocator.js +45 -70
  40. package/Common/DataModel/ITKHelper.js +67 -137
  41. package/Common/DataModel/ImageData.js +115 -172
  42. package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
  43. package/Common/DataModel/ImplicitBoolean.js +66 -96
  44. package/Common/DataModel/IncrementalOctreeNode.js +201 -231
  45. package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
  46. package/Common/DataModel/KochanekSpline1D.js +78 -81
  47. package/Common/DataModel/Line/Constants.js +2 -2
  48. package/Common/DataModel/Line.js +82 -105
  49. package/Common/DataModel/Locator.js +17 -10
  50. package/Common/DataModel/Molecule.js +26 -17
  51. package/Common/DataModel/PiecewiseFunction.js +218 -239
  52. package/Common/DataModel/Plane.js +90 -113
  53. package/Common/DataModel/PointSet.js +30 -26
  54. package/Common/DataModel/PolyData/Constants.js +2 -2
  55. package/Common/DataModel/PolyData.js +95 -120
  56. package/Common/DataModel/PolyLine.js +44 -61
  57. package/Common/DataModel/Polygon/Constants.js +4 -4
  58. package/Common/DataModel/Polygon.js +128 -169
  59. package/Common/DataModel/Quad/Constants.js +2 -2
  60. package/Common/DataModel/Quad.js +61 -100
  61. package/Common/DataModel/SelectionNode/Constants.js +5 -4
  62. package/Common/DataModel/SelectionNode.js +25 -21
  63. package/Common/DataModel/Sphere.js +40 -35
  64. package/Common/DataModel/Spline1D/Constants.js +3 -2
  65. package/Common/DataModel/Spline1D.js +34 -18
  66. package/Common/DataModel/Spline3D/Constants.js +2 -2
  67. package/Common/DataModel/Spline3D.js +46 -41
  68. package/Common/DataModel/StructuredData/Constants.js +2 -2
  69. package/Common/DataModel/StructuredData.js +9 -20
  70. package/Common/DataModel/Triangle.js +207 -250
  71. package/Common/DataModel.js +19 -19
  72. package/Common/System/MobileVR.js +56 -61
  73. package/Common/System/TimerLog.js +1 -1
  74. package/Common/System.js +2 -2
  75. package/Common/Transform/LandmarkTransform/Constants.js +2 -2
  76. package/Common/Transform/LandmarkTransform.js +133 -117
  77. package/Common/Transform/Transform.js +42 -57
  78. package/Common/Transform.js +2 -2
  79. package/Common/index.js +4 -4
  80. package/Filters/Core/Cutter.js +134 -146
  81. package/Filters/Core/PolyDataNormals.js +44 -50
  82. package/Filters/Core.js +2 -2
  83. package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
  84. package/Filters/Cornerstone.js +1 -1
  85. package/Filters/General/AppendPolyData.js +84 -100
  86. package/Filters/General/Calculator.js +95 -163
  87. package/Filters/General/ClipClosedSurface/Constants.js +2 -2
  88. package/Filters/General/ClipClosedSurface.js +341 -416
  89. package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
  90. package/Filters/General/ContourTriangulator/Constants.js +2 -2
  91. package/Filters/General/ContourTriangulator/helper.js +684 -812
  92. package/Filters/General/ContourTriangulator.js +92 -89
  93. package/Filters/General/ImageCropFilter.js +77 -78
  94. package/Filters/General/ImageDataOutlineFilter.js +42 -36
  95. package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
  96. package/Filters/General/ImageMarchingCubes.js +99 -112
  97. package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
  98. package/Filters/General/ImageMarchingSquares.js +93 -118
  99. package/Filters/General/ImageOutlineFilter.js +53 -54
  100. package/Filters/General/ImageSliceFilter.js +39 -30
  101. package/Filters/General/ImageStreamline.js +107 -124
  102. package/Filters/General/LineFilter.js +26 -15
  103. package/Filters/General/MoleculeToRepresentation.js +136 -149
  104. package/Filters/General/OBBTree/OBBNode.js +36 -34
  105. package/Filters/General/OBBTree/helper.js +19 -24
  106. package/Filters/General/OBBTree.js +396 -488
  107. package/Filters/General/OutlineFilter.js +52 -34
  108. package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
  109. package/Filters/General/PaintFilter.js +150 -162
  110. package/Filters/General/ScalarToRGBA.js +38 -33
  111. package/Filters/General/TriangleFilter.js +65 -62
  112. package/Filters/General/TubeFilter/Constants.js +4 -4
  113. package/Filters/General/TubeFilter.js +376 -496
  114. package/Filters/General/WarpScalar.js +58 -60
  115. package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
  116. package/Filters/General.js +21 -21
  117. package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
  118. package/Filters/Sources/Arrow2DSource.js +56 -56
  119. package/Filters/Sources/ArrowSource.js +39 -29
  120. package/Filters/Sources/CircleSource.js +43 -43
  121. package/Filters/Sources/ConcentricCylinderSource.js +151 -174
  122. package/Filters/Sources/ConeSource.js +51 -42
  123. package/Filters/Sources/CubeSource.js +75 -96
  124. package/Filters/Sources/Cursor3D.js +94 -109
  125. package/Filters/Sources/CylinderSource.js +90 -90
  126. package/Filters/Sources/ImageGridSource.js +43 -43
  127. package/Filters/Sources/LineSource.js +49 -39
  128. package/Filters/Sources/PlaneSource.js +97 -104
  129. package/Filters/Sources/PointSource.js +46 -37
  130. package/Filters/Sources/RTAnalyticSource.js +50 -48
  131. package/Filters/Sources/SLICSource.js +63 -73
  132. package/Filters/Sources/SphereSource.js +88 -78
  133. package/Filters/Sources/ViewFinderSource.js +26 -23
  134. package/Filters/Sources.js +14 -14
  135. package/Filters/Texture/TextureMapToPlane.js +95 -97
  136. package/Filters/Texture/TextureMapToSphere.js +46 -54
  137. package/Filters/Texture.js +2 -2
  138. package/Filters/index.js +5 -5
  139. package/IO/Core/BinaryHelper.js +12 -18
  140. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
  141. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
  142. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
  143. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
  144. package/IO/Core/DataAccessHelper.js +6 -6
  145. package/IO/Core/HttpDataSetReader.js +136 -139
  146. package/IO/Core/HttpDataSetSeriesReader.js +64 -75
  147. package/IO/Core/HttpSceneLoader.js +130 -179
  148. package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
  149. package/IO/Core/ImageStream/ViewStream.js +100 -103
  150. package/IO/Core/ImageStream.js +62 -54
  151. package/IO/Core/ResourceLoader.js +10 -9
  152. package/IO/Core/Serializer/ArraySerializer.js +40 -40
  153. package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
  154. package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
  155. package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
  156. package/IO/Core/Serializer.js +6 -13
  157. package/IO/Core/WSLinkClient.js +90 -76
  158. package/IO/Core/ZipMultiDataSetReader.js +46 -44
  159. package/IO/Core/ZipMultiDataSetWriter.js +43 -34
  160. package/IO/Core.js +7 -7
  161. package/IO/Geometry/DracoReader.js +118 -121
  162. package/IO/Geometry/PLYReader.js +163 -223
  163. package/IO/Geometry/PLYWriter/Constants.js +5 -5
  164. package/IO/Geometry/PLYWriter.js +139 -154
  165. package/IO/Geometry/STLReader.js +123 -146
  166. package/IO/Geometry/STLWriter/Constants.js +2 -2
  167. package/IO/Geometry/STLWriter.js +83 -82
  168. package/IO/Geometry.js +5 -5
  169. package/IO/Legacy/LegacyAsciiParser.js +78 -139
  170. package/IO/Legacy/PolyDataReader.js +48 -36
  171. package/IO/Legacy.js +2 -2
  172. package/IO/Misc/ElevationReader.js +67 -60
  173. package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
  174. package/IO/Misc/ITKImageReader.js +58 -45
  175. package/IO/Misc/ITKPolyDataReader.js +50 -38
  176. package/IO/Misc/JSONNucleoReader.js +49 -42
  177. package/IO/Misc/JSONReader.js +38 -33
  178. package/IO/Misc/MTLReader.js +74 -119
  179. package/IO/Misc/OBJReader.js +153 -206
  180. package/IO/Misc/PDBReader.js +70 -68
  181. package/IO/Misc/SkyboxReader.js +77 -82
  182. package/IO/Misc.js +9 -9
  183. package/IO/XML/XMLImageDataReader.js +36 -38
  184. package/IO/XML/XMLImageDataWriter.js +28 -21
  185. package/IO/XML/XMLPolyDataReader.js +49 -46
  186. package/IO/XML/XMLPolyDataWriter.js +43 -42
  187. package/IO/XML/XMLReader.js +262 -304
  188. package/IO/XML/XMLWriter/Constants.js +3 -3
  189. package/IO/XML/XMLWriter.js +70 -84
  190. package/IO/XML.js +6 -6
  191. package/IO/index.js +5 -5
  192. package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
  193. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
  194. package/Imaging/Core/AbstractImageInterpolator.js +74 -87
  195. package/Imaging/Core/ImageInterpolator.js +201 -252
  196. package/Imaging/Core/ImagePointDataIterator.js +96 -122
  197. package/Imaging/Core/ImageReslice/Constants.js +2 -2
  198. package/Imaging/Core/ImageReslice.js +327 -464
  199. package/Imaging/Core.js +4 -4
  200. package/Imaging/Hybrid/SampleFunction.js +58 -51
  201. package/Imaging/Hybrid.js +1 -1
  202. package/Imaging/index.js +2 -2
  203. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
  204. package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
  205. package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
  206. package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
  207. package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
  208. package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
  209. package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
  210. package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
  211. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
  212. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
  213. package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
  214. package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
  215. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
  216. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
  217. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
  218. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
  219. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
  220. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
  221. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
  222. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
  223. package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
  224. package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
  225. package/Interaction/Manipulators.js +21 -21
  226. package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
  227. package/Interaction/Misc.js +1 -1
  228. package/Interaction/Style/InteractorStyleImage.js +101 -121
  229. package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
  230. package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
  231. package/Interaction/Style/InteractorStyleManipulator.js +254 -329
  232. package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
  233. package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
  234. package/Interaction/Style/InteractorStyleUnicam.js +30 -38
  235. package/Interaction/Style.js +5 -5
  236. package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
  237. package/Interaction/UI/CornerAnnotation.js +65 -48
  238. package/Interaction/UI/FPSMonitor.js +104 -105
  239. package/Interaction/UI/Icons.js +1 -1
  240. package/Interaction/UI/Slider/Constants.js +2 -2
  241. package/Interaction/UI/Slider.js +78 -95
  242. package/Interaction/UI/VolumeController.js +104 -97
  243. package/Interaction/UI.js +5 -5
  244. package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
  245. package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
  246. package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  247. package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
  248. package/Interaction/Widgets.js +2 -2
  249. package/Interaction/index.js +5 -5
  250. package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
  251. package/Proxy/Animation/AnimationProxyManager.js +43 -51
  252. package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
  253. package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
  254. package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
  255. package/Proxy/Core/LookupTableProxy.js +49 -52
  256. package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
  257. package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
  258. package/Proxy/Core/ProxyManager/core.js +83 -106
  259. package/Proxy/Core/ProxyManager/properties.js +53 -76
  260. package/Proxy/Core/ProxyManager/state.js +100 -110
  261. package/Proxy/Core/ProxyManager/view.js +45 -55
  262. package/Proxy/Core/ProxyManager.js +16 -8
  263. package/Proxy/Core/SourceProxy.js +41 -38
  264. package/Proxy/Core/View2DProxy.js +143 -199
  265. package/Proxy/Core/ViewProxy.js +223 -269
  266. package/Proxy/Core.js +7 -7
  267. package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
  268. package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
  269. package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
  270. package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
  271. package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
  272. package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
  273. package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
  274. package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
  275. package/Proxy/Representations.js +7 -7
  276. package/Proxy/index.js +2 -2
  277. package/Rendering/Core/AbstractImageMapper/helper.js +44 -49
  278. package/Rendering/Core/AbstractImageMapper.js +18 -19
  279. package/Rendering/Core/AbstractMapper.js +39 -55
  280. package/Rendering/Core/AbstractMapper3D.js +26 -31
  281. package/Rendering/Core/AbstractPicker.js +25 -21
  282. package/Rendering/Core/Actor.js +71 -93
  283. package/Rendering/Core/Actor2D.js +64 -78
  284. package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
  285. package/Rendering/Core/AnnotatedCubeActor.js +94 -79
  286. package/Rendering/Core/AxesActor.js +65 -87
  287. package/Rendering/Core/Camera.js +246 -271
  288. package/Rendering/Core/CellPicker.js +125 -148
  289. package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
  290. package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
  291. package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
  292. package/Rendering/Core/ColorTransferFunction.js +460 -546
  293. package/Rendering/Core/Coordinate/Constants.js +2 -2
  294. package/Rendering/Core/Coordinate.js +119 -198
  295. package/Rendering/Core/CubeAxesActor.js +294 -320
  296. package/Rendering/Core/Follower.js +46 -45
  297. package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
  298. package/Rendering/Core/Glyph3DMapper.js +96 -148
  299. package/Rendering/Core/HardwareSelector.js +36 -69
  300. package/Rendering/Core/ImageArrayMapper.js +87 -126
  301. package/Rendering/Core/ImageCPRMapper.js +134 -209
  302. package/Rendering/Core/ImageMapper/Constants.js +2 -2
  303. package/Rendering/Core/ImageMapper.js +85 -144
  304. package/Rendering/Core/ImageProperty/Constants.js +2 -2
  305. package/Rendering/Core/ImageProperty.js +66 -81
  306. package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
  307. package/Rendering/Core/ImageResliceMapper.js +36 -29
  308. package/Rendering/Core/ImageSlice.js +85 -127
  309. package/Rendering/Core/InteractorObserver.js +82 -73
  310. package/Rendering/Core/InteractorStyle/Constants.js +2 -2
  311. package/Rendering/Core/InteractorStyle.js +56 -58
  312. package/Rendering/Core/Light.js +43 -49
  313. package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
  314. package/Rendering/Core/Mapper/Constants.js +6 -6
  315. package/Rendering/Core/Mapper/Static.js +15 -12
  316. package/Rendering/Core/Mapper.js +194 -259
  317. package/Rendering/Core/Mapper2D.js +61 -100
  318. package/Rendering/Core/Picker.js +124 -143
  319. package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
  320. package/Rendering/Core/PointPicker.js +68 -79
  321. package/Rendering/Core/Prop/Constants.js +2 -2
  322. package/Rendering/Core/Prop.js +58 -106
  323. package/Rendering/Core/Prop3D.js +54 -83
  324. package/Rendering/Core/Property/Constants.js +6 -6
  325. package/Rendering/Core/Property.js +45 -74
  326. package/Rendering/Core/Property2D/Constants.js +2 -2
  327. package/Rendering/Core/Property2D.js +33 -42
  328. package/Rendering/Core/RenderWindow.js +70 -82
  329. package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
  330. package/Rendering/Core/RenderWindowInteractor.js +324 -439
  331. package/Rendering/Core/Renderer.js +192 -256
  332. package/Rendering/Core/ScalarBarActor.js +267 -272
  333. package/Rendering/Core/Skybox.js +26 -24
  334. package/Rendering/Core/SphereMapper.js +22 -12
  335. package/Rendering/Core/StickMapper.js +22 -12
  336. package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
  337. package/Rendering/Core/SurfaceLICInterface.js +13 -9
  338. package/Rendering/Core/SurfaceLICMapper.js +23 -15
  339. package/Rendering/Core/Texture.js +99 -141
  340. package/Rendering/Core/Viewport.js +60 -88
  341. package/Rendering/Core/Volume.js +55 -77
  342. package/Rendering/Core/VolumeMapper/Constants.js +4 -4
  343. package/Rendering/Core/VolumeMapper.js +59 -91
  344. package/Rendering/Core/VolumeProperty/Constants.js +4 -4
  345. package/Rendering/Core/VolumeProperty.js +78 -115
  346. package/Rendering/Core.js +47 -49
  347. package/Rendering/Misc/CanvasView.js +62 -61
  348. package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
  349. package/Rendering/Misc/GenericRenderWindow.js +48 -37
  350. package/Rendering/Misc/RemoteView.js +86 -80
  351. package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
  352. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
  353. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
  354. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
  355. package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
  356. package/Rendering/Misc/TextureLODsDownloader.js +72 -74
  357. package/Rendering/Misc.js +7 -7
  358. package/Rendering/OpenGL/Actor.js +57 -68
  359. package/Rendering/OpenGL/Actor2D.js +56 -56
  360. package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
  361. package/Rendering/OpenGL/BufferObject.js +50 -65
  362. package/Rendering/OpenGL/Camera.js +35 -29
  363. package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
  364. package/Rendering/OpenGL/Convolution2DPass.js +87 -81
  365. package/Rendering/OpenGL/CubeAxesActor.js +28 -21
  366. package/Rendering/OpenGL/ForwardPass.js +53 -64
  367. package/Rendering/OpenGL/Framebuffer.js +61 -101
  368. package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
  369. package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
  370. package/Rendering/OpenGL/HardwareSelector.js +272 -397
  371. package/Rendering/OpenGL/Helper.js +58 -73
  372. package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
  373. package/Rendering/OpenGL/ImageMapper.js +268 -361
  374. package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
  375. package/Rendering/OpenGL/ImageSlice.js +48 -54
  376. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
  377. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
  378. package/Rendering/OpenGL/PolyDataMapper.js +358 -492
  379. package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
  380. package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
  381. package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
  382. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
  383. package/Rendering/OpenGL/RenderWindow.js +356 -510
  384. package/Rendering/OpenGL/Renderer.js +77 -89
  385. package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
  386. package/Rendering/OpenGL/ScalarBarActor.js +28 -21
  387. package/Rendering/OpenGL/Shader.js +37 -31
  388. package/Rendering/OpenGL/ShaderCache.js +67 -74
  389. package/Rendering/OpenGL/ShaderProgram.js +136 -248
  390. package/Rendering/OpenGL/Skybox.js +99 -60
  391. package/Rendering/OpenGL/SphereMapper.js +94 -108
  392. package/Rendering/OpenGL/StickMapper.js +110 -114
  393. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
  394. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
  395. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
  396. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
  397. package/Rendering/OpenGL/SurfaceLIC.js +2 -2
  398. package/Rendering/OpenGL/Texture/Constants.js +4 -4
  399. package/Rendering/OpenGL/Texture.js +443 -608
  400. package/Rendering/OpenGL/TextureUnitManager.js +47 -43
  401. package/Rendering/OpenGL/VertexArrayObject.js +92 -131
  402. package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
  403. package/Rendering/OpenGL/Volume.js +38 -34
  404. package/Rendering/OpenGL/VolumeMapper.js +437 -547
  405. package/Rendering/OpenGL.js +28 -28
  406. package/Rendering/SceneGraph/RenderPass.js +34 -31
  407. package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
  408. package/Rendering/SceneGraph/ViewNode.js +82 -111
  409. package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
  410. package/Rendering/SceneGraph.js +4 -4
  411. package/Rendering/WebGPU/Actor.js +49 -49
  412. package/Rendering/WebGPU/Actor2D.js +45 -44
  413. package/Rendering/WebGPU/BindGroup.js +43 -50
  414. package/Rendering/WebGPU/Buffer.js +41 -50
  415. package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
  416. package/Rendering/WebGPU/BufferManager.js +111 -141
  417. package/Rendering/WebGPU/Camera.js +65 -67
  418. package/Rendering/WebGPU/CellArrayMapper.js +621 -388
  419. package/Rendering/WebGPU/CubeAxesActor.js +28 -19
  420. package/Rendering/WebGPU/Device.js +78 -133
  421. package/Rendering/WebGPU/ForwardPass.js +75 -72
  422. package/Rendering/WebGPU/FullScreenQuad.js +25 -18
  423. package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
  424. package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
  425. package/Rendering/WebGPU/HardwareSelector.js +200 -276
  426. package/Rendering/WebGPU/ImageMapper.js +180 -171
  427. package/Rendering/WebGPU/ImageSlice.js +45 -44
  428. package/Rendering/WebGPU/IndexBuffer.js +166 -200
  429. package/Rendering/WebGPU/OpaquePass.js +37 -36
  430. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
  431. package/Rendering/WebGPU/Pipeline.js +37 -51
  432. package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
  433. package/Rendering/WebGPU/PolyDataMapper.js +50 -53
  434. package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
  435. package/Rendering/WebGPU/RenderEncoder.js +68 -88
  436. package/Rendering/WebGPU/RenderWindow.js +262 -376
  437. package/Rendering/WebGPU/Renderer.js +224 -208
  438. package/Rendering/WebGPU/Sampler.js +27 -21
  439. package/Rendering/WebGPU/ScalarBarActor.js +28 -19
  440. package/Rendering/WebGPU/ShaderCache.js +43 -41
  441. package/Rendering/WebGPU/ShaderDescription.js +52 -59
  442. package/Rendering/WebGPU/ShaderModule.js +26 -17
  443. package/Rendering/WebGPU/SimpleMapper.js +185 -121
  444. package/Rendering/WebGPU/SphereMapper.js +200 -130
  445. package/Rendering/WebGPU/StickMapper.js +289 -152
  446. package/Rendering/WebGPU/StorageBuffer.js +100 -115
  447. package/Rendering/WebGPU/Texture.js +79 -99
  448. package/Rendering/WebGPU/TextureManager.js +52 -54
  449. package/Rendering/WebGPU/TextureView.js +40 -43
  450. package/Rendering/WebGPU/Types.js +53 -70
  451. package/Rendering/WebGPU/UniformBuffer.js +158 -184
  452. package/Rendering/WebGPU/VertexInput.js +64 -90
  453. package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
  454. package/Rendering/WebGPU/Volume.js +52 -51
  455. package/Rendering/WebGPU/VolumePass.js +218 -239
  456. package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
  457. package/Rendering/WebGPU.js +1 -1
  458. package/Rendering/index.js +5 -5
  459. package/Widgets/Core/AbstractWidget/Constants.js +2 -2
  460. package/Widgets/Core/AbstractWidget.js +49 -58
  461. package/Widgets/Core/AbstractWidgetFactory.js +101 -122
  462. package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
  463. package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
  464. package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
  465. package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
  466. package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
  467. package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
  468. package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
  469. package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
  470. package/Widgets/Core/StateBuilder/originMixin.js +25 -32
  471. package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
  472. package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
  473. package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
  474. package/Widgets/Core/StateBuilder/textMixin.js +10 -6
  475. package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
  476. package/Widgets/Core/StateBuilder.js +120 -149
  477. package/Widgets/Core/WidgetManager/Constants.js +7 -7
  478. package/Widgets/Core/WidgetManager.js +249 -421
  479. package/Widgets/Core/WidgetState.js +48 -57
  480. package/Widgets/Core.js +5 -5
  481. package/Widgets/Manipulators/AbstractManipulator.js +20 -14
  482. package/Widgets/Manipulators/CPRManipulator.js +55 -71
  483. package/Widgets/Manipulators/LineManipulator.js +31 -28
  484. package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
  485. package/Widgets/Manipulators/PickerManipulator.js +65 -0
  486. package/Widgets/Manipulators/PlaneManipulator.js +26 -23
  487. package/Widgets/Manipulators/TrackballManipulator.js +39 -35
  488. package/Widgets/Manipulators.js +4 -2
  489. package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
  490. package/Widgets/Representations/CircleContextRepresentation.js +44 -38
  491. package/Widgets/Representations/ContextRepresentation.js +17 -14
  492. package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
  493. package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
  494. package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
  495. package/Widgets/Representations/GlyphRepresentation.js +107 -152
  496. package/Widgets/Representations/HandleRepresentation.js +17 -14
  497. package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
  498. package/Widgets/Representations/LineHandleRepresentation.js +44 -41
  499. package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
  500. package/Widgets/Representations/PolyLineRepresentation.js +60 -75
  501. package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
  502. package/Widgets/Representations/SphereContextRepresentation.js +19 -27
  503. package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
  504. package/Widgets/Representations/SplineContextRepresentation.js +46 -70
  505. package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
  506. package/Widgets/Representations/WidgetRepresentation.js +99 -134
  507. package/Widgets/Representations.js +13 -13
  508. package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
  509. package/Widgets/Widgets3D/AngleWidget.js +40 -38
  510. package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
  511. package/Widgets/Widgets3D/DistanceWidget.js +38 -36
  512. package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
  513. package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
  514. package/Widgets/Widgets3D/EllipseWidget.js +37 -26
  515. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
  516. package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
  517. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
  518. package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
  519. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
  520. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
  521. package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
  522. package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
  523. package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
  524. package/Widgets/Widgets3D/LabelWidget.js +31 -25
  525. package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
  526. package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
  527. package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
  528. package/Widgets/Widgets3D/LineWidget/state.js +2 -1
  529. package/Widgets/Widgets3D/LineWidget.js +39 -35
  530. package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
  531. package/Widgets/Widgets3D/PaintWidget.js +39 -37
  532. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
  533. package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
  534. package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
  535. package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
  536. package/Widgets/Widgets3D/RectangleWidget.js +37 -25
  537. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
  538. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +133 -209
  539. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  540. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +89 -116
  541. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
  542. package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
  543. package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
  544. package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
  545. package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
  546. package/Widgets/Widgets3D/SeedWidget.js +43 -0
  547. package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
  548. package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
  549. package/Widgets/Widgets3D/ShapeWidget.js +24 -27
  550. package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
  551. package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
  552. package/Widgets/Widgets3D/SphereWidget.js +34 -44
  553. package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
  554. package/Widgets/Widgets3D/SplineWidget.js +43 -39
  555. package/Widgets/Widgets3D.js +15 -15
  556. package/Widgets/index.js +4 -4
  557. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
  558. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  559. package/favicon.js +5 -6
  560. package/index.d.ts +4 -2
  561. package/index.js +4 -3
  562. package/macros.js +4 -1931
  563. package/macros2.js +1684 -0
  564. package/package.json +6 -6
  565. package/vtk.js +18 -31
@@ -1,6 +1,4 @@
1
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
4
2
  import vtkAbstractWidgetFactory from '../Core/AbstractWidgetFactory.js';
5
3
  import vtkPlane from '../../Common/DataModel/Plane.js';
6
4
  import vtkPlaneSource from '../../Filters/Sources/PlaneSource.js';
@@ -16,17 +14,20 @@ import { ViewTypes } from '../Core/WidgetManager/Constants.js';
16
14
  import { mat4 } from 'gl-matrix';
17
15
  import vtkMatrixBuilder from '../../Common/Core/MatrixBuilder.js';
18
16
 
19
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
+ const VTK_INT_MAX = 2147483647;
18
+ const {
19
+ vtkErrorMacro
20
+ } = macro;
20
21
 
21
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
- var VTK_INT_MAX = 2147483647;
23
- var vtkErrorMacro = macro.vtkErrorMacro; // ----------------------------------------------------------------------------
22
+ // ----------------------------------------------------------------------------
24
23
  // Factory
25
24
  // ----------------------------------------------------------------------------
26
25
 
27
26
  function vtkResliceCursorWidget(publicAPI, model) {
28
27
  model.classHierarchy.push('vtkResliceCursorWidget');
29
- model.methodsToLink = ['scaleInPixels']; // --------------------------------------------------------------------------
28
+ model.methodsToLink = ['scaleInPixels'];
29
+
30
+ // --------------------------------------------------------------------------
30
31
  // Private methods
31
32
  // --------------------------------------------------------------------------
32
33
 
@@ -35,25 +36,23 @@ function vtkResliceCursorWidget(publicAPI, model) {
35
36
  * It does not take into account the current view normal. (always axis aligned)
36
37
  * @param {*} viewType axial, coronal or sagittal
37
38
  */
38
-
39
39
  function computeReslicePlaneOrigin(viewType) {
40
- var bounds = model.widgetState.getImage().getBounds();
41
- var center = publicAPI.getWidgetState().getCenter();
42
- var imageCenter = model.widgetState.getImage().getCenter(); // Offset based on the center of the image and how far from it the
40
+ const bounds = model.widgetState.getImage().getBounds();
41
+ const center = publicAPI.getWidgetState().getCenter();
42
+ const imageCenter = model.widgetState.getImage().getCenter();
43
+
44
+ // Offset based on the center of the image and how far from it the
43
45
  // reslice cursor is. This allows us to capture the whole image even
44
46
  // if we resliced in awkward places.
45
-
46
- var offset = [];
47
-
48
- for (var i = 0; i < 3; i++) {
47
+ const offset = [];
48
+ for (let i = 0; i < 3; i++) {
49
49
  offset[i] = -Math.abs(center[i] - imageCenter[i]);
50
50
  offset[i] *= 2; // give us room
51
- } // Now set the size of the plane based on the location of the cursor so as to
52
- // at least completely cover the viewed region
53
-
54
-
55
- var planeSource = vtkPlaneSource.newInstance();
51
+ }
56
52
 
53
+ // Now set the size of the plane based on the location of the cursor so as to
54
+ // at least completely cover the viewed region
55
+ const planeSource = vtkPlaneSource.newInstance();
57
56
  if (viewType === ViewTypes.XZ_PLANE) {
58
57
  planeSource.setOrigin(bounds[0] + offset[0], center[1], bounds[4] + offset[2]);
59
58
  planeSource.setPoint1(bounds[1] - offset[0], center[1], bounds[4] + offset[2]);
@@ -67,93 +66,85 @@ function vtkResliceCursorWidget(publicAPI, model) {
67
66
  planeSource.setPoint1(center[0], bounds[3] - offset[1], bounds[4] + offset[2]);
68
67
  planeSource.setPoint2(center[0], bounds[2] + offset[1], bounds[5] - offset[2]);
69
68
  }
70
-
71
69
  return planeSource;
72
70
  }
71
+
73
72
  /**
74
73
  * Compute the offset between display reslice cursor position and
75
74
  * display focal point position
76
75
  * This will be used to keep the same offset between reslice cursor
77
76
  * center and focal point when needed.
78
77
  */
79
-
80
-
81
78
  function computeFocalPointOffsetFromResliceCursorCenter(viewType, renderer) {
82
- var worldFocalPoint = renderer.getActiveCamera().getFocalPoint();
83
- var worldResliceCenter = model.widgetState.getCenter();
84
- var view = renderer.getRenderWindow().getViews()[0];
85
- var dims = view.getViewportSize(renderer);
86
- var aspect = dims[0] / dims[1];
87
- var displayFocalPoint = renderer.worldToNormalizedDisplay.apply(renderer, _toConsumableArray(worldFocalPoint).concat([aspect]));
88
- var displayResliceCenter = renderer.worldToNormalizedDisplay.apply(renderer, _toConsumableArray(worldResliceCenter).concat([aspect]));
89
- var newOffset = subtract(displayFocalPoint, displayResliceCenter, [0, 0, 0]);
90
- var cameraOffsets = model.widgetState.getCameraOffsets();
79
+ const worldFocalPoint = renderer.getActiveCamera().getFocalPoint();
80
+ const worldResliceCenter = model.widgetState.getCenter();
81
+ const view = renderer.getRenderWindow().getViews()[0];
82
+ const dims = view.getViewportSize(renderer);
83
+ const aspect = dims[0] / dims[1];
84
+ const displayFocalPoint = renderer.worldToNormalizedDisplay(...worldFocalPoint, aspect);
85
+ const displayResliceCenter = renderer.worldToNormalizedDisplay(...worldResliceCenter, aspect);
86
+ const newOffset = subtract(displayFocalPoint, displayResliceCenter, [0, 0, 0]);
87
+ const cameraOffsets = model.widgetState.getCameraOffsets();
91
88
  cameraOffsets[viewType] = newOffset;
92
89
  model.widgetState.setCameraOffsets(cameraOffsets);
93
90
  }
94
-
95
91
  function updateCamera(renderer, normal, viewType, resetFocalPoint, keepCenterFocalDistance) {
96
92
  // When the reslice plane is changed, update the camera to look at the
97
93
  // normal to the reslice plane.
98
- var focalPoint = renderer.getActiveCamera().getFocalPoint();
99
- var distance = renderer.getActiveCamera().getDistance();
100
- var estimatedCameraPosition = multiplyAccumulate(focalPoint, normal, distance, [0, 0, 0]);
101
- var newFocalPoint = focalPoint;
102
94
 
95
+ const focalPoint = renderer.getActiveCamera().getFocalPoint();
96
+ const distance = renderer.getActiveCamera().getDistance();
97
+ const estimatedCameraPosition = multiplyAccumulate(focalPoint, normal, distance, [0, 0, 0]);
98
+ let newFocalPoint = focalPoint;
103
99
  if (resetFocalPoint) {
104
100
  // intersect with the plane to get updated focal point
105
- var intersection = vtkPlane.intersectWithLine(focalPoint, estimatedCameraPosition, model.widgetState.getCenter(), // reslice cursor center
101
+ const intersection = vtkPlane.intersectWithLine(focalPoint, estimatedCameraPosition, model.widgetState.getCenter(),
102
+ // reslice cursor center
106
103
  normal);
107
104
  newFocalPoint = intersection.x;
108
- } // Update the estimated focal point so that it will be at the same
109
- // distance from the reslice center
110
-
105
+ }
111
106
 
107
+ // Update the estimated focal point so that it will be at the same
108
+ // distance from the reslice center
112
109
  if (keepCenterFocalDistance) {
113
- var worldResliceCenter = model.widgetState.getCenter();
114
- var view = renderer.getRenderWindow().getViews()[0];
115
- var dims = view.getViewportSize(renderer);
116
- var aspect = dims[0] / dims[1];
117
- var displayResliceCenter = renderer.worldToNormalizedDisplay.apply(renderer, _toConsumableArray(worldResliceCenter).concat([aspect]));
118
- var realOffset = model.widgetState.getCameraOffsets()[viewType];
119
- var displayFocal = add(displayResliceCenter, realOffset, [0, 0, 0]);
120
- var worldFocal = renderer.normalizedDisplayToWorld.apply(renderer, _toConsumableArray(displayFocal).concat([aspect])); // Reproject focal point on slice in order to keep it on the
110
+ const worldResliceCenter = model.widgetState.getCenter();
111
+ const view = renderer.getRenderWindow().getViews()[0];
112
+ const dims = view.getViewportSize(renderer);
113
+ const aspect = dims[0] / dims[1];
114
+ const displayResliceCenter = renderer.worldToNormalizedDisplay(...worldResliceCenter, aspect);
115
+ const realOffset = model.widgetState.getCameraOffsets()[viewType];
116
+ const displayFocal = add(displayResliceCenter, realOffset, [0, 0, 0]);
117
+ const worldFocal = renderer.normalizedDisplayToWorld(...displayFocal, aspect);
118
+
119
+ // Reproject focal point on slice in order to keep it on the
121
120
  // same plane as the reslice cursor center
122
-
123
- var intersection2 = vtkPlane.intersectWithLine(worldFocal, estimatedCameraPosition, worldResliceCenter, normal);
121
+ const intersection2 = vtkPlane.intersectWithLine(worldFocal, estimatedCameraPosition, worldResliceCenter, normal);
124
122
  newFocalPoint[0] = intersection2.x[0];
125
123
  newFocalPoint[1] = intersection2.x[1];
126
124
  newFocalPoint[2] = intersection2.x[2];
127
125
  }
128
-
129
126
  renderer.getActiveCamera().setFocalPoint(newFocalPoint[0], newFocalPoint[1], newFocalPoint[2]);
130
- var newCameraPosition = multiplyAccumulate(newFocalPoint, normal, distance, [0, 0, 0]);
131
- renderer.getActiveCamera().setPosition(newCameraPosition[0], newCameraPosition[1], newCameraPosition[2]); // Don't clip away any part of the data.
132
- // Renderer may not have yet actor bounds
133
-
134
- var bounds = model.widgetState.getImage().getBounds();
127
+ const newCameraPosition = multiplyAccumulate(newFocalPoint, normal, distance, [0, 0, 0]);
128
+ renderer.getActiveCamera().setPosition(newCameraPosition[0], newCameraPosition[1], newCameraPosition[2]);
135
129
 
130
+ // Don't clip away any part of the data.
131
+ // Renderer may not have yet actor bounds
132
+ const bounds = model.widgetState.getImage().getBounds();
136
133
  if (resetFocalPoint) {
137
134
  renderer.resetCamera(bounds);
138
135
  }
139
-
140
136
  renderer.resetCameraClippingRange(bounds);
141
137
  }
138
+
142
139
  /**
143
140
  * Convenient function to return the widget for a given viewType
144
141
  * @param {string} viewType
145
142
  * @returns the widget instanced in the given viewType.
146
143
  */
147
-
148
-
149
144
  function findWidgetForViewType(viewType) {
150
- return publicAPI.getViewIds().map(function (viewId) {
151
- return publicAPI.getWidgetForView({
152
- viewId: viewId
153
- });
154
- }).find(function (widget) {
155
- return widget.getViewType() === viewType;
156
- });
145
+ return publicAPI.getViewIds().map(viewId => publicAPI.getWidgetForView({
146
+ viewId
147
+ })).find(widget => widget.getViewType() === viewType);
157
148
  }
158
149
  /**
159
150
  * Convenient function to return the ResliceCursorRepresentation for a given viewType
@@ -161,31 +152,30 @@ function vtkResliceCursorWidget(publicAPI, model) {
161
152
  * @returns an array of 3 representations (for line handles, rotation handles, center handle)
162
153
  * or an empty array if the widget has not yet been added to the view type.
163
154
  */
164
-
165
-
166
155
  function findRepresentationsForViewType(viewType) {
167
- var widgetForViewType = findWidgetForViewType(viewType);
156
+ const widgetForViewType = findWidgetForViewType(viewType);
168
157
  return widgetForViewType ? widgetForViewType.getRepresentations() : [];
169
- } // --------------------------------------------------------------------------
158
+ }
159
+
160
+ // --------------------------------------------------------------------------
170
161
  // initialization
171
162
  // --------------------------------------------------------------------------
172
163
 
173
-
174
- publicAPI.getRepresentationsForViewType = function (viewType) {
164
+ publicAPI.getRepresentationsForViewType = viewType => {
175
165
  switch (viewType) {
176
166
  case ViewTypes.XY_PLANE:
177
167
  case ViewTypes.XZ_PLANE:
178
168
  case ViewTypes.YZ_PLANE:
179
169
  return [{
180
170
  builder: vtkLineHandleRepresentation,
181
- labels: ["lineIn".concat(viewTypeToPlaneName[viewType])],
171
+ labels: [`lineIn${viewTypeToPlaneName[viewType]}`],
182
172
  initialValues: {
183
173
  useActiveColor: false,
184
174
  scaleInPixels: model.scaleInPixels
185
175
  }
186
176
  }, {
187
177
  builder: vtkSphereHandleRepresentation,
188
- labels: ["rotationIn".concat(viewTypeToPlaneName[viewType])],
178
+ labels: [`rotationIn${viewTypeToPlaneName[viewType]}`],
189
179
  initialValues: {
190
180
  useActiveColor: false,
191
181
  scaleInPixels: model.scaleInPixels
@@ -198,7 +188,6 @@ function vtkResliceCursorWidget(publicAPI, model) {
198
188
  scaleInPixels: model.scaleInPixels
199
189
  }
200
190
  }];
201
-
202
191
  case ViewTypes.DEFAULT:
203
192
  case ViewTypes.GEOMETRY:
204
193
  case ViewTypes.SLICE:
@@ -207,30 +196,29 @@ function vtkResliceCursorWidget(publicAPI, model) {
207
196
  return [];
208
197
  }
209
198
  };
210
-
211
- publicAPI.setImage = function (image) {
199
+ publicAPI.setImage = image => {
212
200
  model.widgetState.setImage(image);
213
- var center = image.getCenter();
201
+ const center = image.getCenter();
214
202
  model.widgetState.setCenter(center);
215
203
  updateState(model.widgetState, model.scaleInPixels, model.rotationHandlePosition);
216
204
  };
217
-
218
- publicAPI.setCenter = function (center) {
205
+ publicAPI.setCenter = center => {
219
206
  model.widgetState.setCenter(center);
220
207
  updateState(model.widgetState, model.scaleInPixels, model.rotationHandlePosition);
221
208
  publicAPI.modified();
222
- }; // --------------------------------------------------------------------------
209
+ };
210
+
211
+ // --------------------------------------------------------------------------
223
212
  // Methods
224
213
  // --------------------------------------------------------------------------
225
214
 
226
-
227
- publicAPI.updateCameraPoints = function (renderer, viewType, resetFocalPoint, keepCenterFocalDistance, computeFocalPointOffset) {
215
+ publicAPI.updateCameraPoints = (renderer, viewType, resetFocalPoint, keepCenterFocalDistance, computeFocalPointOffset) => {
228
216
  publicAPI.resetCamera(renderer, viewType, resetFocalPoint, keepCenterFocalDistance);
229
-
230
217
  if (computeFocalPointOffset) {
231
218
  computeFocalPointOffsetFromResliceCursorCenter(viewType, renderer);
232
219
  }
233
220
  };
221
+
234
222
  /**
235
223
  *
236
224
  * @param {*} renderer
@@ -240,242 +228,213 @@ function vtkResliceCursorWidget(publicAPI, model) {
240
228
  * in order to keep the same distance to the center (according to the computed focal point
241
229
  * shift)
242
230
  */
243
-
244
-
245
- publicAPI.resetCamera = function (renderer, viewType, resetFocalPoint, keepCenterFocalDistance) {
246
- var _renderer$getActiveCa, _renderer$getActiveCa2;
247
-
248
- var center = model.widgetState.getImage().getCenter();
249
- var focalPoint = renderer.getActiveCamera().getFocalPoint();
250
- var position = renderer.getActiveCamera().getPosition(); // Distance is preserved
251
-
252
- var distance = Math.sqrt(distance2BetweenPoints(position, focalPoint));
253
- var normal = publicAPI.getPlaneNormalFromViewType(viewType); // ResetFocalPoint will reset focal point to the center of the image
254
-
255
- var estimatedFocalPoint = resetFocalPoint ? center : focalPoint;
256
- var estimatedCameraPosition = multiplyAccumulate(estimatedFocalPoint, normal, distance, [0, 0, 0]);
257
-
258
- (_renderer$getActiveCa = renderer.getActiveCamera()).setFocalPoint.apply(_renderer$getActiveCa, _toConsumableArray(estimatedFocalPoint));
259
-
260
- (_renderer$getActiveCa2 = renderer.getActiveCamera()).setPosition.apply(_renderer$getActiveCa2, _toConsumableArray(estimatedCameraPosition));
261
-
262
- renderer.getActiveCamera().setViewUp(model.widgetState.getPlanes()[viewType].viewUp); // Project focalPoint onto image plane and preserve distance
263
-
231
+ publicAPI.resetCamera = (renderer, viewType, resetFocalPoint, keepCenterFocalDistance) => {
232
+ const center = model.widgetState.getImage().getCenter();
233
+ const focalPoint = renderer.getActiveCamera().getFocalPoint();
234
+ const position = renderer.getActiveCamera().getPosition();
235
+
236
+ // Distance is preserved
237
+ const distance = Math.sqrt(distance2BetweenPoints(position, focalPoint));
238
+ const normal = publicAPI.getPlaneNormalFromViewType(viewType);
239
+
240
+ // ResetFocalPoint will reset focal point to the center of the image
241
+ const estimatedFocalPoint = resetFocalPoint ? center : focalPoint;
242
+ const estimatedCameraPosition = multiplyAccumulate(estimatedFocalPoint, normal, distance, [0, 0, 0]);
243
+ renderer.getActiveCamera().setFocalPoint(...estimatedFocalPoint);
244
+ renderer.getActiveCamera().setPosition(...estimatedCameraPosition);
245
+ renderer.getActiveCamera().setViewUp(model.widgetState.getPlanes()[viewType].viewUp);
246
+
247
+ // Project focalPoint onto image plane and preserve distance
264
248
  updateCamera(renderer, normal, viewType, resetFocalPoint, keepCenterFocalDistance);
265
249
  };
266
-
267
- publicAPI.getPlaneSource = function (viewType) {
250
+ publicAPI.getPlaneSource = viewType => {
268
251
  // Compute original (i.e. before rotation) plane (i.e. origin, p1, p2)
269
252
  // centered on cursor center.
270
- var planeSource = computeReslicePlaneOrigin(viewType);
271
- var _model$widgetState$ge = model.widgetState.getPlanes()[viewType],
272
- normal = _model$widgetState$ge.normal,
273
- viewUp = _model$widgetState$ge.viewUp; // Adapt plane orientation in order to fit the correct viewUp
253
+ const planeSource = computeReslicePlaneOrigin(viewType);
254
+ const {
255
+ normal,
256
+ viewUp
257
+ } = model.widgetState.getPlanes()[viewType];
258
+ // Adapt plane orientation in order to fit the correct viewUp
274
259
  // so that the rotations will be more understandable than now.
260
+ transformPlane(planeSource, model.widgetState.getCenter(), normal, viewUp);
275
261
 
276
- transformPlane(planeSource, model.widgetState.getCenter(), normal, viewUp); // Clip to bounds
277
-
278
- var boundedOrigin = _toConsumableArray(planeSource.getOrigin());
279
-
280
- var boundedP1 = _toConsumableArray(planeSource.getPoint1());
281
-
282
- var boundedP2 = _toConsumableArray(planeSource.getPoint2());
283
-
262
+ // Clip to bounds
263
+ const boundedOrigin = [...planeSource.getOrigin()];
264
+ const boundedP1 = [...planeSource.getPoint1()];
265
+ const boundedP2 = [...planeSource.getPoint2()];
284
266
  boundPlane(model.widgetState.getImage().getBounds(), boundedOrigin, boundedP1, boundedP2);
285
- planeSource.setOrigin.apply(planeSource, _toConsumableArray(boundedOrigin));
286
- planeSource.setPoint1.apply(planeSource, _toConsumableArray(boundedP1));
287
- planeSource.setPoint2.apply(planeSource, _toConsumableArray(boundedP2));
267
+ planeSource.setOrigin(...boundedOrigin);
268
+ planeSource.setPoint1(...boundedP1);
269
+ planeSource.setPoint2(...boundedP2);
288
270
  return planeSource;
289
271
  };
290
-
291
- publicAPI.getResliceAxes = function (viewType) {
272
+ publicAPI.getResliceAxes = viewType => {
292
273
  // Compute original (i.e. before rotation) plane (i.e. origin, p1, p2)
293
274
  // centered on cursor center.
294
- var planeSource = publicAPI.getPlaneSource(viewType); // TBD: use normal from planeSource ?
295
-
296
- var normal = model.widgetState.getPlanes()[viewType].normal;
297
- var planeOrigin = planeSource.getOrigin();
298
- var p1 = planeSource.getPoint1();
299
- var planeAxis1 = [];
275
+ const planeSource = publicAPI.getPlaneSource(viewType);
276
+
277
+ // TBD: use normal from planeSource ?
278
+ const {
279
+ normal
280
+ } = model.widgetState.getPlanes()[viewType];
281
+ const planeOrigin = planeSource.getOrigin();
282
+ const p1 = planeSource.getPoint1();
283
+ const planeAxis1 = [];
300
284
  subtract(p1, planeOrigin, planeAxis1);
301
285
  normalize(planeAxis1);
302
- var p2 = planeSource.getPoint2();
303
- var planeAxis2 = [];
286
+ const p2 = planeSource.getPoint2();
287
+ const planeAxis2 = [];
304
288
  subtract(p2, planeOrigin, planeAxis2);
305
289
  normalize(planeAxis2);
306
- var newResliceAxes = mat4.identity(new Float64Array(16));
307
-
308
- for (var i = 0; i < 3; i++) {
290
+ const newResliceAxes = mat4.identity(new Float64Array(16));
291
+ for (let i = 0; i < 3; i++) {
309
292
  newResliceAxes[i] = planeAxis1[i];
310
293
  newResliceAxes[4 + i] = planeAxis2[i];
311
294
  newResliceAxes[8 + i] = normal[i];
312
295
  newResliceAxes[12 + i] = planeOrigin[i];
313
296
  }
314
-
315
297
  return newResliceAxes;
316
298
  };
317
-
318
- publicAPI.updateReslicePlane = function (imageReslice, viewType) {
299
+ publicAPI.updateReslicePlane = (imageReslice, viewType) => {
319
300
  // Calculate appropriate pixel spacing for the reslicing
320
- var spacing = model.widgetState.getImage().getSpacing();
321
- var planeSource = publicAPI.getPlaneSource(viewType);
322
- var newResliceAxes = publicAPI.getResliceAxes(viewType);
323
- var planeOrigin = planeSource.getOrigin();
324
- var p1 = planeSource.getPoint1();
325
- var planeAxis1 = subtract(p1, planeOrigin, []);
326
- var planeSizeX = normalize(planeAxis1);
327
- var p2 = planeSource.getPoint2();
328
- var planeAxis2 = subtract(p2, planeOrigin, []);
329
- var planeSizeY = normalize(planeAxis2);
330
- var spacingX = Math.abs(planeAxis1[0] * spacing[0]) + Math.abs(planeAxis1[1] * spacing[1]) + Math.abs(planeAxis1[2] * spacing[2]);
331
- var spacingY = Math.abs(planeAxis2[0] * spacing[0]) + Math.abs(planeAxis2[1] * spacing[1]) + Math.abs(planeAxis2[2] * spacing[2]); // Compute a new set of resliced extents
332
-
333
- var extentX = 0;
334
- var extentY = 0; // Pad extent up to a power of two for efficient texture mapping
301
+ const spacing = model.widgetState.getImage().getSpacing();
302
+ const planeSource = publicAPI.getPlaneSource(viewType);
303
+ const newResliceAxes = publicAPI.getResliceAxes(viewType);
304
+ const planeOrigin = planeSource.getOrigin();
305
+ const p1 = planeSource.getPoint1();
306
+ const planeAxis1 = subtract(p1, planeOrigin, []);
307
+ const planeSizeX = normalize(planeAxis1);
308
+ const p2 = planeSource.getPoint2();
309
+ const planeAxis2 = subtract(p2, planeOrigin, []);
310
+ const planeSizeY = normalize(planeAxis2);
311
+ const spacingX = Math.abs(planeAxis1[0] * spacing[0]) + Math.abs(planeAxis1[1] * spacing[1]) + Math.abs(planeAxis1[2] * spacing[2]);
312
+ const spacingY = Math.abs(planeAxis2[0] * spacing[0]) + Math.abs(planeAxis2[1] * spacing[1]) + Math.abs(planeAxis2[2] * spacing[2]);
313
+
314
+ // Compute a new set of resliced extents
315
+ let extentX = 0;
316
+ let extentY = 0;
317
+
318
+ // Pad extent up to a power of two for efficient texture mapping
335
319
  // make sure we're working with valid values
320
+ const realExtentX = spacingX === 0 ? Number.MAX_SAFE_INTEGER : planeSizeX / spacingX;
336
321
 
337
- var realExtentX = spacingX === 0 ? Number.MAX_SAFE_INTEGER : planeSizeX / spacingX; // Sanity check the input data:
322
+ // Sanity check the input data:
338
323
  // * if realExtentX is too large, extentX will wrap
339
324
  // * if spacingX is 0, things will blow up.
340
325
 
341
- var value = VTK_INT_MAX >> 1; // eslint-disable-line no-bitwise
326
+ const value = VTK_INT_MAX >> 1; // eslint-disable-line no-bitwise
342
327
 
343
328
  if (realExtentX > value) {
344
329
  vtkErrorMacro('Invalid X extent: ', realExtentX, ' on view type : ', viewType);
345
330
  extentX = 0;
346
331
  } else {
347
332
  extentX = 1;
348
-
349
333
  while (extentX < realExtentX) {
350
334
  extentX <<= 1; // eslint-disable-line no-bitwise
351
335
  }
352
- } // make sure extentY doesn't wrap during padding
353
-
354
-
355
- var realExtentY = spacingY === 0 ? Number.MAX_SAFE_INTEGER : planeSizeY / spacingY;
336
+ }
356
337
 
338
+ // make sure extentY doesn't wrap during padding
339
+ const realExtentY = spacingY === 0 ? Number.MAX_SAFE_INTEGER : planeSizeY / spacingY;
357
340
  if (realExtentY > value) {
358
341
  vtkErrorMacro('Invalid Y extent:', realExtentY, ' on view type : ', viewType);
359
342
  extentY = 0;
360
343
  } else {
361
344
  extentY = 1;
362
-
363
345
  while (extentY < realExtentY) {
364
346
  extentY <<= 1; // eslint-disable-line no-bitwise
365
347
  }
366
348
  }
367
349
 
368
- var outputSpacingX = extentX === 0 ? 1.0 : planeSizeX / extentX;
369
- var outputSpacingY = extentY === 0 ? 1.0 : planeSizeY / extentY;
370
- var modified = imageReslice.setResliceAxes(newResliceAxes);
350
+ const outputSpacingX = extentX === 0 ? 1.0 : planeSizeX / extentX;
351
+ const outputSpacingY = extentY === 0 ? 1.0 : planeSizeY / extentY;
352
+ let modified = imageReslice.setResliceAxes(newResliceAxes);
371
353
  modified = imageReslice.setOutputSpacing([outputSpacingX, outputSpacingY, 1]) || modified;
372
354
  modified = imageReslice.setOutputOrigin([0.5 * outputSpacingX, 0.5 * outputSpacingY, 0]) || modified;
373
355
  modified = imageReslice.setOutputExtent([0, extentX - 1, 0, extentY - 1, 0, 0]) || modified;
374
356
  return modified;
375
357
  };
358
+
376
359
  /**
377
360
  * Returns a plane source with origin at cursor center and
378
361
  * normal from the view.
379
362
  * @param {ViewType} type: Axial, Coronal or Sagittal
380
363
  */
381
-
382
-
383
- publicAPI.getPlaneSourceFromViewType = function (type) {
384
- var planeSource = vtkPlaneSource.newInstance();
385
- var origin = publicAPI.getWidgetState().getCenter();
386
- var planeNormal = publicAPI.getPlaneNormalFromViewType(type);
364
+ publicAPI.getPlaneSourceFromViewType = type => {
365
+ const planeSource = vtkPlaneSource.newInstance();
366
+ const origin = publicAPI.getWidgetState().getCenter();
367
+ const planeNormal = publicAPI.getPlaneNormalFromViewType(type);
387
368
  planeSource.setNormal(planeNormal);
388
369
  planeSource.setOrigin(origin);
389
370
  return planeSource;
390
371
  };
372
+ publicAPI.getPlaneNormalFromViewType = viewType => publicAPI.getWidgetState().getPlanes()[viewType].normal;
391
373
 
392
- publicAPI.getPlaneNormalFromViewType = function (viewType) {
393
- return publicAPI.getWidgetState().getPlanes()[viewType].normal;
394
- };
395
374
  /**
396
375
  * Returns the normals of the planes that are not viewType.
397
376
  * @param {ViewType} viewType ViewType to extract other normals
398
377
  */
378
+ publicAPI.getOtherPlaneNormals = viewType => [ViewTypes.YZ_PLANE, ViewTypes.XZ_PLANE, ViewTypes.XY_PLANE].filter(vt => vt !== viewType).map(vt => publicAPI.getPlaneNormalFromViewType(vt));
399
379
 
400
-
401
- publicAPI.getOtherPlaneNormals = function (viewType) {
402
- return [ViewTypes.YZ_PLANE, ViewTypes.XZ_PLANE, ViewTypes.XY_PLANE].filter(function (vt) {
403
- return vt !== viewType;
404
- }).map(function (vt) {
405
- return publicAPI.getPlaneNormalFromViewType(vt);
406
- });
407
- };
408
380
  /**
409
381
  * Return the reslice cursor matrix built as such: [YZ, XZ, XY, center]
410
382
  */
411
-
412
-
413
- publicAPI.getResliceMatrix = function () {
414
- var _vtkMatrixBuilder$bui, _vtkMatrixBuilder$bui2;
415
-
416
- var resliceMatrix = mat4.identity(new Float64Array(16));
417
-
418
- for (var i = 0; i < 3; i++) {
383
+ publicAPI.getResliceMatrix = () => {
384
+ const resliceMatrix = mat4.identity(new Float64Array(16));
385
+ for (let i = 0; i < 3; i++) {
419
386
  resliceMatrix[4 * i + 0] = publicAPI.getPlaneNormalFromViewType(ViewTypes.YZ_PLANE)[i];
420
387
  resliceMatrix[4 * i + 1] = publicAPI.getPlaneNormalFromViewType(ViewTypes.XZ_PLANE)[i];
421
388
  resliceMatrix[4 * i + 2] = publicAPI.getPlaneNormalFromViewType(ViewTypes.XY_PLANE)[i];
422
389
  }
423
-
424
- var origin = publicAPI.getWidgetState().getCenter();
425
-
426
- var m = (_vtkMatrixBuilder$bui = (_vtkMatrixBuilder$bui2 = vtkMatrixBuilder.buildFromRadian()).translate.apply(_vtkMatrixBuilder$bui2, _toConsumableArray(origin)).multiply(resliceMatrix)).translate.apply(_vtkMatrixBuilder$bui, _toConsumableArray(multiplyScalar(_toConsumableArray(origin), -1))).getMatrix();
427
-
390
+ const origin = publicAPI.getWidgetState().getCenter();
391
+ const m = vtkMatrixBuilder.buildFromRadian().translate(...origin).multiply(resliceMatrix).translate(...multiplyScalar([...origin], -1)).getMatrix();
428
392
  return m;
429
393
  };
430
-
431
- publicAPI.getDisplayScaleParams = function () {
432
- return [ViewTypes.YZ_PLANE, ViewTypes.XZ_PLANE, ViewTypes.XY_PLANE].reduce(function (res, viewType) {
433
- var _findRepresentationsF, _findRepresentationsF2;
434
-
435
- res[viewType] = (_findRepresentationsF = findRepresentationsForViewType(viewType)[0]) === null || _findRepresentationsF === void 0 ? void 0 : (_findRepresentationsF2 = _findRepresentationsF.getDisplayScaleParams) === null || _findRepresentationsF2 === void 0 ? void 0 : _findRepresentationsF2.call(_findRepresentationsF);
436
- return res;
437
- }, {});
438
- };
439
-
440
- publicAPI.setScaleInPixels = macro.chain(publicAPI.setScaleInPixels, function (scale) {
441
- publicAPI.getViewWidgets().forEach(function (w) {
442
- return w.setScaleInPixels(scale);
443
- });
394
+ publicAPI.getDisplayScaleParams = () => [ViewTypes.YZ_PLANE, ViewTypes.XZ_PLANE, ViewTypes.XY_PLANE].reduce((res, viewType) => {
395
+ res[viewType] = findRepresentationsForViewType(viewType)[0]?.getDisplayScaleParams?.();
396
+ return res;
397
+ }, {});
398
+ publicAPI.setScaleInPixels = macro.chain(publicAPI.setScaleInPixels, scale => {
399
+ publicAPI.getViewWidgets().forEach(w => w.setScaleInPixels(scale));
444
400
  updateState(model.widgetState, model.scaleInPixels, model.rotationHandlePosition);
445
401
  });
446
- } // ----------------------------------------------------------------------------
402
+ }
447
403
 
404
+ // ----------------------------------------------------------------------------
448
405
  /**
449
406
  * Initializes the model.
450
407
  * @param {*} initialValues optional object of member variables. initialValues.planes is an optional list of axis names (e.g. ['X', 'Y'])
451
408
  * @returns the initial model object
452
409
  */
410
+ const defaultValues = initialValues => ({
411
+ behavior: widgetBehavior,
412
+ widgetState: generateState(initialValues.planes),
413
+ rotationHandlePosition: 0.5,
414
+ scaleInPixels: true,
415
+ manipulator: vtkPlanePointManipulator.newInstance(),
416
+ ...initialValues
417
+ });
453
418
 
454
-
455
- var defaultValues = function defaultValues(initialValues) {
456
- return _objectSpread({
457
- behavior: widgetBehavior,
458
- widgetState: generateState(initialValues.planes),
459
- rotationHandlePosition: 0.5,
460
- scaleInPixels: true,
461
- manipulator: vtkPlanePointManipulator.newInstance()
462
- }, initialValues);
463
- }; // ----------------------------------------------------------------------------
464
-
419
+ // ----------------------------------------------------------------------------
465
420
 
466
421
  function extend(publicAPI, model) {
467
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
422
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
468
423
  Object.assign(model, defaultValues(initialValues));
469
424
  vtkAbstractWidgetFactory.extend(publicAPI, model, initialValues);
470
425
  macro.setGet(publicAPI, model, ['scaleInPixels', 'rotationHandlePosition', 'manipulator']);
471
426
  vtkResliceCursorWidget(publicAPI, model);
472
- } // ----------------------------------------------------------------------------
427
+ }
428
+
429
+ // ----------------------------------------------------------------------------
473
430
 
474
- var newInstance = macro.newInstance(extend, 'vtkResliceCursorWidget'); // ----------------------------------------------------------------------------
431
+ const newInstance = macro.newInstance(extend, 'vtkResliceCursorWidget');
432
+
433
+ // ----------------------------------------------------------------------------
475
434
 
476
435
  var vtkResliceCursorWidget$1 = {
477
- newInstance: newInstance,
478
- extend: extend
436
+ newInstance,
437
+ extend
479
438
  };
480
439
 
481
440
  export { vtkResliceCursorWidget$1 as default, extend, newInstance };