@kitware/vtk.js 28.10.1 → 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 (566) 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 +778 -903
  12. package/Common/Core/Math.d.ts +14 -0
  13. package/Common/Core/Math.js +2 -4
  14. package/Common/Core/MatrixBuilder.js +99 -151
  15. package/Common/Core/Points.js +43 -43
  16. package/Common/Core/PriorityQueue.js +30 -28
  17. package/Common/Core/ProgressHandler.js +31 -32
  18. package/Common/Core/ScalarsToColors/Constants.js +4 -4
  19. package/Common/Core/ScalarsToColors.js +196 -253
  20. package/Common/Core/StringArray.js +48 -73
  21. package/Common/Core/URLExtract.js +10 -29
  22. package/Common/Core/VariantArray.js +48 -73
  23. package/Common/Core.js +11 -11
  24. package/Common/DataModel/AbstractPointLocator.js +19 -17
  25. package/Common/DataModel/BoundingBox.js +322 -490
  26. package/Common/DataModel/Box.js +46 -63
  27. package/Common/DataModel/CardinalSpline1D.js +92 -102
  28. package/Common/DataModel/Cell.js +41 -61
  29. package/Common/DataModel/CellLinks.js +91 -127
  30. package/Common/DataModel/CellTypes/Constants.js +7 -6
  31. package/Common/DataModel/CellTypes.js +55 -74
  32. package/Common/DataModel/Collection.js +45 -61
  33. package/Common/DataModel/Cone.js +28 -20
  34. package/Common/DataModel/Cylinder.js +41 -35
  35. package/Common/DataModel/DataSet/Constants.js +11 -5
  36. package/Common/DataModel/DataSet.js +37 -25
  37. package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
  38. package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
  39. package/Common/DataModel/DataSetAttributes.js +96 -138
  40. package/Common/DataModel/EdgeLocator.js +45 -70
  41. package/Common/DataModel/ITKHelper.js +67 -137
  42. package/Common/DataModel/ImageData.js +115 -172
  43. package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
  44. package/Common/DataModel/ImplicitBoolean.js +66 -96
  45. package/Common/DataModel/IncrementalOctreeNode.js +201 -231
  46. package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
  47. package/Common/DataModel/KochanekSpline1D.js +78 -81
  48. package/Common/DataModel/Line/Constants.js +2 -2
  49. package/Common/DataModel/Line.js +82 -105
  50. package/Common/DataModel/Locator.js +17 -10
  51. package/Common/DataModel/Molecule.js +26 -17
  52. package/Common/DataModel/PiecewiseFunction.js +218 -239
  53. package/Common/DataModel/Plane.js +90 -113
  54. package/Common/DataModel/PointSet.js +30 -26
  55. package/Common/DataModel/PolyData/Constants.js +2 -2
  56. package/Common/DataModel/PolyData.js +95 -120
  57. package/Common/DataModel/PolyLine.js +44 -61
  58. package/Common/DataModel/Polygon/Constants.js +4 -4
  59. package/Common/DataModel/Polygon.js +128 -169
  60. package/Common/DataModel/Quad/Constants.js +2 -2
  61. package/Common/DataModel/Quad.js +61 -100
  62. package/Common/DataModel/SelectionNode/Constants.js +5 -4
  63. package/Common/DataModel/SelectionNode.js +25 -21
  64. package/Common/DataModel/Sphere.js +40 -35
  65. package/Common/DataModel/Spline1D/Constants.js +3 -2
  66. package/Common/DataModel/Spline1D.js +34 -18
  67. package/Common/DataModel/Spline3D/Constants.js +2 -2
  68. package/Common/DataModel/Spline3D.js +46 -41
  69. package/Common/DataModel/StructuredData/Constants.js +2 -2
  70. package/Common/DataModel/StructuredData.js +9 -20
  71. package/Common/DataModel/Triangle.js +207 -250
  72. package/Common/DataModel.js +19 -19
  73. package/Common/System/MobileVR.js +56 -61
  74. package/Common/System/TimerLog.js +1 -1
  75. package/Common/System.js +2 -2
  76. package/Common/Transform/LandmarkTransform/Constants.js +2 -2
  77. package/Common/Transform/LandmarkTransform.js +133 -117
  78. package/Common/Transform/Transform.js +42 -57
  79. package/Common/Transform.js +2 -2
  80. package/Common/index.js +4 -4
  81. package/Filters/Core/Cutter.js +134 -146
  82. package/Filters/Core/PolyDataNormals.js +44 -50
  83. package/Filters/Core.js +2 -2
  84. package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
  85. package/Filters/Cornerstone.js +1 -1
  86. package/Filters/General/AppendPolyData.js +84 -100
  87. package/Filters/General/Calculator.js +95 -163
  88. package/Filters/General/ClipClosedSurface/Constants.js +2 -2
  89. package/Filters/General/ClipClosedSurface.js +341 -416
  90. package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
  91. package/Filters/General/ContourTriangulator/Constants.js +2 -2
  92. package/Filters/General/ContourTriangulator/helper.js +684 -812
  93. package/Filters/General/ContourTriangulator.js +92 -89
  94. package/Filters/General/ImageCropFilter.js +77 -78
  95. package/Filters/General/ImageDataOutlineFilter.js +42 -36
  96. package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
  97. package/Filters/General/ImageMarchingCubes.js +99 -112
  98. package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
  99. package/Filters/General/ImageMarchingSquares.js +93 -118
  100. package/Filters/General/ImageOutlineFilter.js +53 -54
  101. package/Filters/General/ImageSliceFilter.js +39 -30
  102. package/Filters/General/ImageStreamline.js +107 -124
  103. package/Filters/General/LineFilter.js +26 -15
  104. package/Filters/General/MoleculeToRepresentation.js +136 -149
  105. package/Filters/General/OBBTree/OBBNode.js +36 -34
  106. package/Filters/General/OBBTree/helper.js +19 -24
  107. package/Filters/General/OBBTree.js +396 -488
  108. package/Filters/General/OutlineFilter.js +52 -34
  109. package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
  110. package/Filters/General/PaintFilter.js +150 -162
  111. package/Filters/General/ScalarToRGBA.js +38 -33
  112. package/Filters/General/TriangleFilter.js +65 -62
  113. package/Filters/General/TubeFilter/Constants.js +4 -4
  114. package/Filters/General/TubeFilter.js +376 -496
  115. package/Filters/General/WarpScalar.js +58 -60
  116. package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
  117. package/Filters/General.js +21 -21
  118. package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
  119. package/Filters/Sources/Arrow2DSource.js +56 -56
  120. package/Filters/Sources/ArrowSource.js +39 -29
  121. package/Filters/Sources/CircleSource.js +43 -43
  122. package/Filters/Sources/ConcentricCylinderSource.js +151 -174
  123. package/Filters/Sources/ConeSource.js +51 -42
  124. package/Filters/Sources/CubeSource.js +75 -96
  125. package/Filters/Sources/Cursor3D.js +94 -109
  126. package/Filters/Sources/CylinderSource.js +90 -90
  127. package/Filters/Sources/ImageGridSource.js +43 -43
  128. package/Filters/Sources/LineSource.js +49 -39
  129. package/Filters/Sources/PlaneSource.js +97 -104
  130. package/Filters/Sources/PointSource.js +46 -37
  131. package/Filters/Sources/RTAnalyticSource.js +50 -48
  132. package/Filters/Sources/SLICSource.js +63 -73
  133. package/Filters/Sources/SphereSource.js +88 -78
  134. package/Filters/Sources/ViewFinderSource.js +26 -23
  135. package/Filters/Sources.js +14 -14
  136. package/Filters/Texture/TextureMapToPlane.js +95 -97
  137. package/Filters/Texture/TextureMapToSphere.js +46 -54
  138. package/Filters/Texture.js +2 -2
  139. package/Filters/index.js +5 -5
  140. package/IO/Core/BinaryHelper.js +12 -18
  141. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
  142. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
  143. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
  144. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
  145. package/IO/Core/DataAccessHelper.js +6 -6
  146. package/IO/Core/HttpDataSetReader.js +136 -139
  147. package/IO/Core/HttpDataSetSeriesReader.js +64 -75
  148. package/IO/Core/HttpSceneLoader.js +130 -179
  149. package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
  150. package/IO/Core/ImageStream/ViewStream.js +100 -103
  151. package/IO/Core/ImageStream.js +62 -54
  152. package/IO/Core/ResourceLoader.js +10 -9
  153. package/IO/Core/Serializer/ArraySerializer.js +40 -40
  154. package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
  155. package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
  156. package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
  157. package/IO/Core/Serializer.js +6 -13
  158. package/IO/Core/WSLinkClient.js +90 -76
  159. package/IO/Core/ZipMultiDataSetReader.js +46 -44
  160. package/IO/Core/ZipMultiDataSetWriter.js +43 -34
  161. package/IO/Core.js +7 -7
  162. package/IO/Geometry/DracoReader.js +118 -121
  163. package/IO/Geometry/PLYReader.js +163 -223
  164. package/IO/Geometry/PLYWriter/Constants.js +5 -5
  165. package/IO/Geometry/PLYWriter.js +139 -154
  166. package/IO/Geometry/STLReader.js +123 -146
  167. package/IO/Geometry/STLWriter/Constants.js +2 -2
  168. package/IO/Geometry/STLWriter.js +83 -82
  169. package/IO/Geometry.js +5 -5
  170. package/IO/Legacy/LegacyAsciiParser.js +78 -139
  171. package/IO/Legacy/PolyDataReader.js +48 -36
  172. package/IO/Legacy.js +2 -2
  173. package/IO/Misc/ElevationReader.js +67 -60
  174. package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
  175. package/IO/Misc/ITKImageReader.js +58 -45
  176. package/IO/Misc/ITKPolyDataReader.js +50 -38
  177. package/IO/Misc/JSONNucleoReader.js +49 -42
  178. package/IO/Misc/JSONReader.js +38 -33
  179. package/IO/Misc/MTLReader.js +74 -119
  180. package/IO/Misc/OBJReader.js +153 -206
  181. package/IO/Misc/PDBReader.js +70 -68
  182. package/IO/Misc/SkyboxReader.js +77 -82
  183. package/IO/Misc.js +9 -9
  184. package/IO/XML/XMLImageDataReader.js +36 -38
  185. package/IO/XML/XMLImageDataWriter.js +28 -21
  186. package/IO/XML/XMLPolyDataReader.js +49 -46
  187. package/IO/XML/XMLPolyDataWriter.js +43 -42
  188. package/IO/XML/XMLReader.js +262 -304
  189. package/IO/XML/XMLWriter/Constants.js +3 -3
  190. package/IO/XML/XMLWriter.js +70 -84
  191. package/IO/XML.js +6 -6
  192. package/IO/index.js +5 -5
  193. package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
  194. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
  195. package/Imaging/Core/AbstractImageInterpolator.js +74 -87
  196. package/Imaging/Core/ImageInterpolator.js +201 -252
  197. package/Imaging/Core/ImagePointDataIterator.js +96 -122
  198. package/Imaging/Core/ImageReslice/Constants.js +2 -2
  199. package/Imaging/Core/ImageReslice.js +327 -464
  200. package/Imaging/Core.js +4 -4
  201. package/Imaging/Hybrid/SampleFunction.js +58 -51
  202. package/Imaging/Hybrid.js +1 -1
  203. package/Imaging/index.js +2 -2
  204. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
  205. package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
  206. package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
  207. package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
  208. package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
  209. package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
  210. package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
  211. package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
  212. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
  213. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
  214. package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
  215. package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
  216. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
  217. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
  218. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
  219. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
  220. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
  221. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
  222. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
  223. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
  224. package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
  225. package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
  226. package/Interaction/Manipulators.js +21 -21
  227. package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
  228. package/Interaction/Misc.js +1 -1
  229. package/Interaction/Style/InteractorStyleImage.js +101 -121
  230. package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
  231. package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
  232. package/Interaction/Style/InteractorStyleManipulator.js +254 -329
  233. package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
  234. package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
  235. package/Interaction/Style/InteractorStyleUnicam.js +30 -38
  236. package/Interaction/Style.js +5 -5
  237. package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
  238. package/Interaction/UI/CornerAnnotation.js +65 -48
  239. package/Interaction/UI/FPSMonitor.js +104 -105
  240. package/Interaction/UI/Icons.js +1 -1
  241. package/Interaction/UI/Slider/Constants.js +2 -2
  242. package/Interaction/UI/Slider.js +78 -95
  243. package/Interaction/UI/VolumeController.js +104 -97
  244. package/Interaction/UI.js +5 -5
  245. package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
  246. package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
  247. package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  248. package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
  249. package/Interaction/Widgets.js +2 -2
  250. package/Interaction/index.js +5 -5
  251. package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
  252. package/Proxy/Animation/AnimationProxyManager.js +43 -51
  253. package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
  254. package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
  255. package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
  256. package/Proxy/Core/LookupTableProxy.js +49 -52
  257. package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
  258. package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
  259. package/Proxy/Core/ProxyManager/core.js +83 -106
  260. package/Proxy/Core/ProxyManager/properties.js +53 -76
  261. package/Proxy/Core/ProxyManager/state.js +100 -110
  262. package/Proxy/Core/ProxyManager/view.js +45 -55
  263. package/Proxy/Core/ProxyManager.js +16 -8
  264. package/Proxy/Core/SourceProxy.js +41 -38
  265. package/Proxy/Core/View2DProxy.js +143 -199
  266. package/Proxy/Core/ViewProxy.js +223 -269
  267. package/Proxy/Core.js +7 -7
  268. package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
  269. package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
  270. package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
  271. package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
  272. package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
  273. package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
  274. package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
  275. package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
  276. package/Proxy/Representations.js +7 -7
  277. package/Proxy/index.js +2 -2
  278. package/Rendering/Core/AbstractImageMapper/helper.js +44 -49
  279. package/Rendering/Core/AbstractImageMapper.js +18 -19
  280. package/Rendering/Core/AbstractMapper.js +39 -55
  281. package/Rendering/Core/AbstractMapper3D.js +26 -31
  282. package/Rendering/Core/AbstractPicker.js +25 -21
  283. package/Rendering/Core/Actor.js +71 -93
  284. package/Rendering/Core/Actor2D.js +64 -78
  285. package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
  286. package/Rendering/Core/AnnotatedCubeActor.js +94 -79
  287. package/Rendering/Core/AxesActor.js +65 -87
  288. package/Rendering/Core/Camera.js +246 -271
  289. package/Rendering/Core/CellPicker.js +125 -148
  290. package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
  291. package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
  292. package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
  293. package/Rendering/Core/ColorTransferFunction.js +460 -546
  294. package/Rendering/Core/Coordinate/Constants.js +2 -2
  295. package/Rendering/Core/Coordinate.js +119 -198
  296. package/Rendering/Core/CubeAxesActor.js +294 -320
  297. package/Rendering/Core/Follower.js +46 -45
  298. package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
  299. package/Rendering/Core/Glyph3DMapper.js +96 -148
  300. package/Rendering/Core/HardwareSelector.js +36 -69
  301. package/Rendering/Core/ImageArrayMapper.js +87 -126
  302. package/Rendering/Core/ImageCPRMapper.js +134 -209
  303. package/Rendering/Core/ImageMapper/Constants.js +2 -2
  304. package/Rendering/Core/ImageMapper.js +92 -170
  305. package/Rendering/Core/ImageProperty/Constants.js +2 -2
  306. package/Rendering/Core/ImageProperty.js +66 -81
  307. package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
  308. package/Rendering/Core/ImageResliceMapper.js +36 -29
  309. package/Rendering/Core/ImageSlice.js +85 -127
  310. package/Rendering/Core/InteractorObserver.js +82 -73
  311. package/Rendering/Core/InteractorStyle/Constants.js +2 -2
  312. package/Rendering/Core/InteractorStyle.js +56 -58
  313. package/Rendering/Core/Light.js +43 -49
  314. package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
  315. package/Rendering/Core/Mapper/Constants.js +6 -6
  316. package/Rendering/Core/Mapper/Static.js +15 -12
  317. package/Rendering/Core/Mapper.js +194 -259
  318. package/Rendering/Core/Mapper2D.js +61 -100
  319. package/Rendering/Core/Picker.js +124 -143
  320. package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
  321. package/Rendering/Core/PointPicker.js +68 -79
  322. package/Rendering/Core/Prop/Constants.js +2 -2
  323. package/Rendering/Core/Prop.js +58 -106
  324. package/Rendering/Core/Prop3D.js +54 -83
  325. package/Rendering/Core/Property/Constants.js +6 -6
  326. package/Rendering/Core/Property.js +45 -74
  327. package/Rendering/Core/Property2D/Constants.js +2 -2
  328. package/Rendering/Core/Property2D.js +33 -42
  329. package/Rendering/Core/RenderWindow.js +70 -82
  330. package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
  331. package/Rendering/Core/RenderWindowInteractor.js +324 -439
  332. package/Rendering/Core/Renderer.js +193 -257
  333. package/Rendering/Core/ScalarBarActor.js +267 -272
  334. package/Rendering/Core/Skybox.js +26 -24
  335. package/Rendering/Core/SphereMapper.js +22 -12
  336. package/Rendering/Core/StickMapper.js +22 -12
  337. package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
  338. package/Rendering/Core/SurfaceLICInterface.js +13 -9
  339. package/Rendering/Core/SurfaceLICMapper.js +23 -15
  340. package/Rendering/Core/Texture.js +99 -141
  341. package/Rendering/Core/Viewport.js +60 -88
  342. package/Rendering/Core/Volume.js +55 -77
  343. package/Rendering/Core/VolumeMapper/Constants.js +4 -4
  344. package/Rendering/Core/VolumeMapper.js +59 -91
  345. package/Rendering/Core/VolumeProperty/Constants.js +4 -4
  346. package/Rendering/Core/VolumeProperty.js +78 -115
  347. package/Rendering/Core.js +47 -49
  348. package/Rendering/Misc/CanvasView.js +62 -61
  349. package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
  350. package/Rendering/Misc/GenericRenderWindow.js +48 -37
  351. package/Rendering/Misc/RemoteView.js +86 -80
  352. package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
  353. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
  354. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
  355. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
  356. package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
  357. package/Rendering/Misc/TextureLODsDownloader.js +72 -74
  358. package/Rendering/Misc.js +7 -7
  359. package/Rendering/OpenGL/Actor.js +57 -68
  360. package/Rendering/OpenGL/Actor2D.js +56 -56
  361. package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
  362. package/Rendering/OpenGL/BufferObject.js +50 -65
  363. package/Rendering/OpenGL/Camera.js +35 -29
  364. package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
  365. package/Rendering/OpenGL/Convolution2DPass.js +87 -81
  366. package/Rendering/OpenGL/CubeAxesActor.js +28 -21
  367. package/Rendering/OpenGL/ForwardPass.js +53 -64
  368. package/Rendering/OpenGL/Framebuffer.js +61 -101
  369. package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
  370. package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
  371. package/Rendering/OpenGL/HardwareSelector.js +272 -397
  372. package/Rendering/OpenGL/Helper.js +58 -73
  373. package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
  374. package/Rendering/OpenGL/ImageMapper.js +268 -361
  375. package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
  376. package/Rendering/OpenGL/ImageSlice.js +48 -54
  377. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
  378. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
  379. package/Rendering/OpenGL/PolyDataMapper.js +358 -492
  380. package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
  381. package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
  382. package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
  383. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
  384. package/Rendering/OpenGL/RenderWindow.js +356 -510
  385. package/Rendering/OpenGL/Renderer.js +77 -89
  386. package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
  387. package/Rendering/OpenGL/ScalarBarActor.js +28 -21
  388. package/Rendering/OpenGL/Shader.js +37 -31
  389. package/Rendering/OpenGL/ShaderCache.js +67 -74
  390. package/Rendering/OpenGL/ShaderProgram.js +136 -248
  391. package/Rendering/OpenGL/Skybox.js +99 -60
  392. package/Rendering/OpenGL/SphereMapper.js +94 -108
  393. package/Rendering/OpenGL/StickMapper.js +110 -114
  394. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
  395. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
  396. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
  397. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
  398. package/Rendering/OpenGL/SurfaceLIC.js +2 -2
  399. package/Rendering/OpenGL/Texture/Constants.js +4 -4
  400. package/Rendering/OpenGL/Texture.js +444 -609
  401. package/Rendering/OpenGL/TextureUnitManager.js +47 -43
  402. package/Rendering/OpenGL/VertexArrayObject.js +92 -131
  403. package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
  404. package/Rendering/OpenGL/Volume.js +38 -34
  405. package/Rendering/OpenGL/VolumeMapper.js +437 -547
  406. package/Rendering/OpenGL.js +28 -28
  407. package/Rendering/SceneGraph/RenderPass.js +34 -31
  408. package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
  409. package/Rendering/SceneGraph/ViewNode.js +82 -111
  410. package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
  411. package/Rendering/SceneGraph.js +4 -4
  412. package/Rendering/WebGPU/Actor.js +49 -49
  413. package/Rendering/WebGPU/Actor2D.js +45 -44
  414. package/Rendering/WebGPU/BindGroup.js +43 -50
  415. package/Rendering/WebGPU/Buffer.js +41 -50
  416. package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
  417. package/Rendering/WebGPU/BufferManager.js +111 -141
  418. package/Rendering/WebGPU/Camera.js +65 -67
  419. package/Rendering/WebGPU/CellArrayMapper.js +621 -388
  420. package/Rendering/WebGPU/CubeAxesActor.js +28 -19
  421. package/Rendering/WebGPU/Device.js +78 -133
  422. package/Rendering/WebGPU/ForwardPass.js +75 -72
  423. package/Rendering/WebGPU/FullScreenQuad.js +25 -18
  424. package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
  425. package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
  426. package/Rendering/WebGPU/HardwareSelector.js +200 -276
  427. package/Rendering/WebGPU/ImageMapper.js +180 -171
  428. package/Rendering/WebGPU/ImageSlice.js +45 -44
  429. package/Rendering/WebGPU/IndexBuffer.js +166 -200
  430. package/Rendering/WebGPU/OpaquePass.js +37 -36
  431. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
  432. package/Rendering/WebGPU/Pipeline.js +37 -51
  433. package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
  434. package/Rendering/WebGPU/PolyDataMapper.js +50 -53
  435. package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
  436. package/Rendering/WebGPU/RenderEncoder.js +68 -88
  437. package/Rendering/WebGPU/RenderWindow.js +262 -376
  438. package/Rendering/WebGPU/Renderer.js +224 -208
  439. package/Rendering/WebGPU/Sampler.js +27 -21
  440. package/Rendering/WebGPU/ScalarBarActor.js +28 -19
  441. package/Rendering/WebGPU/ShaderCache.js +43 -41
  442. package/Rendering/WebGPU/ShaderDescription.js +52 -59
  443. package/Rendering/WebGPU/ShaderModule.js +26 -17
  444. package/Rendering/WebGPU/SimpleMapper.js +185 -121
  445. package/Rendering/WebGPU/SphereMapper.js +200 -130
  446. package/Rendering/WebGPU/StickMapper.js +289 -152
  447. package/Rendering/WebGPU/StorageBuffer.js +100 -115
  448. package/Rendering/WebGPU/Texture.js +79 -99
  449. package/Rendering/WebGPU/TextureManager.js +52 -54
  450. package/Rendering/WebGPU/TextureView.js +40 -43
  451. package/Rendering/WebGPU/Types.js +53 -70
  452. package/Rendering/WebGPU/UniformBuffer.js +158 -184
  453. package/Rendering/WebGPU/VertexInput.js +64 -90
  454. package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
  455. package/Rendering/WebGPU/Volume.js +52 -51
  456. package/Rendering/WebGPU/VolumePass.js +218 -239
  457. package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
  458. package/Rendering/WebGPU.js +1 -1
  459. package/Rendering/index.js +5 -5
  460. package/Widgets/Core/AbstractWidget/Constants.js +2 -2
  461. package/Widgets/Core/AbstractWidget.js +49 -58
  462. package/Widgets/Core/AbstractWidgetFactory.js +101 -122
  463. package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
  464. package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
  465. package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
  466. package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
  467. package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
  468. package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
  469. package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
  470. package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
  471. package/Widgets/Core/StateBuilder/originMixin.js +25 -32
  472. package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
  473. package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
  474. package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
  475. package/Widgets/Core/StateBuilder/textMixin.js +10 -6
  476. package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
  477. package/Widgets/Core/StateBuilder.js +120 -149
  478. package/Widgets/Core/WidgetManager/Constants.js +7 -7
  479. package/Widgets/Core/WidgetManager.js +249 -421
  480. package/Widgets/Core/WidgetState.js +48 -57
  481. package/Widgets/Core.js +5 -5
  482. package/Widgets/Manipulators/AbstractManipulator.js +20 -14
  483. package/Widgets/Manipulators/CPRManipulator.js +55 -71
  484. package/Widgets/Manipulators/LineManipulator.js +31 -28
  485. package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
  486. package/Widgets/Manipulators/PickerManipulator.js +65 -0
  487. package/Widgets/Manipulators/PlaneManipulator.js +26 -23
  488. package/Widgets/Manipulators/TrackballManipulator.js +39 -35
  489. package/Widgets/Manipulators.js +4 -2
  490. package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
  491. package/Widgets/Representations/CircleContextRepresentation.js +44 -38
  492. package/Widgets/Representations/ContextRepresentation.js +17 -14
  493. package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
  494. package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
  495. package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
  496. package/Widgets/Representations/GlyphRepresentation.js +107 -152
  497. package/Widgets/Representations/HandleRepresentation.js +17 -14
  498. package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
  499. package/Widgets/Representations/LineHandleRepresentation.js +44 -41
  500. package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
  501. package/Widgets/Representations/PolyLineRepresentation.js +60 -75
  502. package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
  503. package/Widgets/Representations/SphereContextRepresentation.js +19 -27
  504. package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
  505. package/Widgets/Representations/SplineContextRepresentation.js +46 -70
  506. package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
  507. package/Widgets/Representations/WidgetRepresentation.js +99 -134
  508. package/Widgets/Representations.js +13 -13
  509. package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
  510. package/Widgets/Widgets3D/AngleWidget.js +41 -39
  511. package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
  512. package/Widgets/Widgets3D/DistanceWidget.js +38 -36
  513. package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
  514. package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
  515. package/Widgets/Widgets3D/EllipseWidget.js +37 -26
  516. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
  517. package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
  518. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
  519. package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
  520. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
  521. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
  522. package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
  523. package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
  524. package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
  525. package/Widgets/Widgets3D/LabelWidget.js +31 -25
  526. package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
  527. package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
  528. package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
  529. package/Widgets/Widgets3D/LineWidget/state.js +2 -1
  530. package/Widgets/Widgets3D/LineWidget.js +39 -35
  531. package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
  532. package/Widgets/Widgets3D/PaintWidget.js +39 -37
  533. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
  534. package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
  535. package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
  536. package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
  537. package/Widgets/Widgets3D/RectangleWidget.js +37 -25
  538. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
  539. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +134 -210
  540. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  541. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +90 -117
  542. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
  543. package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
  544. package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
  545. package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
  546. package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
  547. package/Widgets/Widgets3D/SeedWidget.js +43 -0
  548. package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
  549. package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
  550. package/Widgets/Widgets3D/ShapeWidget.js +24 -27
  551. package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
  552. package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
  553. package/Widgets/Widgets3D/SphereWidget.js +34 -44
  554. package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
  555. package/Widgets/Widgets3D/SplineWidget.js +43 -39
  556. package/Widgets/Widgets3D.js +15 -15
  557. package/Widgets/index.js +4 -4
  558. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
  559. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  560. package/favicon.js +5 -6
  561. package/index.d.ts +4 -2
  562. package/index.js +4 -3
  563. package/macros.js +4 -1931
  564. package/macros2.js +1684 -0
  565. package/package.json +6 -6
  566. package/vtk.js +18 -31
@@ -1,158 +1,122 @@
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
- import { k as add, l as normalize, s as subtract, d as dot, j as cross, m as multiplyAccumulate, w as multiplyScalar, S as signedAngleBetweenVectors } from '../../../Common/Core/Math/index.js';
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';
7
5
  import { getLineNames, getOtherLineName, updateState, boundPointOnPlane, getLinePlaneName, getLineInPlaneName, rotateVector } from './helpers.js';
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 };