@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 _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
- import macro from '../../../macros.js';
1
+ import { m as macro } from '../../../macros2.js';
4
2
  import vtkBoundingBox from '../../../Common/DataModel/BoundingBox.js';
5
3
  import vtkLine from '../../../Common/DataModel/Line.js';
6
4
  import { k as add, l as normalize, s as subtract, d as dot, j as cross, m as multiplyAccumulate, w as multiplyScalar, T as signedAngleBetweenVectors } from '../../../Common/Core/Math/index.js';
@@ -8,151 +6,117 @@ import { getLineNames, getOtherLineName, updateState, boundPointOnPlane, getLine
8
6
  import { InteractionMethodsName, ScrollingMethods, planeNameToViewType } from './Constants.js';
9
7
 
10
8
  function widgetBehavior(publicAPI, model) {
11
- var _publicAPI$setCursorS;
12
-
13
9
  model._isDragging = false;
14
- var isScrolling = false;
15
- var previousPosition;
10
+ let isScrolling = false;
11
+ let previousPosition;
16
12
  macro.setGet(publicAPI, model, ['keepOrthogonality', {
17
13
  type: 'object',
18
14
  name: 'cursorStyles'
19
- }]); // Set default value for cursorStyles
20
-
21
- publicAPI.setCursorStyles((_publicAPI$setCursorS = {}, _defineProperty(_publicAPI$setCursorS, InteractionMethodsName.TranslateCenter, 'move'), _defineProperty(_publicAPI$setCursorS, InteractionMethodsName.RotateLine, 'alias'), _defineProperty(_publicAPI$setCursorS, InteractionMethodsName.TranslateAxis, 'pointer'), _defineProperty(_publicAPI$setCursorS, "default", 'default'), _publicAPI$setCursorS));
22
-
23
- publicAPI.setEnableTranslation = function (enable) {
15
+ }]);
16
+
17
+ // Set default value for cursorStyles
18
+ publicAPI.setCursorStyles({
19
+ [InteractionMethodsName.TranslateCenter]: 'move',
20
+ [InteractionMethodsName.RotateLine]: 'alias',
21
+ [InteractionMethodsName.TranslateAxis]: 'pointer',
22
+ default: 'default'
23
+ });
24
+ publicAPI.setEnableTranslation = enable => {
24
25
  model.representations[0].setPickable(enable); // line handle
25
-
26
26
  model.representations[2].setPickable(enable); // center handle
27
27
  };
28
28
 
29
- publicAPI.setEnableRotation = function (enable) {
29
+ publicAPI.setEnableRotation = enable => {
30
30
  model.representations[1].setPickable(enable); // rotation handle
31
- }; // FIXME: label information should be accessible from activeState instead of parent state.
32
-
31
+ };
33
32
 
34
- publicAPI.getActiveInteraction = function () {
33
+ // FIXME: label information should be accessible from activeState instead of parent state.
34
+ publicAPI.getActiveInteraction = () => {
35
35
  if (model.widgetState.getStatesWithLabel('rotation').includes(model.activeState)) {
36
36
  return InteractionMethodsName.RotateLine;
37
37
  }
38
-
39
38
  if (model.widgetState.getStatesWithLabel('line').includes(model.activeState)) {
40
39
  return InteractionMethodsName.TranslateAxis;
41
40
  }
42
-
43
41
  if (model.widgetState.getStatesWithLabel('center').includes(model.activeState)) {
44
42
  return InteractionMethodsName.TranslateCenter;
45
43
  }
46
-
47
44
  return null;
48
45
  };
46
+
49
47
  /**
50
48
  * ActiveState can be RotationHandle or a LineHandle
51
49
  * @returns 'YinX', 'ZinX', 'XinY', 'ZinY', 'XinZ' or 'YinZ'
52
50
  */
51
+ publicAPI.getActiveLineName = () => getLineNames(model.widgetState).find(lineName => model.widgetState.getStatesWithLabel(lineName).includes(model.activeState));
53
52
 
53
+ // FIXME: label information should be accessible from activeState instead of parent state.
54
+ publicAPI.getActiveLineHandle = () => model.widgetState[`getAxis${publicAPI.getActiveLineName()}`]?.();
54
55
 
55
- publicAPI.getActiveLineName = function () {
56
- return getLineNames(model.widgetState).find(function (lineName) {
57
- return model.widgetState.getStatesWithLabel(lineName).includes(model.activeState);
58
- });
59
- }; // FIXME: label information should be accessible from activeState instead of parent state.
60
-
61
-
62
- publicAPI.getActiveLineHandle = function () {
63
- var _model$widgetState$, _model$widgetState;
64
-
65
- return (_model$widgetState$ = (_model$widgetState = model.widgetState)["getAxis".concat(publicAPI.getActiveLineName())]) === null || _model$widgetState$ === void 0 ? void 0 : _model$widgetState$.call(_model$widgetState);
66
- };
67
56
  /**
68
57
  * Return the line handle of the other line in the same view.
69
58
  * @param {string} lineName name of the line (YinX, ZinX, XinY, ZinY, XinZ, YinZ)
70
59
  * @returns ZinX if lineName == YinX, YinX if lineName == ZinX, ZinY if lineName == XinY...
71
60
  */
61
+ publicAPI.getOtherLineHandle = lineName => model.widgetState[`getAxis${getOtherLineName(model.widgetState, lineName)}`]?.();
72
62
 
73
-
74
- publicAPI.getOtherLineHandle = function (lineName) {
75
- var _model$widgetState$2, _model$widgetState2;
76
-
77
- return (_model$widgetState$2 = (_model$widgetState2 = model.widgetState)["getAxis".concat(getOtherLineName(model.widgetState, lineName))]) === null || _model$widgetState$2 === void 0 ? void 0 : _model$widgetState$2.call(_model$widgetState2);
78
- }; // FIXME: label information should be accessible from activeState instead of parent state.
79
-
63
+ // FIXME: label information should be accessible from activeState instead of parent state.
80
64
  /**
81
65
  * There are 2 rotation handles per axis: 'point0' and 'point1'.
82
66
  * This function returns which rotation handle (point0 or point1) is currently active.
83
67
  * ActiveState must be a RotationHandle.
84
68
  * @returns 'point0', 'point1' or null if no point is active (e.g. line is being rotated)
85
69
  */
86
-
87
-
88
- publicAPI.getActiveRotationPointName = function () {
70
+ publicAPI.getActiveRotationPointName = () => {
89
71
  if (model.widgetState.getStatesWithLabel('point0').includes(model.activeState)) {
90
72
  return 'point0';
91
73
  }
92
-
93
74
  if (model.widgetState.getStatesWithLabel('point1').includes(model.activeState)) {
94
75
  return 'point1';
95
76
  }
96
-
97
77
  return null;
98
78
  };
99
-
100
- publicAPI.startScrolling = function (newPosition) {
79
+ publicAPI.startScrolling = newPosition => {
101
80
  if (newPosition) {
102
81
  previousPosition = newPosition;
103
82
  }
104
-
105
83
  isScrolling = true;
106
84
  publicAPI.startInteraction();
107
85
  };
108
-
109
- publicAPI.endScrolling = function () {
86
+ publicAPI.endScrolling = () => {
110
87
  isScrolling = false;
111
88
  publicAPI.endInteraction();
112
89
  };
113
-
114
- publicAPI.updateCursor = function () {
115
- var cursorStyles = publicAPI.getCursorStyles();
116
-
90
+ publicAPI.updateCursor = () => {
91
+ const cursorStyles = publicAPI.getCursorStyles();
117
92
  if (cursorStyles) {
118
93
  switch (publicAPI.getActiveInteraction()) {
119
94
  case InteractionMethodsName.TranslateCenter:
120
95
  model._apiSpecificRenderWindow.setCursor(cursorStyles.translateCenter);
121
-
122
96
  break;
123
-
124
97
  case InteractionMethodsName.RotateLine:
125
98
  model._apiSpecificRenderWindow.setCursor(cursorStyles.rotateLine);
126
-
127
99
  break;
128
-
129
100
  case InteractionMethodsName.TranslateAxis:
130
101
  model._apiSpecificRenderWindow.setCursor(cursorStyles.translateAxis);
131
-
132
102
  break;
133
-
134
103
  default:
135
104
  model._apiSpecificRenderWindow.setCursor(cursorStyles.default);
136
-
137
105
  break;
138
106
  }
139
107
  }
140
108
  };
141
-
142
- publicAPI.handleLeftButtonPress = function (callData) {
109
+ publicAPI.handleLeftButtonPress = callData => {
143
110
  if (model.activeState && model.activeState.getActive()) {
144
- var _model$activeState$ge, _model$activeState, _model$activeState$ge2;
145
-
146
111
  model._isDragging = true;
147
- var viewType = model.viewType;
148
- var currentPlaneNormal = model.widgetState.getPlanes()[viewType].normal;
149
- var manipulator = (_model$activeState$ge = (_model$activeState = model.activeState) === null || _model$activeState === void 0 ? void 0 : (_model$activeState$ge2 = _model$activeState.getManipulator) === null || _model$activeState$ge2 === void 0 ? void 0 : _model$activeState$ge2.call(_model$activeState)) !== null && _model$activeState$ge !== void 0 ? _model$activeState$ge : model.manipulator;
112
+ const viewType = model.viewType;
113
+ const currentPlaneNormal = model.widgetState.getPlanes()[viewType].normal;
114
+ const manipulator = model.activeState?.getManipulator?.() ?? model.manipulator;
150
115
  manipulator.setWidgetOrigin(model.widgetState.getCenter());
151
116
  manipulator.setWidgetNormal(currentPlaneNormal);
152
-
153
- var _manipulator$handleEv = manipulator.handleEvent(callData, model._apiSpecificRenderWindow),
154
- worldCoords = _manipulator$handleEv.worldCoords;
155
-
117
+ const {
118
+ worldCoords
119
+ } = manipulator.handleEvent(callData, model._apiSpecificRenderWindow);
156
120
  previousPosition = worldCoords;
157
121
  publicAPI.startInteraction();
158
122
  } else if (model.widgetState.getScrollingMethod() === ScrollingMethods.LEFT_MOUSE_BUTTON) {
@@ -160,273 +124,233 @@ function widgetBehavior(publicAPI, model) {
160
124
  } else {
161
125
  return macro.VOID;
162
126
  }
163
-
164
127
  return macro.EVENT_ABORT;
165
128
  };
166
-
167
- publicAPI.handleMouseMove = function (callData) {
129
+ publicAPI.handleMouseMove = callData => {
168
130
  if (model._isDragging) {
169
131
  return publicAPI.handleEvent(callData);
170
132
  }
171
-
172
133
  if (isScrolling) {
173
134
  if (previousPosition.y !== callData.position.y) {
174
- var step = previousPosition.y - callData.position.y;
135
+ const step = previousPosition.y - callData.position.y;
175
136
  publicAPI.translateCenterOnPlaneDirection(step);
176
137
  previousPosition = callData.position;
177
138
  publicAPI.invokeInternalInteractionEvent();
178
139
  }
179
140
  }
180
-
181
141
  return macro.VOID;
182
142
  };
183
-
184
- publicAPI.handleLeftButtonRelease = function () {
143
+ publicAPI.handleLeftButtonRelease = () => {
185
144
  if (model._isDragging || isScrolling) {
186
145
  publicAPI.endScrolling();
187
146
  }
188
-
189
147
  model._isDragging = false;
190
148
  model.widgetState.deactivate();
191
149
  };
192
-
193
- publicAPI.handleRightButtonPress = function (calldata) {
150
+ publicAPI.handleRightButtonPress = calldata => {
194
151
  if (model.widgetState.getScrollingMethod() === ScrollingMethods.RIGHT_MOUSE_BUTTON) {
195
152
  publicAPI.startScrolling(calldata.position);
196
153
  }
197
154
  };
198
-
199
- publicAPI.handleRightButtonRelease = function () {
155
+ publicAPI.handleRightButtonRelease = () => {
200
156
  if (model.widgetState.getScrollingMethod() === ScrollingMethods.RIGHT_MOUSE_BUTTON) {
201
157
  publicAPI.endScrolling();
202
158
  }
203
159
  };
204
-
205
- publicAPI.handleStartMouseWheel = function () {
160
+ publicAPI.handleStartMouseWheel = () => {
206
161
  publicAPI.startInteraction();
207
162
  };
208
-
209
- publicAPI.handleMouseWheel = function (calldata) {
210
- var step = calldata.spinY;
163
+ publicAPI.handleMouseWheel = calldata => {
164
+ const step = calldata.spinY;
211
165
  isScrolling = true;
212
166
  publicAPI.translateCenterOnPlaneDirection(step);
213
167
  publicAPI.invokeInternalInteractionEvent();
214
168
  isScrolling = false;
215
169
  return macro.EVENT_ABORT;
216
170
  };
217
-
218
- publicAPI.handleEndMouseWheel = function () {
171
+ publicAPI.handleEndMouseWheel = () => {
219
172
  publicAPI.endScrolling();
220
173
  };
221
-
222
- publicAPI.handleMiddleButtonPress = function (calldata) {
174
+ publicAPI.handleMiddleButtonPress = calldata => {
223
175
  if (model.widgetState.getScrollingMethod() === ScrollingMethods.MIDDLE_MOUSE_BUTTON) {
224
176
  publicAPI.startScrolling(calldata.position);
225
177
  }
226
178
  };
227
-
228
- publicAPI.handleMiddleButtonRelease = function () {
179
+ publicAPI.handleMiddleButtonRelease = () => {
229
180
  if (model.widgetState.getScrollingMethod() === ScrollingMethods.MIDDLE_MOUSE_BUTTON) {
230
181
  publicAPI.endScrolling();
231
182
  }
232
183
  };
233
-
234
- publicAPI.handleEvent = function (callData) {
184
+ publicAPI.handleEvent = callData => {
235
185
  if (model.activeState.getActive()) {
236
186
  publicAPI[publicAPI.getActiveInteraction()](callData);
237
187
  publicAPI.invokeInternalInteractionEvent();
238
188
  return macro.EVENT_ABORT;
239
189
  }
240
-
241
190
  return macro.VOID;
242
191
  };
243
-
244
- publicAPI.invokeInternalInteractionEvent = function () {
245
- var methodName = publicAPI.getActiveInteraction();
246
- var computeFocalPointOffset = methodName !== InteractionMethodsName.RotateLine;
247
- var canUpdateFocalPoint = methodName === InteractionMethodsName.RotateLine;
192
+ publicAPI.invokeInternalInteractionEvent = () => {
193
+ const methodName = publicAPI.getActiveInteraction();
194
+ const computeFocalPointOffset = methodName !== InteractionMethodsName.RotateLine;
195
+ const canUpdateFocalPoint = methodName === InteractionMethodsName.RotateLine;
248
196
  publicAPI.invokeInteractionEvent({
249
- computeFocalPointOffset: computeFocalPointOffset,
250
- canUpdateFocalPoint: canUpdateFocalPoint
197
+ computeFocalPointOffset,
198
+ canUpdateFocalPoint
251
199
  });
252
200
  };
253
-
254
- publicAPI.startInteraction = function () {
255
- publicAPI.invokeStartInteractionEvent(); // When interacting, plane actor and lines must be re-rendered on other views
256
-
257
- publicAPI.getViewWidgets().forEach(function (viewWidget) {
201
+ publicAPI.startInteraction = () => {
202
+ publicAPI.invokeStartInteractionEvent();
203
+ // When interacting, plane actor and lines must be re-rendered on other views
204
+ publicAPI.getViewWidgets().forEach(viewWidget => {
258
205
  viewWidget.getInteractor().requestAnimation(publicAPI);
259
206
  });
260
207
  };
261
-
262
- publicAPI.endInteraction = function () {
208
+ publicAPI.endInteraction = () => {
263
209
  publicAPI.invokeEndInteractionEvent();
264
- publicAPI.getViewWidgets().forEach(function (viewWidget) {
210
+ publicAPI.getViewWidgets().forEach(viewWidget => {
265
211
  viewWidget.getInteractor().cancelAnimation(publicAPI);
266
212
  });
267
213
  };
214
+ publicAPI.translateCenterOnPlaneDirection = nbSteps => {
215
+ const dirProj = model.widgetState.getPlanes()[model.viewType].normal;
216
+ const oldCenter = model.widgetState.getCenter();
217
+ const image = model.widgetState.getImage();
218
+ const imageSpacing = image.getSpacing();
268
219
 
269
- publicAPI.translateCenterOnPlaneDirection = function (nbSteps) {
270
- var dirProj = model.widgetState.getPlanes()[model.viewType].normal;
271
- var oldCenter = model.widgetState.getCenter();
272
- var image = model.widgetState.getImage();
273
- var imageSpacing = image.getSpacing(); // Use Chebyshev norm
220
+ // Use Chebyshev norm
274
221
  // https://math.stackexchange.com/questions/71423/what-is-the-term-for-the-projection-of-a-vector-onto-the-unit-cube
222
+ const absDirProj = dirProj.map(value => Math.abs(value));
223
+ const index = absDirProj.indexOf(Math.max(...absDirProj));
224
+ const movingFactor = nbSteps * imageSpacing[index] / Math.abs(dirProj[index]);
275
225
 
276
- var absDirProj = dirProj.map(function (value) {
277
- return Math.abs(value);
278
- });
279
- var index = absDirProj.indexOf(Math.max.apply(Math, _toConsumableArray(absDirProj)));
280
- var movingFactor = nbSteps * imageSpacing[index] / Math.abs(dirProj[index]); // Define the potentially new center
281
-
282
- var newCenter = [oldCenter[0] + movingFactor * dirProj[0], oldCenter[1] + movingFactor * dirProj[1], oldCenter[2] + movingFactor * dirProj[2]];
226
+ // Define the potentially new center
227
+ let newCenter = [oldCenter[0] + movingFactor * dirProj[0], oldCenter[1] + movingFactor * dirProj[1], oldCenter[2] + movingFactor * dirProj[2]];
283
228
  newCenter = publicAPI.getBoundedCenter(newCenter);
284
229
  model.widgetState.setCenter(newCenter);
285
230
  updateState(model.widgetState, model._factory.getScaleInPixels(), model._factory.getRotationHandlePosition());
286
231
  };
287
-
288
- publicAPI[InteractionMethodsName.TranslateAxis] = function (calldata) {
289
- var _model$activeState$ge3, _model$activeState2, _model$activeState2$g, _model$activeState3, _model$activeState3$g;
290
-
291
- var lineHandle = publicAPI.getActiveLineHandle();
292
- var lineName = publicAPI.getActiveLineName();
293
- var pointOnLine = add(lineHandle.getOrigin(), lineHandle.getDirection(), []);
294
- var currentLineVector = lineHandle.getDirection();
295
- normalize(currentLineVector); // Translate the current line along the other line
296
-
297
- var otherLineHandle = publicAPI.getOtherLineHandle(lineName);
298
- var center = model.widgetState.getCenter();
299
- var manipulator = (_model$activeState$ge3 = (_model$activeState2 = model.activeState) === null || _model$activeState2 === void 0 ? void 0 : (_model$activeState2$g = _model$activeState2.getManipulator) === null || _model$activeState2$g === void 0 ? void 0 : _model$activeState2$g.call(_model$activeState2)) !== null && _model$activeState$ge3 !== void 0 ? _model$activeState$ge3 : model.manipulator;
300
- var worldCoords = null;
301
- var newOrigin = [];
302
-
303
- if ((_model$activeState3 = model.activeState) !== null && _model$activeState3 !== void 0 && (_model$activeState3$g = _model$activeState3.getManipulator) !== null && _model$activeState3$g !== void 0 && _model$activeState3$g.call(_model$activeState3)) {
232
+ publicAPI[InteractionMethodsName.TranslateAxis] = calldata => {
233
+ const lineHandle = publicAPI.getActiveLineHandle();
234
+ const lineName = publicAPI.getActiveLineName();
235
+ const pointOnLine = add(lineHandle.getOrigin(), lineHandle.getDirection(), []);
236
+ const currentLineVector = lineHandle.getDirection();
237
+ normalize(currentLineVector);
238
+
239
+ // Translate the current line along the other line
240
+ const otherLineHandle = publicAPI.getOtherLineHandle(lineName);
241
+ const center = model.widgetState.getCenter();
242
+ const manipulator = model.activeState?.getManipulator?.() ?? model.manipulator;
243
+ let worldCoords = null;
244
+ let newOrigin = [];
245
+ if (model.activeState?.getManipulator?.()) {
304
246
  worldCoords = manipulator.handleEvent(calldata, model._apiSpecificRenderWindow).worldCoords;
305
- var translation = subtract(worldCoords, previousPosition, []);
247
+ const translation = subtract(worldCoords, previousPosition, []);
306
248
  add(center, translation, newOrigin);
307
249
  } else if (otherLineHandle) {
308
- var otherLineVector = otherLineHandle.getDirection();
250
+ const otherLineVector = otherLineHandle.getDirection();
309
251
  normalize(otherLineVector);
310
- var axisTranslation = otherLineVector;
311
- var dot$1 = dot(currentLineVector, otherLineVector); // lines are colinear, translate along perpendicular axis from current line
312
-
252
+ const axisTranslation = otherLineVector;
253
+ const dot$1 = dot(currentLineVector, otherLineVector);
254
+ // lines are colinear, translate along perpendicular axis from current line
313
255
  if (dot$1 === 1 || dot$1 === -1) {
314
256
  cross(currentLineVector, manipulator.getWidgetNormal(), axisTranslation);
315
257
  }
316
-
317
- var closestPoint = [];
258
+ const closestPoint = [];
318
259
  worldCoords = manipulator.handleEvent(calldata, model._apiSpecificRenderWindow).worldCoords;
319
260
  vtkLine.distanceToLine(worldCoords, lineHandle.getOrigin(), pointOnLine, closestPoint);
320
- var translationVector = subtract(worldCoords, closestPoint, []);
321
- var translationDistance = dot(translationVector, axisTranslation);
261
+ const translationVector = subtract(worldCoords, closestPoint, []);
262
+ const translationDistance = dot(translationVector, axisTranslation);
322
263
  newOrigin = multiplyAccumulate(center, axisTranslation, translationDistance, newOrigin);
323
264
  }
324
-
325
265
  newOrigin = publicAPI.getBoundedCenter(newOrigin);
326
266
  model.widgetState.setCenter(newOrigin);
327
267
  updateState(model.widgetState, model._factory.getScaleInPixels(), model._factory.getRotationHandlePosition());
328
268
  previousPosition = worldCoords;
329
269
  };
330
-
331
- publicAPI.getBoundedCenter = function (newCenter) {
332
- var oldCenter = model.widgetState.getCenter();
333
- var imageBounds = model.widgetState.getImage().getBounds();
334
-
335
- if (vtkBoundingBox.containsPoint.apply(vtkBoundingBox, [imageBounds].concat(_toConsumableArray(newCenter)))) {
270
+ publicAPI.getBoundedCenter = newCenter => {
271
+ const oldCenter = model.widgetState.getCenter();
272
+ const imageBounds = model.widgetState.getImage().getBounds();
273
+ if (vtkBoundingBox.containsPoint(imageBounds, ...newCenter)) {
336
274
  return newCenter;
337
275
  }
338
-
339
276
  return boundPointOnPlane(newCenter, oldCenter, imageBounds);
340
277
  };
341
-
342
- publicAPI[InteractionMethodsName.TranslateCenter] = function (calldata) {
343
- var _model$activeState$ge4, _model$activeState4, _model$activeState4$g;
344
-
345
- var manipulator = (_model$activeState$ge4 = (_model$activeState4 = model.activeState) === null || _model$activeState4 === void 0 ? void 0 : (_model$activeState4$g = _model$activeState4.getManipulator) === null || _model$activeState4$g === void 0 ? void 0 : _model$activeState4$g.call(_model$activeState4)) !== null && _model$activeState$ge4 !== void 0 ? _model$activeState$ge4 : model.manipulator;
346
-
347
- var _manipulator$handleEv2 = manipulator.handleEvent(calldata, model._apiSpecificRenderWindow),
348
- worldCoords = _manipulator$handleEv2.worldCoords;
349
-
350
- var translation = subtract(worldCoords, previousPosition, []);
278
+ publicAPI[InteractionMethodsName.TranslateCenter] = calldata => {
279
+ const manipulator = model.activeState?.getManipulator?.() ?? model.manipulator;
280
+ const {
281
+ worldCoords
282
+ } = manipulator.handleEvent(calldata, model._apiSpecificRenderWindow);
283
+ const translation = subtract(worldCoords, previousPosition, []);
351
284
  previousPosition = worldCoords;
352
- var newCenter = add(model.widgetState.getCenter(), translation, []);
285
+ let newCenter = add(model.widgetState.getCenter(), translation, []);
353
286
  newCenter = publicAPI.getBoundedCenter(newCenter);
354
287
  model.widgetState.setCenter(newCenter);
355
288
  updateState(model.widgetState, model._factory.getScaleInPixels(), model._factory.getRotationHandlePosition());
356
289
  };
357
-
358
- publicAPI[InteractionMethodsName.RotateLine] = function (calldata) {
359
- var _model$activeState$ge5, _model$activeState5, _model$activeState5$g;
360
-
361
- var activeLineHandle = publicAPI.getActiveLineHandle();
362
- var manipulator = (_model$activeState$ge5 = (_model$activeState5 = model.activeState) === null || _model$activeState5 === void 0 ? void 0 : (_model$activeState5$g = _model$activeState5.getManipulator) === null || _model$activeState5$g === void 0 ? void 0 : _model$activeState5$g.call(_model$activeState5)) !== null && _model$activeState$ge5 !== void 0 ? _model$activeState$ge5 : model.manipulator;
363
- var planeNormal = manipulator.getWidgetNormal();
364
-
365
- var _manipulator$handleEv3 = manipulator.handleEvent(calldata, model._apiSpecificRenderWindow),
366
- worldCoords = _manipulator$handleEv3.worldCoords;
367
-
290
+ publicAPI[InteractionMethodsName.RotateLine] = calldata => {
291
+ const activeLineHandle = publicAPI.getActiveLineHandle();
292
+ const manipulator = model.activeState?.getManipulator?.() ?? model.manipulator;
293
+ const planeNormal = manipulator.getWidgetNormal();
294
+ const {
295
+ worldCoords
296
+ } = manipulator.handleEvent(calldata, model._apiSpecificRenderWindow);
368
297
  if (!worldCoords || !worldCoords.length) {
369
298
  return;
370
299
  }
371
-
372
- var center = model.widgetState.getCenter();
373
- var currentVectorToOrigin = [0, 0, 0];
300
+ const center = model.widgetState.getCenter();
301
+ const currentVectorToOrigin = [0, 0, 0];
374
302
  subtract(worldCoords, center, currentVectorToOrigin);
375
303
  normalize(currentVectorToOrigin);
376
- var previousLineDirection = activeLineHandle.getDirection();
304
+ const previousLineDirection = activeLineHandle.getDirection();
377
305
  normalize(previousLineDirection);
378
- var activePointName = publicAPI.getActiveRotationPointName();
379
-
306
+ const activePointName = publicAPI.getActiveRotationPointName();
380
307
  if (activePointName === 'point1' || !activePointName && dot(currentVectorToOrigin, previousLineDirection) < 0) {
381
308
  multiplyScalar(previousLineDirection, -1);
382
309
  }
383
-
384
- var radianAngle = signedAngleBetweenVectors(previousLineDirection, currentVectorToOrigin, planeNormal);
310
+ const radianAngle = signedAngleBetweenVectors(previousLineDirection, currentVectorToOrigin, planeNormal);
385
311
  publicAPI.rotateLineInView(publicAPI.getActiveLineName(), radianAngle);
386
312
  };
313
+
387
314
  /**
388
315
  * Rotate a line by a specified angle
389
316
  * @param {string} lineName The line name to rotate (e.g. YinX, ZinX, XinY, ZinY, XinZ, YinZ)
390
317
  * @param {Number} radianAngle Applied angle in radian
391
318
  */
392
-
393
-
394
- publicAPI.rotateLineInView = function (lineName, radianAngle) {
395
- var viewType = planeNameToViewType[getLinePlaneName(lineName)];
396
- var inViewType = planeNameToViewType[getLineInPlaneName(lineName)];
397
- var planeNormal = model.widgetState.getPlanes()[inViewType].normal;
319
+ publicAPI.rotateLineInView = (lineName, radianAngle) => {
320
+ const viewType = planeNameToViewType[getLinePlaneName(lineName)];
321
+ const inViewType = planeNameToViewType[getLineInPlaneName(lineName)];
322
+ const planeNormal = model.widgetState.getPlanes()[inViewType].normal;
398
323
  publicAPI.rotatePlane(viewType, radianAngle, planeNormal);
399
-
400
324
  if (publicAPI.getKeepOrthogonality()) {
401
- var otherLineName = getOtherLineName(model.widgetState, lineName);
402
- var otherPlaneName = getLinePlaneName(otherLineName);
325
+ const otherLineName = getOtherLineName(model.widgetState, lineName);
326
+ const otherPlaneName = getLinePlaneName(otherLineName);
403
327
  publicAPI.rotatePlane(planeNameToViewType[otherPlaneName], radianAngle, planeNormal);
404
328
  }
405
-
406
329
  updateState(model.widgetState, model._factory.getScaleInPixels(), model._factory.getRotationHandlePosition());
407
330
  };
331
+
408
332
  /**
409
333
  * Rotate a specified plane around an other specified plane.
410
334
  * @param {ViewTypes} viewType Define which plane will be rotated
411
335
  * @param {Number} radianAngle Applied angle in radian
412
336
  * @param {vec3} planeNormal Define the axis to rotate around
413
337
  */
414
-
415
-
416
- publicAPI.rotatePlane = function (viewType, radianAngle, planeNormal) {
417
- var _model$widgetState$ge = model.widgetState.getPlanes()[viewType],
418
- normal = _model$widgetState$ge.normal,
419
- viewUp = _model$widgetState$ge.viewUp;
420
- var newNormal = rotateVector(normal, planeNormal, radianAngle);
421
- var newViewUp = rotateVector(viewUp, planeNormal, radianAngle);
338
+ publicAPI.rotatePlane = (viewType, radianAngle, planeNormal) => {
339
+ const {
340
+ normal,
341
+ viewUp
342
+ } = model.widgetState.getPlanes()[viewType];
343
+ const newNormal = rotateVector(normal, planeNormal, radianAngle);
344
+ const newViewUp = rotateVector(viewUp, planeNormal, radianAngle);
422
345
  model.widgetState.getPlanes()[viewType] = {
423
346
  normal: newNormal,
424
347
  viewUp: newViewUp
425
348
  };
426
- }; // --------------------------------------------------------------------------
349
+ };
350
+
351
+ // --------------------------------------------------------------------------
427
352
  // initialization
428
353
  // --------------------------------------------------------------------------
429
-
430
354
  }
431
355
 
432
356
  export { widgetBehavior as default };