@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,155 +1,143 @@
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 { A as degreesFromRadians } from '../../Common/Core/Math/index.js';
5
3
  import Constants from './RenderWindowInteractor/Constants.js';
6
4
 
7
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+ const {
6
+ Device,
7
+ Input
8
+ } = Constants;
9
+ const {
10
+ vtkWarningMacro,
11
+ vtkErrorMacro,
12
+ normalizeWheel,
13
+ vtkOnceErrorMacro
14
+ } = macro;
8
15
 
9
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
- var Device = Constants.Device,
11
- Input = Constants.Input;
12
- var vtkWarningMacro = macro.vtkWarningMacro,
13
- vtkErrorMacro = macro.vtkErrorMacro,
14
- normalizeWheel = macro.normalizeWheel,
15
- vtkOnceErrorMacro = macro.vtkOnceErrorMacro; // ----------------------------------------------------------------------------
16
+ // ----------------------------------------------------------------------------
16
17
  // Global methods
17
18
  // ----------------------------------------------------------------------------
18
19
 
19
- var EMPTY_MOUSE_EVENT = new MouseEvent('');
20
- var deviceInputMap = {
20
+ const EMPTY_MOUSE_EVENT = new MouseEvent('');
21
+ const deviceInputMap = {
21
22
  'xr-standard': [Input.Trigger, Input.Grip, Input.TrackPad, Input.Thumbstick, Input.A, Input.B]
22
23
  };
23
- var handledEvents = ['StartAnimation', 'Animation', 'EndAnimation', 'PointerEnter', 'PointerLeave', 'MouseEnter', 'MouseLeave', 'StartMouseMove', 'MouseMove', 'EndMouseMove', 'LeftButtonPress', 'LeftButtonRelease', 'MiddleButtonPress', 'MiddleButtonRelease', 'RightButtonPress', 'RightButtonRelease', 'KeyPress', 'KeyDown', 'KeyUp', 'StartMouseWheel', 'MouseWheel', 'EndMouseWheel', 'StartPinch', 'Pinch', 'EndPinch', 'StartPan', 'Pan', 'EndPan', 'StartRotate', 'Rotate', 'EndRotate', 'Button3D', 'Move3D', 'StartPointerLock', 'EndPointerLock', 'StartInteraction', 'Interaction', 'EndInteraction', 'AnimationFrameRateUpdate'];
24
-
24
+ const handledEvents = ['StartAnimation', 'Animation', 'EndAnimation', 'PointerEnter', 'PointerLeave', 'MouseEnter', 'MouseLeave', 'StartMouseMove', 'MouseMove', 'EndMouseMove', 'LeftButtonPress', 'LeftButtonRelease', 'MiddleButtonPress', 'MiddleButtonRelease', 'RightButtonPress', 'RightButtonRelease', 'KeyPress', 'KeyDown', 'KeyUp', 'StartMouseWheel', 'MouseWheel', 'EndMouseWheel', 'StartPinch', 'Pinch', 'EndPinch', 'StartPan', 'Pan', 'EndPan', 'StartRotate', 'Rotate', 'EndRotate', 'Button3D', 'Move3D', 'StartPointerLock', 'EndPointerLock', 'StartInteraction', 'Interaction', 'EndInteraction', 'AnimationFrameRateUpdate'];
25
25
  function preventDefault(event) {
26
26
  if (event.cancelable) {
27
27
  event.preventDefault();
28
28
  }
29
29
  }
30
-
31
30
  function pointerCacheToPositions(cache) {
32
- var positions = Object.create(null);
33
- cache.forEach(function (_ref) {
34
- var pointerId = _ref.pointerId,
35
- position = _ref.position;
31
+ const positions = Object.create(null);
32
+ cache.forEach(_ref => {
33
+ let {
34
+ pointerId,
35
+ position
36
+ } = _ref;
36
37
  positions[pointerId] = position;
37
38
  });
38
39
  return positions;
39
- } // ----------------------------------------------------------------------------
40
+ }
41
+
42
+ // ----------------------------------------------------------------------------
40
43
  // vtkRenderWindowInteractor methods
41
44
  // ----------------------------------------------------------------------------
42
45
 
43
-
44
46
  function vtkRenderWindowInteractor(publicAPI, model) {
45
47
  // Set our className
46
- model.classHierarchy.push('vtkRenderWindowInteractor'); // Initialize list of requesters
48
+ model.classHierarchy.push('vtkRenderWindowInteractor');
47
49
 
48
- var animationRequesters = new Set(); // map from pointerId to { pointerId: number, position: [x, y] }
50
+ // Initialize list of requesters
51
+ const animationRequesters = new Set();
49
52
 
50
- var pointerCache = new Map(); // Factor to apply on wheel spin.
53
+ // map from pointerId to { pointerId: number, position: [x, y] }
54
+ const pointerCache = new Map();
51
55
 
52
- var wheelCoefficient = 1; // Public API methods
53
- //----------------------------------------------------------------------
56
+ // Factor to apply on wheel spin.
57
+ let wheelCoefficient = 1;
58
+
59
+ // Public API methods
54
60
 
55
- publicAPI.start = function () {
61
+ //----------------------------------------------------------------------
62
+ publicAPI.start = () => {
56
63
  // Let the compositing handle the event loop if it wants to.
57
64
  // if (publicAPI.HasObserver(vtkCommand::StartEvent) && !publicAPI.HandleEventLoop) {
58
65
  // publicAPI.invokeEvent({ type: 'StartEvent' });
59
66
  // return;
60
67
  // }
68
+
61
69
  // As a convenience, initialize if we aren't initialized yet.
62
70
  if (!model.initialized) {
63
71
  publicAPI.initialize();
64
-
65
72
  if (!model.initialized) {
66
73
  return;
67
74
  }
68
- } // Pass execution to the subclass which will run the event loop,
75
+ }
76
+ // Pass execution to the subclass which will run the event loop,
69
77
  // this will not return until TerminateApp is called.
70
-
71
-
72
78
  publicAPI.startEventLoop();
73
- }; //----------------------------------------------------------------------
74
-
79
+ };
75
80
 
76
- publicAPI.setRenderWindow = function (aren) {
81
+ //----------------------------------------------------------------------
82
+ publicAPI.setRenderWindow = aren => {
77
83
  vtkErrorMacro('you want to call setView(view) instead of setRenderWindow on a vtk.js interactor');
78
- }; //----------------------------------------------------------------------
79
-
84
+ };
80
85
 
81
- publicAPI.setInteractorStyle = function (style) {
86
+ //----------------------------------------------------------------------
87
+ publicAPI.setInteractorStyle = style => {
82
88
  if (model.interactorStyle !== style) {
83
89
  if (model.interactorStyle != null) {
84
90
  model.interactorStyle.setInteractor(null);
85
91
  }
86
-
87
92
  model.interactorStyle = style;
88
-
89
93
  if (model.interactorStyle != null) {
90
94
  if (model.interactorStyle.getInteractor() !== publicAPI) {
91
95
  model.interactorStyle.setInteractor(publicAPI);
92
96
  }
93
97
  }
94
98
  }
95
- }; //---------------------------------------------------------------------
96
-
99
+ };
97
100
 
98
- publicAPI.initialize = function () {
101
+ //---------------------------------------------------------------------
102
+ publicAPI.initialize = () => {
99
103
  model.initialized = true;
100
104
  publicAPI.enable();
101
105
  publicAPI.render();
102
106
  };
103
-
104
- publicAPI.enable = function () {
105
- return publicAPI.setEnabled(true);
106
- };
107
-
108
- publicAPI.disable = function () {
109
- return publicAPI.setEnabled(false);
110
- };
111
-
112
- publicAPI.startEventLoop = function () {
113
- return vtkWarningMacro('empty event loop');
114
- };
115
-
107
+ publicAPI.enable = () => publicAPI.setEnabled(true);
108
+ publicAPI.disable = () => publicAPI.setEnabled(false);
109
+ publicAPI.startEventLoop = () => vtkWarningMacro('empty event loop');
116
110
  function updateCurrentRenderer(x, y) {
117
111
  if (!model._forcedRenderer) {
118
112
  model.currentRenderer = publicAPI.findPokedRenderer(x, y);
119
113
  }
120
114
  }
121
-
122
- publicAPI.getCurrentRenderer = function () {
115
+ publicAPI.getCurrentRenderer = () => {
123
116
  if (model.currentRenderer) {
124
117
  return model.currentRenderer;
125
118
  }
126
-
127
119
  updateCurrentRenderer(0, 0);
128
120
  return model.currentRenderer;
129
121
  };
130
-
131
122
  function _getScreenEventPositionFor(source) {
132
- var canvas = model._view.getCanvas();
133
-
134
- var bounds = canvas.getBoundingClientRect();
135
- var scaleX = canvas.width / bounds.width;
136
- var scaleY = canvas.height / bounds.height;
137
- var position = {
123
+ const canvas = model._view.getCanvas();
124
+ const bounds = canvas.getBoundingClientRect();
125
+ const scaleX = canvas.width / bounds.width;
126
+ const scaleY = canvas.height / bounds.height;
127
+ const position = {
138
128
  x: scaleX * (source.clientX - bounds.left),
139
129
  y: scaleY * (bounds.height - source.clientY + bounds.top),
140
130
  z: 0
141
- }; // if multitouch, do not update the current renderer
131
+ };
142
132
 
133
+ // if multitouch, do not update the current renderer
143
134
  if (pointerCache.size <= 1 || !model.currentRenderer) {
144
135
  updateCurrentRenderer(position.x, position.y);
145
136
  }
146
-
147
137
  return position;
148
- } // Allow user to override it
149
-
150
-
151
- var getScreenEventPositionFor = model._getScreenEventPositionFor || _getScreenEventPositionFor;
152
-
138
+ }
139
+ // Allow user to override it
140
+ const getScreenEventPositionFor = model._getScreenEventPositionFor || _getScreenEventPositionFor;
153
141
  function getModifierKeysFor(event) {
154
142
  return {
155
143
  controlKey: event.ctrlKey,
@@ -157,23 +145,19 @@ function vtkRenderWindowInteractor(publicAPI, model) {
157
145
  shiftKey: event.shiftKey
158
146
  };
159
147
  }
160
-
161
148
  function getKeysFor(event) {
162
- var modifierKeys = getModifierKeysFor(event);
163
-
164
- var keys = _objectSpread({
149
+ const modifierKeys = getModifierKeysFor(event);
150
+ const keys = {
165
151
  key: event.key,
166
- keyCode: event.charCode
167
- }, modifierKeys);
168
-
152
+ keyCode: event.charCode,
153
+ ...modifierKeys
154
+ };
169
155
  return keys;
170
156
  }
171
-
172
157
  function getDeviceTypeFor(event) {
173
158
  return event.pointerType || '';
174
159
  }
175
-
176
- publicAPI.bindEvents = function (container) {
160
+ publicAPI.bindEvents = container => {
177
161
  model.container = container;
178
162
  container.addEventListener('contextmenu', preventDefault);
179
163
  container.addEventListener('wheel', publicAPI.handleWheel);
@@ -191,17 +175,19 @@ function vtkRenderWindowInteractor(publicAPI, model) {
191
175
  document.addEventListener('keypress', publicAPI.handleKeyPress);
192
176
  document.addEventListener('keydown', publicAPI.handleKeyDown);
193
177
  document.addEventListener('keyup', publicAPI.handleKeyUp);
194
- document.addEventListener('pointerlockchange', publicAPI.handlePointerLockChange); // using touchAction is more performant than preventDefault
195
- // in a touchstart handler.
178
+ document.addEventListener('pointerlockchange', publicAPI.handlePointerLockChange);
196
179
 
180
+ // using touchAction is more performant than preventDefault
181
+ // in a touchstart handler.
197
182
  container.style.touchAction = 'none';
198
- container.style.userSelect = 'none'; // disables tap highlight for when cursor is pointer
199
-
183
+ container.style.userSelect = 'none';
184
+ // disables tap highlight for when cursor is pointer
200
185
  container.style.webkitTapHighlightColor = 'rgba(0,0,0,0)';
201
186
  };
202
-
203
- publicAPI.unbindEvents = function () {
204
- var container = model.container;
187
+ publicAPI.unbindEvents = () => {
188
+ const {
189
+ container
190
+ } = model;
205
191
  container.removeEventListener('contextmenu', preventDefault);
206
192
  container.removeEventListener('wheel', publicAPI.handleWheel);
207
193
  container.removeEventListener('DOMMouseScroll', publicAPI.handleWheel);
@@ -222,101 +208,82 @@ function vtkRenderWindowInteractor(publicAPI, model) {
222
208
  model.container = null;
223
209
  pointerCache.clear();
224
210
  };
225
-
226
- publicAPI.handleKeyPress = function (event) {
227
- var data = getKeysFor(event);
211
+ publicAPI.handleKeyPress = event => {
212
+ const data = getKeysFor(event);
228
213
  publicAPI.keyPressEvent(data);
229
214
  };
230
-
231
- publicAPI.handleKeyDown = function (event) {
232
- var data = getKeysFor(event);
215
+ publicAPI.handleKeyDown = event => {
216
+ const data = getKeysFor(event);
233
217
  publicAPI.keyDownEvent(data);
234
218
  };
235
-
236
- publicAPI.handleKeyUp = function (event) {
237
- var data = getKeysFor(event);
219
+ publicAPI.handleKeyUp = event => {
220
+ const data = getKeysFor(event);
238
221
  publicAPI.keyUpEvent(data);
239
222
  };
240
-
241
- publicAPI.handlePointerEnter = function (event) {
242
- var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(event)), {}, {
223
+ publicAPI.handlePointerEnter = event => {
224
+ const callData = {
225
+ ...getModifierKeysFor(event),
243
226
  position: getScreenEventPositionFor(event),
244
227
  deviceType: getDeviceTypeFor(event)
245
- });
246
-
228
+ };
247
229
  publicAPI.pointerEnterEvent(callData);
248
-
249
230
  if (callData.deviceType === 'mouse') {
250
231
  publicAPI.mouseEnterEvent(callData);
251
232
  }
252
233
  };
253
-
254
- publicAPI.handlePointerLeave = function (event) {
255
- var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(event)), {}, {
234
+ publicAPI.handlePointerLeave = event => {
235
+ const callData = {
236
+ ...getModifierKeysFor(event),
256
237
  position: getScreenEventPositionFor(event),
257
238
  deviceType: getDeviceTypeFor(event)
258
- });
259
-
239
+ };
260
240
  publicAPI.pointerLeaveEvent(callData);
261
-
262
241
  if (callData.deviceType === 'mouse') {
263
242
  publicAPI.mouseLeaveEvent(callData);
264
243
  }
265
244
  };
266
-
267
- publicAPI.handlePointerDown = function (event) {
245
+ publicAPI.handlePointerDown = event => {
268
246
  if (event.button > 2 || publicAPI.isPointerLocked()) {
269
247
  // ignore events from extra mouse buttons such as `back` and `forward`
270
248
  return;
271
249
  }
272
-
273
250
  if (model.preventDefaultOnPointerDown) {
274
251
  preventDefault(event);
275
252
  }
276
-
277
253
  if (event.target.hasPointerCapture(event.pointerId)) {
278
254
  event.target.releasePointerCapture(event.pointerId);
279
255
  }
280
-
281
256
  model.container.setPointerCapture(event.pointerId);
282
-
283
257
  if (pointerCache.has(event.pointerId)) {
284
258
  vtkWarningMacro('[RenderWindowInteractor] duplicate pointerId detected');
285
259
  }
286
-
287
260
  pointerCache.set(event.pointerId, {
288
261
  pointerId: event.pointerId,
289
262
  position: getScreenEventPositionFor(event)
290
263
  });
291
-
292
264
  switch (event.pointerType) {
293
265
  case 'pen':
294
266
  case 'touch':
295
267
  publicAPI.handleTouchStart(event);
296
268
  break;
297
-
298
269
  case 'mouse':
299
270
  default:
300
271
  publicAPI.handleMouseDown(event);
301
272
  break;
302
273
  }
303
274
  };
304
-
305
- publicAPI.handlePointerUp = function (event) {
275
+ publicAPI.handlePointerUp = event => {
306
276
  if (pointerCache.has(event.pointerId)) {
307
277
  if (model.preventDefaultOnPointerUp) {
308
278
  preventDefault(event);
309
279
  }
310
-
311
280
  pointerCache.delete(event.pointerId);
312
281
  model.container.releasePointerCapture(event.pointerId);
313
-
314
282
  switch (event.pointerType) {
315
283
  case 'pen':
316
284
  case 'touch':
317
285
  publicAPI.handleTouchEnd(event);
318
286
  break;
319
-
320
287
  case 'mouse':
321
288
  default:
322
289
  publicAPI.handleMouseUp(event);
@@ -324,17 +291,14 @@ function vtkRenderWindowInteractor(publicAPI, model) {
324
291
  }
325
292
  }
326
293
  };
327
-
328
- publicAPI.handlePointerCancel = function (event) {
294
+ publicAPI.handlePointerCancel = event => {
329
295
  if (pointerCache.has(event.pointerId)) {
330
296
  pointerCache.delete(event.pointerId);
331
-
332
297
  switch (event.pointerType) {
333
298
  case 'pen':
334
299
  case 'touch':
335
300
  publicAPI.handleTouchEnd(event);
336
301
  break;
337
-
338
302
  case 'mouse':
339
303
  default:
340
304
  publicAPI.handleMouseUp(event);
@@ -342,121 +306,100 @@ function vtkRenderWindowInteractor(publicAPI, model) {
342
306
  }
343
307
  }
344
308
  };
345
-
346
- publicAPI.handlePointerMove = function (event) {
309
+ publicAPI.handlePointerMove = event => {
347
310
  if (pointerCache.has(event.pointerId)) {
348
- var pointer = pointerCache.get(event.pointerId);
311
+ const pointer = pointerCache.get(event.pointerId);
349
312
  pointer.position = getScreenEventPositionFor(event);
350
313
  }
351
-
352
314
  switch (event.pointerType) {
353
315
  case 'pen':
354
316
  case 'touch':
355
317
  publicAPI.handleTouchMove(event);
356
318
  break;
357
-
358
319
  case 'mouse':
359
320
  default:
360
321
  publicAPI.handleMouseMove(event);
361
322
  break;
362
323
  }
363
324
  };
364
-
365
- publicAPI.handleMouseDown = function (event) {
366
- var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(event)), {}, {
325
+ publicAPI.handleMouseDown = event => {
326
+ const callData = {
327
+ ...getModifierKeysFor(event),
367
328
  position: getScreenEventPositionFor(event),
368
329
  deviceType: getDeviceTypeFor(event)
369
- });
370
-
330
+ };
371
331
  switch (event.button) {
372
332
  case 0:
373
333
  publicAPI.leftButtonPressEvent(callData);
374
334
  break;
375
-
376
335
  case 1:
377
336
  publicAPI.middleButtonPressEvent(callData);
378
337
  break;
379
-
380
338
  case 2:
381
339
  publicAPI.rightButtonPressEvent(callData);
382
340
  break;
383
-
384
341
  default:
385
- vtkErrorMacro("Unknown mouse button pressed: ".concat(event.button));
342
+ vtkErrorMacro(`Unknown mouse button pressed: ${event.button}`);
386
343
  break;
387
344
  }
388
- }; //----------------------------------------------------------------------
389
-
345
+ };
390
346
 
391
- publicAPI.requestPointerLock = function () {
347
+ //----------------------------------------------------------------------
348
+ publicAPI.requestPointerLock = () => {
392
349
  if (model.container) {
393
350
  model.container.requestPointerLock();
394
351
  }
395
- }; //----------------------------------------------------------------------
396
-
397
-
398
- publicAPI.exitPointerLock = function () {
399
- var _document$exitPointer, _document;
400
-
401
- return (_document$exitPointer = (_document = document).exitPointerLock) === null || _document$exitPointer === void 0 ? void 0 : _document$exitPointer.call(_document);
402
- }; //----------------------------------------------------------------------
403
-
352
+ };
404
353
 
405
- publicAPI.isPointerLocked = function () {
406
- return !!model.container && document.pointerLockElement === model.container;
407
- }; //----------------------------------------------------------------------
354
+ //----------------------------------------------------------------------
355
+ publicAPI.exitPointerLock = () => document.exitPointerLock?.();
408
356
 
357
+ //----------------------------------------------------------------------
358
+ publicAPI.isPointerLocked = () => !!model.container && document.pointerLockElement === model.container;
409
359
 
410
- publicAPI.handlePointerLockChange = function () {
360
+ //----------------------------------------------------------------------
361
+ publicAPI.handlePointerLockChange = () => {
411
362
  if (publicAPI.isPointerLocked()) {
412
363
  publicAPI.startPointerLockEvent();
413
364
  } else {
414
365
  publicAPI.endPointerLockEvent();
415
366
  }
416
- }; //----------------------------------------------------------------------
417
-
367
+ };
418
368
 
369
+ //----------------------------------------------------------------------
419
370
  function forceRender() {
420
371
  if (model._view && model.enabled && model.enableRender) {
421
372
  model.inRender = true;
422
-
423
373
  model._view.traverseAllPasses();
424
-
425
374
  model.inRender = false;
426
- } // outside the above test so that third-party code can redirect
375
+ }
376
+ // outside the above test so that third-party code can redirect
427
377
  // the render to the appropriate class
428
-
429
-
430
378
  publicAPI.invokeRenderEvent();
431
379
  }
432
-
433
- publicAPI.requestAnimation = function (requestor) {
380
+ publicAPI.requestAnimation = requestor => {
434
381
  if (requestor === undefined) {
435
- vtkErrorMacro("undefined requester, can not start animating");
382
+ vtkErrorMacro(`undefined requester, can not start animating`);
436
383
  return;
437
384
  }
438
-
439
385
  if (animationRequesters.has(requestor)) {
440
- vtkWarningMacro("requester is already registered for animating");
386
+ vtkWarningMacro(`requester is already registered for animating`);
441
387
  return;
442
388
  }
443
-
444
389
  animationRequesters.add(requestor);
445
-
446
390
  if (!model.animationRequest && animationRequesters.size === 1 && !model.xrAnimation) {
447
391
  model._animationStartTime = Date.now();
448
392
  model._animationFrameCount = 0;
449
393
  model.animationRequest = requestAnimationFrame(publicAPI.handleAnimation);
450
394
  publicAPI.startAnimationEvent();
451
395
  }
452
- }; // continue animating for at least the specified duration of
453
- // milliseconds.
454
-
396
+ };
455
397
 
456
- publicAPI.extendAnimation = function (duration) {
457
- var newEnd = Date.now() + duration;
398
+ // continue animating for at least the specified duration of
399
+ // milliseconds.
400
+ publicAPI.extendAnimation = duration => {
401
+ const newEnd = Date.now() + duration;
458
402
  model._animationExtendedEnd = Math.max(model._animationExtendedEnd, newEnd);
459
-
460
403
  if (!model.animationRequest && animationRequesters.size === 0 && !model.xrAnimation) {
461
404
  model._animationStartTime = Date.now();
462
405
  model._animationFrameCount = 0;
@@ -464,25 +407,17 @@ function vtkRenderWindowInteractor(publicAPI, model) {
464
407
  publicAPI.startAnimationEvent();
465
408
  }
466
409
  };
467
-
468
- publicAPI.isAnimating = function () {
469
- return model.xrAnimation || model.animationRequest !== null;
470
- };
471
-
410
+ publicAPI.isAnimating = () => model.xrAnimation || model.animationRequest !== null;
472
411
  publicAPI.cancelAnimation = function (requestor) {
473
- var skipWarning = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
474
-
412
+ let skipWarning = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
475
413
  if (!animationRequesters.has(requestor)) {
476
414
  if (!skipWarning) {
477
- var requestStr = requestor && requestor.getClassName ? requestor.getClassName() : requestor;
478
- vtkWarningMacro("".concat(requestStr, " did not request an animation"));
415
+ const requestStr = requestor && requestor.getClassName ? requestor.getClassName() : requestor;
416
+ vtkWarningMacro(`${requestStr} did not request an animation`);
479
417
  }
480
-
481
418
  return;
482
419
  }
483
-
484
420
  animationRequesters.delete(requestor);
485
-
486
421
  if (model.animationRequest && animationRequesters.size === 0 && Date.now() > model._animationExtendedEnd) {
487
422
  cancelAnimationFrame(model.animationRequest);
488
423
  model.animationRequest = null;
@@ -490,33 +425,27 @@ function vtkRenderWindowInteractor(publicAPI, model) {
490
425
  publicAPI.render();
491
426
  }
492
427
  };
493
-
494
- publicAPI.switchToXRAnimation = function () {
428
+ publicAPI.switchToXRAnimation = () => {
495
429
  // cancel existing animation if any
496
430
  if (model.animationRequest) {
497
431
  cancelAnimationFrame(model.animationRequest);
498
432
  model.animationRequest = null;
499
433
  }
500
-
501
434
  model.xrAnimation = true;
502
435
  };
503
-
504
- publicAPI.returnFromXRAnimation = function () {
436
+ publicAPI.returnFromXRAnimation = () => {
505
437
  model.xrAnimation = false;
506
-
507
438
  if (animationRequesters.size !== 0) {
508
439
  model.recentAnimationFrameRate = 10.0;
509
440
  model.animationRequest = requestAnimationFrame(publicAPI.handleAnimation);
510
441
  }
511
442
  };
512
-
513
- publicAPI.updateXRGamepads = function (xrSession, xrFrame, xrRefSpace) {
443
+ publicAPI.updateXRGamepads = (xrSession, xrFrame, xrRefSpace) => {
514
444
  // watch for when buttons change state and fire events
515
- xrSession.inputSources.forEach(function (inputSource) {
516
- var gripPose = inputSource.gripSpace == null ? null : xrFrame.getPose(inputSource.gripSpace, xrRefSpace);
517
- var gp = inputSource.gamepad;
518
- var hand = inputSource.handedness;
519
-
445
+ xrSession.inputSources.forEach(inputSource => {
446
+ const gripPose = inputSource.gripSpace == null ? null : xrFrame.getPose(inputSource.gripSpace, xrRefSpace);
447
+ const gp = inputSource.gamepad;
448
+ const hand = inputSource.handedness;
520
449
  if (gp) {
521
450
  if (!(gp.index in model.lastGamepadValues)) {
522
451
  model.lastGamepadValues[gp.index] = {
@@ -531,12 +460,10 @@ function vtkRenderWindowInteractor(publicAPI, model) {
531
460
  }
532
461
  };
533
462
  }
534
-
535
- for (var b = 0; b < gp.buttons.length; ++b) {
463
+ for (let b = 0; b < gp.buttons.length; ++b) {
536
464
  if (!(b in model.lastGamepadValues[gp.index][hand].buttons)) {
537
465
  model.lastGamepadValues[gp.index][hand].buttons[b] = false;
538
466
  }
539
-
540
467
  if (model.lastGamepadValues[gp.index][hand].buttons[b] !== gp.buttons[b].pressed && gripPose != null) {
541
468
  publicAPI.button3DEvent({
542
469
  gamepad: gp,
@@ -548,7 +475,6 @@ function vtkRenderWindowInteractor(publicAPI, model) {
548
475
  });
549
476
  model.lastGamepadValues[gp.index][hand].buttons[b] = gp.buttons[b].pressed;
550
477
  }
551
-
552
478
  if (model.lastGamepadValues[gp.index][hand].buttons[b] && gripPose != null) {
553
479
  publicAPI.move3DEvent({
554
480
  gamepad: gp,
@@ -561,31 +487,28 @@ function vtkRenderWindowInteractor(publicAPI, model) {
561
487
  }
562
488
  });
563
489
  };
564
-
565
- publicAPI.handleMouseMove = function (event) {
566
- var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(event)), {}, {
490
+ publicAPI.handleMouseMove = event => {
491
+ const callData = {
492
+ ...getModifierKeysFor(event),
567
493
  position: getScreenEventPositionFor(event),
568
494
  deviceType: getDeviceTypeFor(event)
569
- });
570
-
495
+ };
571
496
  if (model.moveTimeoutID === 0) {
572
497
  publicAPI.startMouseMoveEvent(callData);
573
498
  } else {
574
499
  publicAPI.mouseMoveEvent(callData);
575
500
  clearTimeout(model.moveTimeoutID);
576
- } // start a timer to keep us animating while we get mouse move events
577
-
501
+ }
578
502
 
579
- model.moveTimeoutID = setTimeout(function () {
503
+ // start a timer to keep us animating while we get mouse move events
504
+ model.moveTimeoutID = setTimeout(() => {
580
505
  publicAPI.endMouseMoveEvent();
581
506
  model.moveTimeoutID = 0;
582
507
  }, 200);
583
508
  };
584
-
585
- publicAPI.handleAnimation = function () {
586
- var currTime = Date.now();
509
+ publicAPI.handleAnimation = () => {
510
+ const currTime = Date.now();
587
511
  model._animationFrameCount++;
588
-
589
512
  if (currTime - model._animationStartTime > 1000.0 && model._animationFrameCount > 1) {
590
513
  model.recentAnimationFrameRate = 1000.0 * (model._animationFrameCount - 1) / (currTime - model._animationStartTime);
591
514
  model.lastFrameTime = 1.0 / model.recentAnimationFrameRate;
@@ -593,10 +516,8 @@ function vtkRenderWindowInteractor(publicAPI, model) {
593
516
  model._animationStartTime = currTime;
594
517
  model._animationFrameCount = 1;
595
518
  }
596
-
597
519
  publicAPI.animationEvent();
598
520
  forceRender();
599
-
600
521
  if (animationRequesters.size > 0 || Date.now() < model._animationExtendedEnd) {
601
522
  model.animationRequest = requestAnimationFrame(publicAPI.handleAnimation);
602
523
  } else {
@@ -606,9 +527,9 @@ function vtkRenderWindowInteractor(publicAPI, model) {
606
527
  publicAPI.render();
607
528
  }
608
529
  };
609
-
610
- publicAPI.handleWheel = function (event) {
530
+ publicAPI.handleWheel = event => {
611
531
  preventDefault(event);
532
+
612
533
  /**
613
534
  * wheel event values can vary significantly across browsers, platforms
614
535
  * and devices [1]. `normalizeWheel` uses facebook's solution from their
@@ -625,18 +546,19 @@ function vtkRenderWindowInteractor(publicAPI, model) {
625
546
  * pixelY -- " - y plane
626
547
  *
627
548
  */
628
-
629
- var callData = _objectSpread(_objectSpread(_objectSpread({}, normalizeWheel(event)), getModifierKeysFor(event)), {}, {
549
+ const callData = {
550
+ ...normalizeWheel(event),
551
+ ...getModifierKeysFor(event),
630
552
  position: getScreenEventPositionFor(event),
631
553
  deviceType: getDeviceTypeFor(event)
632
- }); // Wheel events are thought to scroll pages (i.e. multiple lines at once).
554
+ };
555
+
556
+ // Wheel events are thought to scroll pages (i.e. multiple lines at once).
633
557
  // See normalizeWheel() documentation for more context.
634
558
  // While trackpad wheel events are many small (<1) wheel spins,
635
559
  // mouse wheel events have absolute spin values higher than 1.
636
560
  // Here the first spin value is "recorded", and used to normalize
637
561
  // all the following mouse wheel events.
638
-
639
-
640
562
  if (model.wheelTimeoutID === 0) {
641
563
  // we attempt to distinguish between trackpads and mice
642
564
  // .3 will be larger than the first trackpad event,
@@ -649,9 +571,7 @@ function vtkRenderWindowInteractor(publicAPI, model) {
649
571
  wheelCoefficient = 1;
650
572
  }
651
573
  }
652
-
653
574
  callData.spinY /= wheelCoefficient;
654
-
655
575
  if (model.wheelTimeoutID === 0) {
656
576
  publicAPI.startMouseWheelEvent(callData);
657
577
  publicAPI.mouseWheelEvent(callData);
@@ -659,334 +579,298 @@ function vtkRenderWindowInteractor(publicAPI, model) {
659
579
  publicAPI.mouseWheelEvent(callData);
660
580
  clearTimeout(model.wheelTimeoutID);
661
581
  }
662
-
663
582
  if (model.mouseScrollDebounceByPass) {
664
583
  publicAPI.extendAnimation(600);
665
584
  publicAPI.endMouseWheelEvent();
666
585
  model.wheelTimeoutID = 0;
667
586
  } else {
668
587
  // start a timer to keep us animating while we get wheel events
669
- model.wheelTimeoutID = setTimeout(function () {
588
+ model.wheelTimeoutID = setTimeout(() => {
670
589
  publicAPI.extendAnimation(600);
671
590
  publicAPI.endMouseWheelEvent();
672
591
  model.wheelTimeoutID = 0;
673
592
  }, 200);
674
593
  }
675
594
  };
676
-
677
- publicAPI.handleMouseUp = function (event) {
678
- var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(event)), {}, {
595
+ publicAPI.handleMouseUp = event => {
596
+ const callData = {
597
+ ...getModifierKeysFor(event),
679
598
  position: getScreenEventPositionFor(event),
680
599
  deviceType: getDeviceTypeFor(event)
681
- });
682
-
600
+ };
683
601
  switch (event.button) {
684
602
  case 0:
685
603
  publicAPI.leftButtonReleaseEvent(callData);
686
604
  break;
687
-
688
605
  case 1:
689
606
  publicAPI.middleButtonReleaseEvent(callData);
690
607
  break;
691
-
692
608
  case 2:
693
609
  publicAPI.rightButtonReleaseEvent(callData);
694
610
  break;
695
-
696
611
  default:
697
- vtkErrorMacro("Unknown mouse button released: ".concat(event.button));
612
+ vtkErrorMacro(`Unknown mouse button released: ${event.button}`);
698
613
  break;
699
614
  }
700
615
  };
701
-
702
- publicAPI.handleTouchStart = function (event) {
703
- var pointers = _toConsumableArray(pointerCache.values()); // If multitouch
704
-
705
-
616
+ publicAPI.handleTouchStart = event => {
617
+ const pointers = [...pointerCache.values()];
618
+ // If multitouch
706
619
  if (model.recognizeGestures && pointers.length > 1) {
707
- var positions = pointerCacheToPositions(pointerCache); // did we just transition to multitouch?
708
-
620
+ const positions = pointerCacheToPositions(pointerCache);
621
+ // did we just transition to multitouch?
709
622
  if (pointers.length === 2) {
710
- var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(EMPTY_MOUSE_EVENT)), {}, {
623
+ const callData = {
624
+ ...getModifierKeysFor(EMPTY_MOUSE_EVENT),
711
625
  position: pointers[0].position,
712
626
  deviceType: getDeviceTypeFor(event)
713
- });
714
-
627
+ };
715
628
  publicAPI.leftButtonReleaseEvent(callData);
716
- } // handle the gesture
717
-
718
-
629
+ }
630
+ // handle the gesture
719
631
  publicAPI.recognizeGesture('TouchStart', positions);
720
632
  } else if (pointers.length === 1) {
721
- var _callData = _objectSpread(_objectSpread({}, getModifierKeysFor(EMPTY_MOUSE_EVENT)), {}, {
633
+ const callData = {
634
+ ...getModifierKeysFor(EMPTY_MOUSE_EVENT),
722
635
  position: getScreenEventPositionFor(event),
723
636
  deviceType: getDeviceTypeFor(event)
724
- });
725
-
726
- publicAPI.leftButtonPressEvent(_callData);
637
+ };
638
+ publicAPI.leftButtonPressEvent(callData);
727
639
  }
728
640
  };
729
-
730
- publicAPI.handleTouchMove = function (event) {
731
- var pointers = _toConsumableArray(pointerCache.values());
732
-
641
+ publicAPI.handleTouchMove = event => {
642
+ const pointers = [...pointerCache.values()];
733
643
  if (model.recognizeGestures && pointers.length > 1) {
734
- var positions = pointerCacheToPositions(pointerCache);
644
+ const positions = pointerCacheToPositions(pointerCache);
735
645
  publicAPI.recognizeGesture('TouchMove', positions);
736
646
  } else if (pointers.length === 1) {
737
- var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(EMPTY_MOUSE_EVENT)), {}, {
647
+ const callData = {
648
+ ...getModifierKeysFor(EMPTY_MOUSE_EVENT),
738
649
  position: pointers[0].position,
739
650
  deviceType: getDeviceTypeFor(event)
740
- });
741
-
651
+ };
742
652
  publicAPI.mouseMoveEvent(callData);
743
653
  }
744
654
  };
745
-
746
- publicAPI.handleTouchEnd = function (event) {
747
- var pointers = _toConsumableArray(pointerCache.values());
748
-
655
+ publicAPI.handleTouchEnd = event => {
656
+ const pointers = [...pointerCache.values()];
749
657
  if (model.recognizeGestures) {
750
658
  // No more fingers down
751
659
  if (pointers.length === 0) {
752
- var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(EMPTY_MOUSE_EVENT)), {}, {
660
+ const callData = {
661
+ ...getModifierKeysFor(EMPTY_MOUSE_EVENT),
753
662
  position: getScreenEventPositionFor(event),
754
663
  deviceType: getDeviceTypeFor(event)
755
- });
756
-
664
+ };
757
665
  publicAPI.leftButtonReleaseEvent(callData);
758
666
  } else if (pointers.length === 1) {
759
667
  // If one finger left, end touch and start button press
760
- var positions = pointerCacheToPositions(pointerCache);
668
+ const positions = pointerCacheToPositions(pointerCache);
761
669
  publicAPI.recognizeGesture('TouchEnd', positions);
762
-
763
- var _callData2 = _objectSpread(_objectSpread({}, getModifierKeysFor(EMPTY_MOUSE_EVENT)), {}, {
670
+ const callData = {
671
+ ...getModifierKeysFor(EMPTY_MOUSE_EVENT),
764
672
  position: pointers[0].position,
765
673
  deviceType: getDeviceTypeFor(event)
766
- });
767
-
768
- publicAPI.leftButtonPressEvent(_callData2);
674
+ };
675
+ publicAPI.leftButtonPressEvent(callData);
769
676
  } else {
770
677
  // If more than one finger left, keep touch move
771
- var _positions = pointerCacheToPositions(pointerCache);
772
-
773
- publicAPI.recognizeGesture('TouchMove', _positions);
678
+ const positions = pointerCacheToPositions(pointerCache);
679
+ publicAPI.recognizeGesture('TouchMove', positions);
774
680
  }
775
681
  } else if (pointers.length === 1) {
776
- var _callData3 = _objectSpread(_objectSpread({}, getModifierKeysFor(EMPTY_MOUSE_EVENT)), {}, {
682
+ const callData = {
683
+ ...getModifierKeysFor(EMPTY_MOUSE_EVENT),
777
684
  position: pointers[0].position,
778
685
  deviceType: getDeviceTypeFor(event)
779
- });
780
-
781
- publicAPI.leftButtonReleaseEvent(_callData3);
686
+ };
687
+ publicAPI.leftButtonReleaseEvent(callData);
782
688
  }
783
689
  };
784
-
785
- publicAPI.setView = function (val) {
690
+ publicAPI.setView = val => {
786
691
  if (model._view === val) {
787
692
  return;
788
693
  }
789
-
790
694
  model._view = val;
791
-
792
695
  model._view.getRenderable().setInteractor(publicAPI);
793
-
794
696
  publicAPI.modified();
795
697
  };
796
-
797
- publicAPI.getFirstRenderer = function () {
798
- var _model$_view, _model$_view$getRende, _model$_view$getRende2;
799
-
800
- return (_model$_view = model._view) === null || _model$_view === void 0 ? void 0 : (_model$_view$getRende = _model$_view.getRenderable()) === null || _model$_view$getRende === void 0 ? void 0 : (_model$_view$getRende2 = _model$_view$getRende.getRenderersByReference()) === null || _model$_view$getRende2 === void 0 ? void 0 : _model$_view$getRende2[0];
801
- };
802
-
698
+ publicAPI.getFirstRenderer = () => model._view?.getRenderable()?.getRenderersByReference()?.[0];
803
699
  publicAPI.findPokedRenderer = function () {
804
- var _model$_view2, _model$_view2$getRend;
805
-
806
- var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
807
- var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
808
-
700
+ let x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
701
+ let y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
809
702
  if (!model._view) {
810
703
  return null;
811
- } // The original order of renderers needs to remain as
704
+ }
705
+ // The original order of renderers needs to remain as
812
706
  // the first one is the one we want to manipulate the camera on.
813
-
814
-
815
- var rc = (_model$_view2 = model._view) === null || _model$_view2 === void 0 ? void 0 : (_model$_view2$getRend = _model$_view2.getRenderable()) === null || _model$_view2$getRend === void 0 ? void 0 : _model$_view2$getRend.getRenderers();
816
-
707
+ const rc = model._view?.getRenderable()?.getRenderers();
817
708
  if (!rc || rc.length === 0) {
818
709
  return null;
819
710
  }
820
-
821
- rc.sort(function (a, b) {
822
- return a.getLayer() - b.getLayer();
823
- });
824
- var interactiveren = null;
825
- var viewportren = null;
826
- var currentRenderer = null;
827
- var count = rc.length;
828
-
711
+ rc.sort((a, b) => a.getLayer() - b.getLayer());
712
+ let interactiveren = null;
713
+ let viewportren = null;
714
+ let currentRenderer = null;
715
+ let count = rc.length;
829
716
  while (count--) {
830
- var aren = rc[count];
831
-
717
+ const aren = rc[count];
832
718
  if (model._view.isInViewport(x, y, aren) && aren.getInteractive()) {
833
719
  currentRenderer = aren;
834
720
  break;
835
721
  }
836
-
837
722
  if (interactiveren === null && aren.getInteractive()) {
838
723
  // Save this renderer in case we can't find one in the viewport that
839
724
  // is interactive.
840
725
  interactiveren = aren;
841
726
  }
842
-
843
727
  if (viewportren === null && model._view.isInViewport(x, y, aren)) {
844
728
  // Save this renderer in case we can't find one in the viewport that
845
729
  // is interactive.
846
730
  viewportren = aren;
847
731
  }
848
- } // We must have a value. If we found an interactive renderer before, that's
849
- // better than a non-interactive renderer.
850
-
732
+ }
851
733
 
734
+ // We must have a value. If we found an interactive renderer before, that's
735
+ // better than a non-interactive renderer.
852
736
  if (currentRenderer === null) {
853
737
  currentRenderer = interactiveren;
854
- } // We must have a value. If we found a renderer that is in the viewport,
738
+ }
739
+
740
+ // We must have a value. If we found a renderer that is in the viewport,
855
741
  // that is better than any old viewport (but not as good as an interactive
856
742
  // one).
857
-
858
-
859
743
  if (currentRenderer === null) {
860
744
  currentRenderer = viewportren;
861
- } // We must have a value - take anything.
862
-
745
+ }
863
746
 
747
+ // We must have a value - take anything.
864
748
  if (currentRenderer == null) {
865
749
  currentRenderer = rc[0];
866
750
  }
867
-
868
751
  return currentRenderer;
869
- }; // only render if we are not animating. If we are animating
752
+ };
753
+
754
+ // only render if we are not animating. If we are animating
870
755
  // then renders will happen naturally anyhow and we definitely
871
756
  // do not want extra renders as the make the apparent interaction
872
757
  // rate slower.
873
-
874
-
875
- publicAPI.render = function () {
758
+ publicAPI.render = () => {
876
759
  if (!publicAPI.isAnimating() && !model.inRender) {
877
760
  forceRender();
878
761
  }
879
- }; // create the generic Event methods
880
-
881
-
882
- handledEvents.forEach(function (eventName) {
883
- var lowerFirst = eventName.charAt(0).toLowerCase() + eventName.slice(1);
762
+ };
884
763
 
885
- publicAPI["".concat(lowerFirst, "Event")] = function (arg) {
764
+ // create the generic Event methods
765
+ handledEvents.forEach(eventName => {
766
+ const lowerFirst = eventName.charAt(0).toLowerCase() + eventName.slice(1);
767
+ publicAPI[`${lowerFirst}Event`] = arg => {
886
768
  // Check that interactor enabled
887
769
  if (!model.enabled) {
888
770
  return;
889
- } // Check that a poked renderer exists
890
-
891
-
892
- var renderer = publicAPI.getCurrentRenderer();
771
+ }
893
772
 
773
+ // Check that a poked renderer exists
774
+ const renderer = publicAPI.getCurrentRenderer();
894
775
  if (!renderer) {
895
- vtkOnceErrorMacro("\n Can not forward events without a current renderer on the interactor.\n ");
776
+ vtkOnceErrorMacro(`
777
+ Can not forward events without a current renderer on the interactor.
778
+ `);
896
779
  return;
897
- } // Pass the eventName and the poked renderer
898
-
780
+ }
899
781
 
900
- var callData = _objectSpread({
782
+ // Pass the eventName and the poked renderer
783
+ const callData = {
901
784
  type: eventName,
902
785
  pokedRenderer: model.currentRenderer,
903
- firstRenderer: publicAPI.getFirstRenderer()
904
- }, arg); // Call invoke
905
-
786
+ firstRenderer: publicAPI.getFirstRenderer(),
787
+ // Add the arguments to the call data
788
+ ...arg
789
+ };
906
790
 
907
- publicAPI["invoke".concat(eventName)](callData);
791
+ // Call invoke
792
+ publicAPI[`invoke${eventName}`](callData);
908
793
  };
909
- }); // we know we are in multitouch now, so start recognizing
794
+ });
910
795
 
911
- publicAPI.recognizeGesture = function (event, positions) {
796
+ // we know we are in multitouch now, so start recognizing
797
+ publicAPI.recognizeGesture = (event, positions) => {
912
798
  // more than two pointers we ignore
913
799
  if (Object.keys(positions).length > 2) {
914
800
  return;
915
801
  }
916
-
917
802
  if (!model.startingEventPositions) {
918
803
  model.startingEventPositions = {};
919
- } // store the initial positions
920
-
804
+ }
921
805
 
806
+ // store the initial positions
922
807
  if (event === 'TouchStart') {
923
- Object.keys(positions).forEach(function (key) {
808
+ Object.keys(positions).forEach(key => {
924
809
  model.startingEventPositions[key] = positions[key];
925
- }); // we do not know what the gesture is yet
926
-
810
+ });
811
+ // we do not know what the gesture is yet
927
812
  model.currentGesture = 'Start';
928
813
  return;
929
- } // end the gesture if needed
930
-
814
+ }
931
815
 
816
+ // end the gesture if needed
932
817
  if (event === 'TouchEnd') {
933
818
  if (model.currentGesture === 'Pinch') {
934
819
  publicAPI.render();
935
820
  publicAPI.endPinchEvent();
936
821
  }
937
-
938
822
  if (model.currentGesture === 'Rotate') {
939
823
  publicAPI.render();
940
824
  publicAPI.endRotateEvent();
941
825
  }
942
-
943
826
  if (model.currentGesture === 'Pan') {
944
827
  publicAPI.render();
945
828
  publicAPI.endPanEvent();
946
829
  }
947
-
948
830
  model.currentGesture = 'Start';
949
831
  model.startingEventPositions = {};
950
832
  return;
951
- } // what are the two pointers we are working with
952
-
833
+ }
953
834
 
954
- var count = 0;
955
- var posVals = [];
956
- var startVals = [];
957
- Object.keys(positions).forEach(function (key) {
835
+ // what are the two pointers we are working with
836
+ let count = 0;
837
+ const posVals = [];
838
+ const startVals = [];
839
+ Object.keys(positions).forEach(key => {
958
840
  posVals[count] = positions[key];
959
841
  startVals[count] = model.startingEventPositions[key];
960
842
  count++;
961
- }); // The meat of the algorithm
843
+ });
844
+
845
+ // The meat of the algorithm
962
846
  // on move events we analyze them to determine what type
963
847
  // of movement it is and then deal with it.
964
848
  // calculate the distances
849
+ const originalDistance = Math.sqrt((startVals[0].x - startVals[1].x) * (startVals[0].x - startVals[1].x) + (startVals[0].y - startVals[1].y) * (startVals[0].y - startVals[1].y));
850
+ const newDistance = Math.sqrt((posVals[0].x - posVals[1].x) * (posVals[0].x - posVals[1].x) + (posVals[0].y - posVals[1].y) * (posVals[0].y - posVals[1].y));
965
851
 
966
- var originalDistance = Math.sqrt((startVals[0].x - startVals[1].x) * (startVals[0].x - startVals[1].x) + (startVals[0].y - startVals[1].y) * (startVals[0].y - startVals[1].y));
967
- var newDistance = Math.sqrt((posVals[0].x - posVals[1].x) * (posVals[0].x - posVals[1].x) + (posVals[0].y - posVals[1].y) * (posVals[0].y - posVals[1].y)); // calculate rotations
852
+ // calculate rotations
853
+ let originalAngle = degreesFromRadians(Math.atan2(startVals[1].y - startVals[0].y, startVals[1].x - startVals[0].x));
854
+ let newAngle = degreesFromRadians(Math.atan2(posVals[1].y - posVals[0].y, posVals[1].x - posVals[0].x));
968
855
 
969
- var originalAngle = degreesFromRadians(Math.atan2(startVals[1].y - startVals[0].y, startVals[1].x - startVals[0].x));
970
- var newAngle = degreesFromRadians(Math.atan2(posVals[1].y - posVals[0].y, posVals[1].x - posVals[0].x)); // angles are cyclic so watch for that, 1 and 359 are only 2 apart :)
971
-
972
- var angleDeviation = newAngle - originalAngle;
856
+ // angles are cyclic so watch for that, 1 and 359 are only 2 apart :)
857
+ let angleDeviation = newAngle - originalAngle;
973
858
  newAngle = newAngle + 180.0 >= 360.0 ? newAngle - 180.0 : newAngle + 180.0;
974
859
  originalAngle = originalAngle + 180.0 >= 360.0 ? originalAngle - 180.0 : originalAngle + 180.0;
975
-
976
860
  if (Math.abs(newAngle - originalAngle) < Math.abs(angleDeviation)) {
977
861
  angleDeviation = newAngle - originalAngle;
978
- } // calculate the translations
979
-
862
+ }
980
863
 
981
- var trans = [];
864
+ // calculate the translations
865
+ const trans = [];
982
866
  trans[0] = (posVals[0].x - startVals[0].x + posVals[1].x - startVals[1].x) / 2.0;
983
867
  trans[1] = (posVals[0].y - startVals[0].y + posVals[1].y - startVals[1].y) / 2.0;
984
-
985
868
  if (event === 'TouchMove') {
986
869
  // OK we want to
987
870
  // - immediately respond to the user
988
871
  // - allow the user to zoom without panning (saves focal point)
989
872
  // - allow the user to rotate without panning (saves focal point)
873
+
990
874
  // do we know what gesture we are doing yet? If not
991
875
  // see if we can figure it out
992
876
  if (model.currentGesture === 'Start') {
@@ -995,109 +879,99 @@ function vtkRenderWindowInteractor(publicAPI, model) {
995
879
  // pan is a move of the center point
996
880
  // compute the distance along each of these axes in pixels
997
881
  // the first to break thresh wins
998
- var thresh = 0.01 * Math.sqrt(model.container.clientWidth * model.container.clientWidth + model.container.clientHeight * model.container.clientHeight);
999
-
882
+ let thresh = 0.01 * Math.sqrt(model.container.clientWidth * model.container.clientWidth + model.container.clientHeight * model.container.clientHeight);
1000
883
  if (thresh < 15.0) {
1001
884
  thresh = 15.0;
1002
885
  }
1003
-
1004
- var pinchDistance = Math.abs(newDistance - originalDistance);
1005
- var rotateDistance = newDistance * 3.1415926 * Math.abs(angleDeviation) / 360.0;
1006
- var panDistance = Math.sqrt(trans[0] * trans[0] + trans[1] * trans[1]);
1007
-
886
+ const pinchDistance = Math.abs(newDistance - originalDistance);
887
+ const rotateDistance = newDistance * 3.1415926 * Math.abs(angleDeviation) / 360.0;
888
+ const panDistance = Math.sqrt(trans[0] * trans[0] + trans[1] * trans[1]);
1008
889
  if (pinchDistance > thresh && pinchDistance > rotateDistance && pinchDistance > panDistance) {
1009
890
  model.currentGesture = 'Pinch';
1010
- var callData = {
891
+ const callData = {
1011
892
  scale: 1.0,
1012
893
  touches: positions
1013
894
  };
1014
895
  publicAPI.startPinchEvent(callData);
1015
896
  } else if (rotateDistance > thresh && rotateDistance > panDistance) {
1016
897
  model.currentGesture = 'Rotate';
1017
- var _callData4 = {
898
+ const callData = {
1018
899
  rotation: 0.0,
1019
900
  touches: positions
1020
901
  };
1021
- publicAPI.startRotateEvent(_callData4);
902
+ publicAPI.startRotateEvent(callData);
1022
903
  } else if (panDistance > thresh) {
1023
904
  model.currentGesture = 'Pan';
1024
- var _callData5 = {
905
+ const callData = {
1025
906
  translation: [0, 0],
1026
907
  touches: positions
1027
908
  };
1028
- publicAPI.startPanEvent(_callData5);
909
+ publicAPI.startPanEvent(callData);
1029
910
  }
1030
911
  } else {
1031
912
  // if we have found a specific type of movement then
1032
913
  // handle it
1033
914
  if (model.currentGesture === 'Rotate') {
1034
- var _callData6 = {
915
+ const callData = {
1035
916
  rotation: angleDeviation,
1036
917
  touches: positions
1037
918
  };
1038
- publicAPI.rotateEvent(_callData6);
919
+ publicAPI.rotateEvent(callData);
1039
920
  }
1040
-
1041
921
  if (model.currentGesture === 'Pinch') {
1042
- var _callData7 = {
922
+ const callData = {
1043
923
  scale: newDistance / originalDistance,
1044
924
  touches: positions
1045
925
  };
1046
- publicAPI.pinchEvent(_callData7);
926
+ publicAPI.pinchEvent(callData);
1047
927
  }
1048
-
1049
928
  if (model.currentGesture === 'Pan') {
1050
- var _callData8 = {
929
+ const callData = {
1051
930
  translation: trans,
1052
931
  touches: positions
1053
932
  };
1054
- publicAPI.panEvent(_callData8);
933
+ publicAPI.panEvent(callData);
1055
934
  }
1056
935
  }
1057
936
  }
1058
937
  };
1059
-
1060
- publicAPI.handleVisibilityChange = function () {
938
+ publicAPI.handleVisibilityChange = () => {
1061
939
  model._animationStartTime = Date.now();
1062
940
  model._animationFrameCount = 0;
1063
941
  };
1064
-
1065
- publicAPI.setCurrentRenderer = function (r) {
942
+ publicAPI.setCurrentRenderer = r => {
1066
943
  model._forcedRenderer = !!r;
1067
944
  model.currentRenderer = r;
1068
- }; // Stop animating if the renderWindowInteractor is deleted.
1069
-
1070
-
1071
- var superDelete = publicAPI.delete;
945
+ };
1072
946
 
1073
- publicAPI.delete = function () {
947
+ // Stop animating if the renderWindowInteractor is deleted.
948
+ const superDelete = publicAPI.delete;
949
+ publicAPI.delete = () => {
1074
950
  while (animationRequesters.size) {
1075
951
  publicAPI.cancelAnimation(animationRequesters.values().next().value);
1076
952
  }
1077
-
1078
953
  if (typeof document.hidden !== 'undefined') {
1079
954
  document.removeEventListener('visibilitychange', publicAPI.handleVisibilityChange);
1080
955
  }
1081
-
1082
956
  if (model.container) {
1083
957
  publicAPI.unbindEvents();
1084
958
  }
1085
-
1086
959
  superDelete();
1087
- }; // Use the Page Visibility API to detect when we switch away from or back to
960
+ };
961
+
962
+ // Use the Page Visibility API to detect when we switch away from or back to
1088
963
  // this tab, and reset the animationFrameStart. When tabs are not active, browsers
1089
964
  // will stop calling requestAnimationFrame callbacks.
1090
-
1091
-
1092
965
  if (typeof document.hidden !== 'undefined') {
1093
966
  document.addEventListener('visibilitychange', publicAPI.handleVisibilityChange, false);
1094
967
  }
1095
- } // ----------------------------------------------------------------------------
968
+ }
969
+
970
+ // ----------------------------------------------------------------------------
1096
971
  // Object factory
1097
972
  // ----------------------------------------------------------------------------
1098
973
 
1099
-
1100
- var DEFAULT_VALUES = {
974
+ const DEFAULT_VALUES = {
1101
975
  renderWindow: null,
1102
976
  interactorStyle: null,
1103
977
  picker: null,
@@ -1122,35 +996,46 @@ var DEFAULT_VALUES = {
1122
996
  preventDefaultOnPointerDown: false,
1123
997
  preventDefaultOnPointerUp: false,
1124
998
  mouseScrollDebounceByPass: false
1125
- }; // ----------------------------------------------------------------------------
999
+ };
1000
+
1001
+ // ----------------------------------------------------------------------------
1126
1002
 
1127
1003
  function extend(publicAPI, model) {
1128
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1129
- Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods
1004
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1005
+ Object.assign(model, DEFAULT_VALUES, initialValues);
1130
1006
 
1131
- macro.obj(publicAPI, model); // run animation at least until this time
1007
+ // Object methods
1008
+ macro.obj(publicAPI, model);
1132
1009
 
1010
+ // run animation at least until this time
1133
1011
  model._animationExtendedEnd = 0;
1134
1012
  macro.event(publicAPI, model, 'RenderEvent');
1135
- handledEvents.forEach(function (eventName) {
1136
- return macro.event(publicAPI, model, eventName);
1137
- }); // Create get-only macros
1013
+ handledEvents.forEach(eventName => macro.event(publicAPI, model, eventName));
1138
1014
 
1139
- macro.get(publicAPI, model, ['initialized', 'container', 'interactorStyle', 'lastFrameTime', 'recentAnimationFrameRate', '_view']); // Create get-set macros
1015
+ // Create get-only macros
1016
+ macro.get(publicAPI, model, ['initialized', 'container', 'interactorStyle', 'lastFrameTime', 'recentAnimationFrameRate', '_view']);
1140
1017
 
1018
+ // Create get-set macros
1141
1019
  macro.setGet(publicAPI, model, ['lightFollowCamera', 'enabled', 'enableRender', 'recognizeGestures', 'desiredUpdateRate', 'stillUpdateRate', 'picker', 'preventDefaultOnPointerDown', 'preventDefaultOnPointerUp', 'mouseScrollDebounceByPass']);
1142
- macro.moveToProtected(publicAPI, model, ['view']); // For more macro methods, see "Sources/macros.js"
1143
- // Object specific methods
1020
+ macro.moveToProtected(publicAPI, model, ['view']);
1144
1021
 
1022
+ // For more macro methods, see "Sources/macros.js"
1023
+
1024
+ // Object specific methods
1145
1025
  vtkRenderWindowInteractor(publicAPI, model);
1146
- } // ----------------------------------------------------------------------------
1026
+ }
1027
+
1028
+ // ----------------------------------------------------------------------------
1029
+
1030
+ const newInstance = macro.newInstance(extend, 'vtkRenderWindowInteractor');
1147
1031
 
1148
- var newInstance = macro.newInstance(extend, 'vtkRenderWindowInteractor'); // ----------------------------------------------------------------------------
1032
+ // ----------------------------------------------------------------------------
1149
1033
 
1150
- var vtkRenderWindowInteractor$1 = _objectSpread({
1151
- newInstance: newInstance,
1152
- extend: extend,
1153
- handledEvents: handledEvents
1154
- }, Constants);
1034
+ var vtkRenderWindowInteractor$1 = {
1035
+ newInstance,
1036
+ extend,
1037
+ handledEvents,
1038
+ ...Constants
1039
+ };
1155
1040
 
1156
1041
  export { vtkRenderWindowInteractor$1 as default, extend, newInstance };