@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,6 +1,4 @@
1
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
- import macro from '../../../macros.js';
1
+ import { m as macro } from '../../../macros2.js';
4
2
  import { f as vtkMath } from '../../../Common/Core/Math/index.js';
5
3
  import vtkBoundingBox from '../../../Common/DataModel/BoundingBox.js';
6
4
  import vtkPlane from '../../../Common/DataModel/Plane.js';
@@ -8,92 +6,61 @@ import { ShapeBehavior, BehaviorCategory, TextPosition } from './Constants.js';
8
6
  import { boundPlane } from '../ResliceCursorWidget/helpers.js';
9
7
  import { vec3 } from 'gl-matrix';
10
8
 
11
- 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; }
12
-
13
- 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; }
14
- var vtkErrorMacro = macro.vtkErrorMacro;
15
- var EPSILON = 1e-6;
9
+ const {
10
+ vtkErrorMacro
11
+ } = macro;
12
+ const EPSILON = 1e-6;
16
13
  function widgetBehavior(publicAPI, model) {
17
14
  model.classHierarchy.push('vtkShapeWidgetProp');
18
15
  model._isDragging = false;
19
16
  model.keysDown = {};
17
+ const superClass = {
18
+ ...publicAPI
19
+ };
20
20
 
21
- var superClass = _objectSpread({}, publicAPI); // --------------------------------------------------------------------------
21
+ // --------------------------------------------------------------------------
22
22
  // Display 2D
23
23
  // --------------------------------------------------------------------------
24
24
 
25
-
26
- publicAPI.setDisplayCallback = function (callback) {
27
- return model.representations[0].setDisplayCallback(callback);
25
+ publicAPI.setDisplayCallback = callback => model.representations[0].setDisplayCallback(callback);
26
+ publicAPI.setText = text => {
27
+ model.widgetState.getText().setText(text);
28
+ // Recompute position
29
+ model._interactor.render();
28
30
  };
29
31
 
30
- publicAPI.setText = function (text) {
31
- model.widgetState.getText().setText(text); // Recompute position
32
-
33
- model._interactor.render();
34
- }; // --------------------------------------------------------------------------
32
+ // --------------------------------------------------------------------------
35
33
  // Public methods
36
34
  // --------------------------------------------------------------------------
37
-
38
-
39
35
  publicAPI.setResetAfterPointPlacement = model._factory.setResetAfterPointPlacement;
40
36
  publicAPI.getResetAfterPointPlacement = model._factory.getResetAfterPointPlacement;
41
37
  publicAPI.setModifierBehavior = model._factory.setModifierBehavior;
42
38
  publicAPI.getModifierBehavior = model._factory.getModifierBehavior;
43
-
44
- publicAPI.isBehaviorActive = function (category, flag) {
45
- return Object.keys(model.keysDown).some(function (key) {
46
- return model.keysDown[key] && publicAPI.getModifierBehavior()[key] && publicAPI.getModifierBehavior()[key][category] === flag;
47
- });
48
- };
49
-
50
- publicAPI.isOppositeBehaviorActive = function (category, flag) {
51
- return Object.values(ShapeBehavior[category]).some(function (flagToTry) {
52
- return flag !== flagToTry && publicAPI.isBehaviorActive(category, flagToTry);
53
- });
54
- };
55
-
56
- publicAPI.getActiveBehaviorFromCategory = function (category) {
57
- return Object.values(ShapeBehavior[category]).find(function (flag) {
58
- return publicAPI.isBehaviorActive(category, flag) || !publicAPI.isOppositeBehaviorActive(category, flag) && publicAPI.getModifierBehavior().None[category] === flag;
59
- });
60
- };
61
-
62
- publicAPI.isRatioFixed = function () {
63
- return publicAPI.getActiveBehaviorFromCategory(BehaviorCategory.RATIO) === ShapeBehavior[BehaviorCategory.RATIO].FIXED;
64
- };
65
-
66
- publicAPI.isDraggingEnabled = function () {
67
- var behavior = publicAPI.getActiveBehaviorFromCategory(BehaviorCategory.PLACEMENT);
39
+ publicAPI.isBehaviorActive = (category, flag) => Object.keys(model.keysDown).some(key => model.keysDown[key] && publicAPI.getModifierBehavior()[key] && publicAPI.getModifierBehavior()[key][category] === flag);
40
+ publicAPI.isOppositeBehaviorActive = (category, flag) => Object.values(ShapeBehavior[category]).some(flagToTry => flag !== flagToTry && publicAPI.isBehaviorActive(category, flagToTry));
41
+ publicAPI.getActiveBehaviorFromCategory = category => Object.values(ShapeBehavior[category]).find(flag => publicAPI.isBehaviorActive(category, flag) || !publicAPI.isOppositeBehaviorActive(category, flag) && publicAPI.getModifierBehavior().None[category] === flag);
42
+ publicAPI.isRatioFixed = () => publicAPI.getActiveBehaviorFromCategory(BehaviorCategory.RATIO) === ShapeBehavior[BehaviorCategory.RATIO].FIXED;
43
+ publicAPI.isDraggingEnabled = () => {
44
+ const behavior = publicAPI.getActiveBehaviorFromCategory(BehaviorCategory.PLACEMENT);
68
45
  return behavior === ShapeBehavior[BehaviorCategory.PLACEMENT].DRAG || behavior === ShapeBehavior[BehaviorCategory.PLACEMENT].CLICK_AND_DRAG;
69
46
  };
70
-
71
- publicAPI.isDraggingForced = function () {
72
- return publicAPI.isBehaviorActive(BehaviorCategory.PLACEMENT, ShapeBehavior[BehaviorCategory.PLACEMENT].DRAG) || publicAPI.getModifierBehavior().None[BehaviorCategory.PLACEMENT] === ShapeBehavior[BehaviorCategory.PLACEMENT].DRAG;
73
- };
74
-
75
- publicAPI.getPoint1 = function () {
76
- return model.point1;
77
- };
78
-
79
- publicAPI.getPoint2 = function () {
80
- return model.point2;
81
- };
82
-
83
- publicAPI.setPoints = function (point1, point2) {
47
+ publicAPI.isDraggingForced = () => publicAPI.isBehaviorActive(BehaviorCategory.PLACEMENT, ShapeBehavior[BehaviorCategory.PLACEMENT].DRAG) || publicAPI.getModifierBehavior().None[BehaviorCategory.PLACEMENT] === ShapeBehavior[BehaviorCategory.PLACEMENT].DRAG;
48
+ publicAPI.getPoint1 = () => model.point1;
49
+ publicAPI.getPoint2 = () => model.point2;
50
+ publicAPI.setPoints = (point1, point2) => {
84
51
  model.point1 = point1;
85
52
  model.point2 = point2;
86
53
  model.point1Handle.setOrigin(model.point1);
87
54
  model.point2Handle.setOrigin(model.point2);
88
55
  publicAPI.updateShapeBounds();
89
- }; // This method is to be called to place the first point
56
+ };
57
+
58
+ // This method is to be called to place the first point
90
59
  // for the first time. It is not inlined so that
91
60
  // the user can specify himself where the first point
92
61
  // is right after publicAPI.grabFocus() without waiting
93
62
  // for interactions.
94
-
95
-
96
- publicAPI.placePoint1 = function (point) {
63
+ publicAPI.placePoint1 = point => {
97
64
  if (model.hasFocus) {
98
65
  publicAPI.setPoints(point, point);
99
66
  model.point1Handle.deactivate();
@@ -105,30 +72,29 @@ function widgetBehavior(publicAPI, model) {
105
72
  model.shapeHandle.setVisible(true);
106
73
  }
107
74
  };
108
-
109
- publicAPI.placePoint2 = function (point2) {
75
+ publicAPI.placePoint2 = point2 => {
110
76
  if (model.hasFocus) {
111
77
  model.point2 = point2;
112
78
  model.point2Handle.setOrigin(model.point2);
113
79
  publicAPI.updateShapeBounds();
114
80
  }
115
- }; // --------------------------------------------------------------------------
81
+ };
82
+
83
+ // --------------------------------------------------------------------------
116
84
  // Private methods
117
85
  // --------------------------------------------------------------------------
118
86
 
119
-
120
- publicAPI.makeSquareFromPoints = function (point1, point2) {
121
- var diagonal = [0, 0, 0];
87
+ publicAPI.makeSquareFromPoints = (point1, point2) => {
88
+ const diagonal = [0, 0, 0];
122
89
  vec3.subtract(diagonal, point2, point1);
123
- var dir = model.shapeHandle.getDirection();
124
- var right = model.shapeHandle.getRight();
125
- var up = model.shapeHandle.getUp();
126
- var dirComponent = vec3.dot(diagonal, dir);
127
- var rightComponent = vec3.dot(diagonal, right);
128
- var upComponent = vec3.dot(diagonal, up);
129
- var absRightComponent = Math.abs(rightComponent);
130
- var absUpComponent = Math.abs(upComponent);
131
-
90
+ const dir = model.shapeHandle.getDirection();
91
+ const right = model.shapeHandle.getRight();
92
+ const up = model.shapeHandle.getUp();
93
+ const dirComponent = vec3.dot(diagonal, dir);
94
+ let rightComponent = vec3.dot(diagonal, right);
95
+ let upComponent = vec3.dot(diagonal, up);
96
+ const absRightComponent = Math.abs(rightComponent);
97
+ const absUpComponent = Math.abs(upComponent);
132
98
  if (absRightComponent < EPSILON) {
133
99
  rightComponent = upComponent;
134
100
  } else if (absUpComponent < EPSILON) {
@@ -138,148 +104,117 @@ function widgetBehavior(publicAPI, model) {
138
104
  } else {
139
105
  rightComponent = rightComponent / absRightComponent * absUpComponent;
140
106
  }
141
-
142
107
  return [point1[0] + rightComponent * right[0] + upComponent * up[0] + dirComponent * dir[0], point1[1] + rightComponent * right[1] + upComponent * up[1] + dirComponent * dir[1], point1[2] + rightComponent * right[2] + upComponent * up[2] + dirComponent * dir[2]];
143
108
  };
144
-
145
- var getCornersFromRadius = function getCornersFromRadius(center, pointOnCircle) {
146
- var radius = vec3.distance(center, pointOnCircle);
147
- var up = model.shapeHandle.getUp();
148
- var right = model.shapeHandle.getRight();
149
- var point1 = [center[0] + (up[0] - right[0]) * radius, center[1] + (up[1] - right[1]) * radius, center[2] + (up[2] - right[2]) * radius];
150
- var point2 = [center[0] + (right[0] - up[0]) * radius, center[1] + (right[1] - up[1]) * radius, center[2] + (right[2] - up[2]) * radius];
109
+ const getCornersFromRadius = (center, pointOnCircle) => {
110
+ const radius = vec3.distance(center, pointOnCircle);
111
+ const up = model.shapeHandle.getUp();
112
+ const right = model.shapeHandle.getRight();
113
+ const point1 = [center[0] + (up[0] - right[0]) * radius, center[1] + (up[1] - right[1]) * radius, center[2] + (up[2] - right[2]) * radius];
114
+ const point2 = [center[0] + (right[0] - up[0]) * radius, center[1] + (right[1] - up[1]) * radius, center[2] + (right[2] - up[2]) * radius];
151
115
  return {
152
- point1: point1,
153
- point2: point2
116
+ point1,
117
+ point2
154
118
  };
155
119
  };
156
-
157
- var getCornersFromDiameter = function getCornersFromDiameter(point1, point2) {
158
- var center = [0.5 * (point1[0] + point2[0]), 0.5 * (point1[1] + point2[1]), 0.5 * (point1[2] + point2[2])];
120
+ const getCornersFromDiameter = (point1, point2) => {
121
+ const center = [0.5 * (point1[0] + point2[0]), 0.5 * (point1[1] + point2[1]), 0.5 * (point1[2] + point2[2])];
159
122
  return getCornersFromRadius(center, point1);
160
- }; // TODO: move to ShapeWidget/index.js
161
-
162
-
163
- publicAPI.getBounds = function () {
164
- return model.point1 && model.point2 ? vtkBoundingBox.addPoints(vtkBoundingBox.reset([]), [model.point1, model.point2]) : vtkMath.uninitializeBounds([]);
165
- }; // To be reimplemented by subclass
123
+ };
166
124
 
125
+ // TODO: move to ShapeWidget/index.js
126
+ publicAPI.getBounds = () => model.point1 && model.point2 ? vtkBoundingBox.addPoints(vtkBoundingBox.reset([]), [model.point1, model.point2]) : vtkMath.uninitializeBounds([]);
167
127
 
168
- publicAPI.setCorners = function (point1, point2) {
128
+ // To be reimplemented by subclass
129
+ publicAPI.setCorners = (point1, point2) => {
169
130
  publicAPI.updateTextPosition(point1, point2);
170
131
  };
171
-
172
- publicAPI.updateShapeBounds = function () {
132
+ publicAPI.updateShapeBounds = () => {
173
133
  if (model.point1 && model.point2) {
174
- var point1 = _toConsumableArray(model.point1);
175
-
176
- var point2 = _toConsumableArray(model.point2);
177
-
134
+ const point1 = [...model.point1];
135
+ let point2 = [...model.point2];
178
136
  if (publicAPI.isRatioFixed()) {
179
137
  point2 = publicAPI.makeSquareFromPoints(point1, point2);
180
138
  }
181
-
182
139
  switch (publicAPI.getActiveBehaviorFromCategory(BehaviorCategory.POINTS)) {
183
140
  case ShapeBehavior[BehaviorCategory.POINTS].CORNER_TO_CORNER:
184
141
  {
185
142
  publicAPI.setCorners(point1, point2);
186
143
  break;
187
144
  }
188
-
189
145
  case ShapeBehavior[BehaviorCategory.POINTS].CENTER_TO_CORNER:
190
146
  {
191
- var diagonal = [0, 0, 0];
147
+ const diagonal = [0, 0, 0];
192
148
  vec3.subtract(diagonal, point1, point2);
193
149
  vec3.add(point1, point1, diagonal);
194
150
  publicAPI.setCorners(point1, point2);
195
151
  break;
196
152
  }
197
-
198
153
  case ShapeBehavior[BehaviorCategory.POINTS].RADIUS:
199
154
  {
200
- var points = getCornersFromRadius(point1, point2);
155
+ const points = getCornersFromRadius(point1, point2);
201
156
  publicAPI.setCorners(points.point1, points.point2);
202
157
  break;
203
158
  }
204
-
205
159
  case ShapeBehavior[BehaviorCategory.POINTS].DIAMETER:
206
160
  {
207
- var _points = getCornersFromDiameter(point1, point2);
208
-
209
- publicAPI.setCorners(_points.point1, _points.point2);
161
+ const points = getCornersFromDiameter(point1, point2);
162
+ publicAPI.setCorners(points.point1, points.point2);
210
163
  break;
211
164
  }
212
-
213
165
  default:
214
166
  // This should never be executed
215
167
  vtkErrorMacro('vtk internal error');
216
168
  }
217
169
  }
218
170
  };
219
-
220
- var computePositionVector = function computePositionVector(textPosition, minPoint, maxPoint) {
221
- var positionVector = [0, 0, 0];
222
-
171
+ const computePositionVector = (textPosition, minPoint, maxPoint) => {
172
+ const positionVector = [0, 0, 0];
223
173
  switch (textPosition) {
224
174
  case TextPosition.MIN:
225
175
  break;
226
-
227
176
  case TextPosition.MAX:
228
177
  vtkMath.subtract(maxPoint, minPoint, positionVector);
229
178
  break;
230
-
231
179
  case TextPosition.CENTER:
232
180
  default:
233
181
  vtkMath.subtract(maxPoint, minPoint, positionVector);
234
182
  vtkMath.multiplyScalar(positionVector, 0.5);
235
183
  break;
236
184
  }
237
-
238
185
  return positionVector;
239
186
  };
240
-
241
- var computeTextPosition = function computeTextPosition(worldBounds, textPosition) {
242
- var _model$_apiSpecificRe, _model$_apiSpecificRe2, _model$_apiSpecificRe5;
243
-
244
- var worldMargin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
245
- var viewPlaneOrigin = vtkBoundingBox.getCenter(worldBounds);
246
-
247
- var viewPlaneNormal = model._renderer.getActiveCamera().getDirectionOfProjection();
248
-
249
- var viewUp = model._renderer.getActiveCamera().getViewUp();
250
-
251
- var positionMargin = Array.isArray(worldMargin) ? _toConsumableArray(worldMargin) : [worldMargin, worldMargin, viewPlaneOrigin ? worldMargin : 0]; // Map bounds from world positions to display positions
252
-
253
- var minPoint = (_model$_apiSpecificRe = model._apiSpecificRenderWindow).worldToDisplay.apply(_model$_apiSpecificRe, _toConsumableArray(vtkBoundingBox.getMinPoint(worldBounds)).concat([model._renderer]));
254
-
255
- var maxPoint = (_model$_apiSpecificRe2 = model._apiSpecificRenderWindow).worldToDisplay.apply(_model$_apiSpecificRe2, _toConsumableArray(vtkBoundingBox.getMaxPoint(worldBounds)).concat([model._renderer]));
256
-
257
- var displayBounds = vtkBoundingBox.addPoints(vtkBoundingBox.reset([]), [minPoint, maxPoint]);
258
- var planeOrigin = [];
259
- var p1 = [];
260
- var p2 = [];
261
- var p3 = []; // If we are in a 2D projection
262
-
187
+ const computeTextPosition = function (worldBounds, textPosition) {
188
+ let worldMargin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
189
+ const viewPlaneOrigin = vtkBoundingBox.getCenter(worldBounds);
190
+ const viewPlaneNormal = model._renderer.getActiveCamera().getDirectionOfProjection();
191
+ const viewUp = model._renderer.getActiveCamera().getViewUp();
192
+ const positionMargin = Array.isArray(worldMargin) ? [...worldMargin] : [worldMargin, worldMargin, viewPlaneOrigin ? worldMargin : 0];
193
+
194
+ // Map bounds from world positions to display positions
195
+ const minPoint = model._apiSpecificRenderWindow.worldToDisplay(...vtkBoundingBox.getMinPoint(worldBounds), model._renderer);
196
+ const maxPoint = model._apiSpecificRenderWindow.worldToDisplay(...vtkBoundingBox.getMaxPoint(worldBounds), model._renderer);
197
+ const displayBounds = vtkBoundingBox.addPoints(vtkBoundingBox.reset([]), [minPoint, maxPoint]);
198
+ let planeOrigin = [];
199
+ let p1 = [];
200
+ let p2 = [];
201
+ let p3 = [];
202
+
203
+ // If we are in a 2D projection
263
204
  if (viewPlaneOrigin && viewPlaneNormal && viewUp && vtkBoundingBox.intersectPlane(displayBounds, viewPlaneOrigin, viewPlaneNormal)) {
264
- var _model$_apiSpecificRe3, _model$_apiSpecificRe4;
265
-
266
205
  // Map plane origin from world positions to display positions
267
- var displayPlaneOrigin = (_model$_apiSpecificRe3 = model._apiSpecificRenderWindow).worldToDisplay.apply(_model$_apiSpecificRe3, _toConsumableArray(viewPlaneOrigin).concat([model._renderer])); // Map plane normal from world positions to display positions
268
-
269
-
270
- var planeNormalPoint = vtkMath.add(viewPlaneOrigin, viewPlaneNormal, []);
271
-
272
- var displayPlaneNormalPoint = (_model$_apiSpecificRe4 = model._apiSpecificRenderWindow).worldToDisplay.apply(_model$_apiSpecificRe4, _toConsumableArray(planeNormalPoint).concat([model._renderer]));
273
-
274
- var displayPlaneNormal = vtkMath.subtract(displayPlaneNormalPoint, displayPlaneOrigin, []); // Project view plane into bounding box
275
-
276
- var largeDistance = 10 * vtkBoundingBox.getDiagonalLength(displayBounds);
206
+ const displayPlaneOrigin = model._apiSpecificRenderWindow.worldToDisplay(...viewPlaneOrigin, model._renderer);
207
+ // Map plane normal from world positions to display positions
208
+ const planeNormalPoint = vtkMath.add(viewPlaneOrigin, viewPlaneNormal, []);
209
+ const displayPlaneNormalPoint = model._apiSpecificRenderWindow.worldToDisplay(...planeNormalPoint, model._renderer);
210
+ const displayPlaneNormal = vtkMath.subtract(displayPlaneNormalPoint, displayPlaneOrigin, []);
211
+
212
+ // Project view plane into bounding box
213
+ const largeDistance = 10 * vtkBoundingBox.getDiagonalLength(displayBounds);
277
214
  vtkPlane.projectPoint(vtkBoundingBox.getCenter(displayBounds), displayPlaneOrigin, displayPlaneNormal, planeOrigin);
278
- var planeU = vtkMath.cross(viewUp, displayPlaneNormal, []);
215
+ const planeU = vtkMath.cross(viewUp, displayPlaneNormal, []);
279
216
  vtkMath.normalize(planeU); // u
280
-
281
217
  vtkMath.normalize(viewUp); // v
282
-
283
218
  vtkMath.normalize(displayPlaneNormal); // w
284
219
 
285
220
  vtkMath.multiplyAccumulate(planeOrigin, viewUp, -largeDistance, planeOrigin);
@@ -293,34 +228,32 @@ function widgetBehavior(publicAPI, model) {
293
228
  p1 = [displayBounds[1], displayBounds[2], displayBounds[4]];
294
229
  p2 = [displayBounds[0], displayBounds[3], displayBounds[4]];
295
230
  p3 = [displayBounds[0], displayBounds[2], displayBounds[5]];
296
- } // Compute horizontal, vertical and depth position
297
-
231
+ }
298
232
 
299
- var u = computePositionVector(textPosition[0], planeOrigin, p1);
300
- var v = computePositionVector(textPosition[1], planeOrigin, p2);
301
- var w = computePositionVector(textPosition[2], planeOrigin, p3);
302
- var finalPosition = planeOrigin;
233
+ // Compute horizontal, vertical and depth position
234
+ const u = computePositionVector(textPosition[0], planeOrigin, p1);
235
+ const v = computePositionVector(textPosition[1], planeOrigin, p2);
236
+ const w = computePositionVector(textPosition[2], planeOrigin, p3);
237
+ const finalPosition = planeOrigin;
303
238
  vtkMath.add(finalPosition, u, finalPosition);
304
239
  vtkMath.add(finalPosition, v, finalPosition);
305
240
  vtkMath.add(finalPosition, w, finalPosition);
306
241
  vtkMath.add(finalPosition, positionMargin, finalPosition);
307
- return (_model$_apiSpecificRe5 = model._apiSpecificRenderWindow).displayToWorld.apply(_model$_apiSpecificRe5, finalPosition.concat([model._renderer]));
242
+ return model._apiSpecificRenderWindow.displayToWorld(...finalPosition, model._renderer);
308
243
  };
309
-
310
- publicAPI.updateTextPosition = function (point1, point2) {
311
- var bounds = vtkBoundingBox.addPoints(vtkBoundingBox.reset([]), [point1, point2]);
312
- var screenPosition = computeTextPosition(bounds, model.widgetState.getTextPosition(), model.widgetState.getTextWorldMargin());
313
- var textHandle = model.widgetState.getText();
244
+ publicAPI.updateTextPosition = (point1, point2) => {
245
+ const bounds = vtkBoundingBox.addPoints(vtkBoundingBox.reset([]), [point1, point2]);
246
+ const screenPosition = computeTextPosition(bounds, model.widgetState.getTextPosition(), model.widgetState.getTextWorldMargin());
247
+ const textHandle = model.widgetState.getText();
314
248
  textHandle.setOrigin(screenPosition);
315
249
  };
250
+
316
251
  /*
317
252
  * If the widget has the focus, this method reset the widget
318
253
  * to it's state just after it grabbed the focus. Otherwise
319
254
  * it resets the widget to its state before it grabbed the focus.
320
255
  */
321
-
322
-
323
- publicAPI.reset = function () {
256
+ publicAPI.reset = () => {
324
257
  model.point1 = null;
325
258
  model.point2 = null;
326
259
  model.widgetState.getText().setVisible(false);
@@ -330,7 +263,6 @@ function widgetBehavior(publicAPI, model) {
330
263
  model.shapeHandle.setVisible(false);
331
264
  model.point2Handle.setVisible(false);
332
265
  model.point2Handle.deactivate();
333
-
334
266
  if (model.hasFocus) {
335
267
  model.point1Handle.activate();
336
268
  model.activeState = model.point1Handle;
@@ -339,43 +271,35 @@ function widgetBehavior(publicAPI, model) {
339
271
  model.point1Handle.deactivate();
340
272
  model.activeState = null;
341
273
  }
342
-
343
274
  publicAPI.updateShapeBounds();
344
- }; // --------------------------------------------------------------------------
275
+ };
276
+
277
+ // --------------------------------------------------------------------------
345
278
  // Interactor events
346
279
  // --------------------------------------------------------------------------
347
280
 
348
-
349
- publicAPI.handleMouseMove = function (callData) {
350
- var _model$activeState$ge, _model$activeState, _model$activeState$ge2;
351
-
352
- 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;
353
-
281
+ publicAPI.handleMouseMove = callData => {
282
+ const manipulator = model.activeState?.getManipulator?.() ?? model.manipulator;
354
283
  if (!manipulator || !model.activeState || !model.activeState.getActive() || !model.pickable || !model.dragable) {
355
284
  return macro.VOID;
356
285
  }
357
-
358
286
  if (!model.point2) {
359
287
  // Update orientation to match the camera's plane
360
288
  // if the corners are not yet placed
361
- var normal = model._camera.getDirectionOfProjection();
362
-
363
- var up = model._camera.getViewUp();
364
-
365
- var right = [];
289
+ const normal = model._camera.getDirectionOfProjection();
290
+ const up = model._camera.getViewUp();
291
+ const right = [];
366
292
  vec3.cross(right, up, normal);
367
293
  model.shapeHandle.setUp(up);
368
294
  model.shapeHandle.setRight(right);
369
295
  model.shapeHandle.setDirection(normal);
370
296
  }
371
-
372
- var _manipulator$handleEv = manipulator.handleEvent(callData, model._apiSpecificRenderWindow),
373
- worldCoords = _manipulator$handleEv.worldCoords;
374
-
297
+ const {
298
+ worldCoords
299
+ } = manipulator.handleEvent(callData, model._apiSpecificRenderWindow);
375
300
  if (!worldCoords.length) {
376
301
  return macro.VOID;
377
302
  }
378
-
379
303
  if (model.hasFocus) {
380
304
  if (!model.point1) {
381
305
  model.point1Handle.setOrigin(worldCoords);
@@ -393,30 +317,25 @@ function widgetBehavior(publicAPI, model) {
393
317
  model.point2Handle.setOrigin(worldCoords);
394
318
  model.point2 = worldCoords;
395
319
  }
396
-
397
320
  publicAPI.updateShapeBounds();
398
321
  publicAPI.invokeInteractionEvent();
399
322
  }
400
-
401
323
  return model.hasFocus || model._isDragging ? macro.EVENT_ABORT : macro.VOID;
402
- }; // --------------------------------------------------------------------------
324
+ };
325
+
326
+ // --------------------------------------------------------------------------
403
327
  // Left click: Add point / End interaction
404
328
  // --------------------------------------------------------------------------
405
329
 
406
-
407
- publicAPI.handleLeftButtonPress = function (e) {
408
- var _model$activeState$ge3, _model$activeState2, _model$activeState2$g;
409
-
410
- 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;
411
-
330
+ publicAPI.handleLeftButtonPress = e => {
331
+ const manipulator = model.activeState?.getManipulator?.() ?? model.manipulator;
412
332
  if (!model.activeState || !model.activeState.getActive() || !model.pickable || !manipulator) {
413
333
  return macro.VOID;
414
334
  }
415
-
416
335
  if (model.hasFocus) {
417
- var _manipulator$handleEv2 = manipulator.handleEvent(e, model._apiSpecificRenderWindow),
418
- worldCoords = _manipulator$handleEv2.worldCoords;
419
-
336
+ const {
337
+ worldCoords
338
+ } = manipulator.handleEvent(e, model._apiSpecificRenderWindow);
420
339
  if (!model.point1) {
421
340
  model.point1Handle.setOrigin(worldCoords);
422
341
  publicAPI.placePoint1(model.point1Handle.getOrigin());
@@ -426,67 +345,51 @@ function widgetBehavior(publicAPI, model) {
426
345
  publicAPI.placePoint2(model.point2Handle.getOrigin());
427
346
  publicAPI.invokeInteractionEvent();
428
347
  publicAPI.invokeEndInteractionEvent();
429
-
430
348
  if (publicAPI.getResetAfterPointPlacement()) {
431
349
  publicAPI.reset();
432
350
  } else {
433
351
  publicAPI.loseFocus();
434
352
  }
435
353
  }
436
-
437
354
  return macro.EVENT_ABORT;
438
355
  }
439
-
440
356
  if (model.point1 && (model.activeState === model.point1Handle || model.activeState === model.point2Handle) && model.dragable) {
441
357
  model._isDragging = true;
442
-
443
358
  model._apiSpecificRenderWindow.setCursor('grabbing');
444
-
445
359
  model._interactor.requestAnimation(publicAPI);
446
360
  }
447
-
448
361
  publicAPI.invokeStartInteractionEvent();
449
362
  return macro.EVENT_ABORT;
450
- }; // --------------------------------------------------------------------------
363
+ };
364
+
365
+ // --------------------------------------------------------------------------
451
366
  // Left release: Maybe end interaction
452
367
  // --------------------------------------------------------------------------
453
368
 
454
-
455
- publicAPI.handleLeftButtonRelease = function (e) {
369
+ publicAPI.handleLeftButtonRelease = e => {
456
370
  if (model._isDragging) {
457
371
  model._isDragging = false;
458
-
459
372
  model._apiSpecificRenderWindow.setCursor('pointer');
460
-
461
373
  model.widgetState.deactivate();
462
-
463
374
  model._interactor.cancelAnimation(publicAPI);
464
-
465
375
  publicAPI.invokeEndInteractionEvent();
466
376
  return macro.EVENT_ABORT;
467
377
  }
468
-
469
378
  if (!model.hasFocus || !model.pickable) {
470
379
  return macro.VOID;
471
380
  }
472
-
473
- var viewSize = model._apiSpecificRenderWindow.getSize();
474
-
381
+ const viewSize = model._apiSpecificRenderWindow.getSize();
475
382
  if (e.position.x < 0 || e.position.x > viewSize[0] - 1 || e.position.y < 0 || e.position.y > viewSize[1] - 1) {
476
383
  return macro.VOID;
477
384
  }
478
-
479
385
  if (model.point1) {
480
386
  publicAPI.placePoint2(model.point2Handle.getOrigin());
481
-
482
387
  if (publicAPI.isDraggingEnabled()) {
483
- var distance = vec3.squaredDistance(model.point1, model.point2);
484
- var maxDistance = 100;
485
-
388
+ const distance = vec3.squaredDistance(model.point1, model.point2);
389
+ const maxDistance = 100;
486
390
  if (distance > maxDistance || publicAPI.isDraggingForced()) {
487
391
  publicAPI.invokeInteractionEvent();
488
392
  publicAPI.invokeEndInteractionEvent();
489
-
490
393
  if (publicAPI.getResetAfterPointPlacement()) {
491
394
  publicAPI.reset();
492
395
  } else {
@@ -495,16 +398,17 @@ function widgetBehavior(publicAPI, model) {
495
398
  }
496
399
  }
497
400
  }
498
-
499
401
  return macro.EVENT_ABORT;
500
- }; // --------------------------------------------------------------------------
402
+ };
403
+
404
+ // --------------------------------------------------------------------------
501
405
  // Register key presses/releases
502
406
  // --------------------------------------------------------------------------
503
407
 
504
-
505
- publicAPI.handleKeyDown = function (_ref) {
506
- var key = _ref.key;
507
-
408
+ publicAPI.handleKeyDown = _ref => {
409
+ let {
410
+ key
411
+ } = _ref;
508
412
  if (key === 'Escape') {
509
413
  if (model.hasFocus) {
510
414
  publicAPI.reset();
@@ -514,7 +418,6 @@ function widgetBehavior(publicAPI, model) {
514
418
  } else {
515
419
  model.keysDown[key] = true;
516
420
  }
517
-
518
421
  if (model.hasFocus) {
519
422
  if (model.point1) {
520
423
  model.point2 = model.point2Handle.getOrigin();
@@ -522,56 +425,51 @@ function widgetBehavior(publicAPI, model) {
522
425
  }
523
426
  }
524
427
  };
525
-
526
- publicAPI.handleKeyUp = function (_ref2) {
527
- var key = _ref2.key;
428
+ publicAPI.handleKeyUp = _ref2 => {
429
+ let {
430
+ key
431
+ } = _ref2;
528
432
  model.keysDown[key] = false;
529
-
530
433
  if (model.hasFocus) {
531
434
  if (model.point1) {
532
435
  model.point2 = model.point2Handle.getOrigin();
533
436
  publicAPI.updateShapeBounds();
534
437
  }
535
438
  }
536
- }; // --------------------------------------------------------------------------
439
+ };
440
+
441
+ // --------------------------------------------------------------------------
537
442
  // Focus API - follow mouse when widget has focus
538
443
  // --------------------------------------------------------------------------
539
444
 
540
-
541
- publicAPI.grabFocus = function () {
445
+ publicAPI.grabFocus = () => {
542
446
  if (!model.hasFocus) {
543
447
  publicAPI.reset();
544
448
  model.point1Handle.activate();
545
449
  model.activeState = model.point1Handle;
546
450
  model.point1Handle.setVisible(true);
547
451
  model.shapeHandle.setVisible(false);
548
-
549
452
  model._interactor.requestAnimation(publicAPI);
550
453
  }
551
-
552
454
  superClass.grabFocus();
553
- }; // --------------------------------------------------------------------------
455
+ };
554
456
 
457
+ // --------------------------------------------------------------------------
555
458
 
556
- publicAPI.loseFocus = function () {
459
+ publicAPI.loseFocus = () => {
557
460
  if (model.hasFocus) {
558
461
  model._interactor.cancelAnimation(publicAPI);
559
462
  }
560
-
561
463
  if (!model.point1) {
562
464
  model.point1Handle.setVisible(false);
563
465
  model.point2Handle.setVisible(false);
564
466
  }
565
-
566
467
  model.widgetState.deactivate();
567
468
  model.point1Handle.deactivate();
568
469
  model.point2Handle.deactivate();
569
470
  model.activeState = null;
570
-
571
471
  model._interactor.render();
572
-
573
472
  model._widgetManager.enablePicking();
574
-
575
473
  superClass.loseFocus();
576
474
  };
577
475
  }