@kitware/vtk.js 28.10.2 → 28.11.1

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 +193 -277
  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/README.md +1 -1
  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 +85 -144
  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 +192 -256
  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 +443 -608
  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 +40 -38
  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 +133 -209
  540. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  541. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +89 -116
  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,129 +1,118 @@
1
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
1
  import Constants from './Constants.js';
3
- import macro from '../../../macros.js';
2
+ import { m as macro } from '../../../macros2.js';
4
3
  import { s as subtract, k as add, l as normalize } from '../../../Common/Core/Math/index.js';
5
4
  import { getNumberOfPlacedHandles, isHandlePlaced, calculateTextPosition, updateTextPosition, getPoint } from './helpers.js';
6
5
 
7
- var ShapeType = Constants.ShapeType; // Total number of points to place
8
-
9
- var MAX_POINTS = 2;
10
- var handleGetters = ['getHandle1', 'getHandle2', 'getMoveHandle'];
6
+ const {
7
+ ShapeType
8
+ } = Constants;
9
+ // Total number of points to place
10
+ const MAX_POINTS = 2;
11
+ const handleGetters = ['getHandle1', 'getHandle2', 'getMoveHandle'];
11
12
  function widgetBehavior(publicAPI, model) {
12
13
  model.classHierarchy.push('vtkLineWidgetProp');
13
14
  model._isDragging = false;
15
+
14
16
  /**
15
17
  * Returns the handle at the handleIndex'th index.
16
18
  * @param {number} handleIndex 0, 1 or 2
17
19
  */
20
+ publicAPI.getHandle = handleIndex => model.widgetState[handleGetters[handleIndex]]();
18
21
 
19
- publicAPI.getHandle = function (handleIndex) {
20
- return model.widgetState[handleGetters[handleIndex]]();
21
- };
22
22
  /**
23
23
  * Return the index in the of tbe handle in `representations` array,
24
24
  * or -1 if the handle is not present in the widget state.
25
25
  */
26
-
27
-
28
- publicAPI.getHandleIndex = function (handle) {
26
+ publicAPI.getHandleIndex = handle => {
29
27
  switch (handle) {
30
28
  case model.widgetState.getHandle1():
31
29
  return 0;
32
-
33
30
  case model.widgetState.getHandle2():
34
31
  return 1;
35
-
36
32
  case model.widgetState.getMoveHandle():
37
33
  return 2;
38
-
39
34
  default:
40
35
  return -1;
41
36
  }
42
37
  };
38
+ publicAPI.isPlaced = () => getNumberOfPlacedHandles(model.widgetState) === MAX_POINTS;
43
39
 
44
- publicAPI.isPlaced = function () {
45
- return getNumberOfPlacedHandles(model.widgetState) === MAX_POINTS;
46
- }; // --------------------------------------------------------------------------
40
+ // --------------------------------------------------------------------------
47
41
  // Interactor event
48
42
  // --------------------------------------------------------------------------
49
43
 
50
-
51
44
  function ignoreKey(e) {
52
45
  return e.altKey || e.controlKey || e.shiftKey;
53
46
  }
54
-
55
47
  function updateCursor(callData) {
56
- var _model$activeState$ge, _model$activeState, _model$activeState$ge2;
57
-
58
48
  model._isDragging = true;
59
- 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;
49
+ const manipulator = model.activeState?.getManipulator?.() ?? model.manipulator;
60
50
  model.previousPosition = manipulator.handleEvent(callData, model._apiSpecificRenderWindow).worldCoords;
61
-
62
51
  model._apiSpecificRenderWindow.setCursor('grabbing');
63
-
64
52
  model._interactor.requestAnimation(publicAPI);
65
- } // --------------------------------------------------------------------------
53
+ }
54
+
55
+ // --------------------------------------------------------------------------
66
56
  // Text methods
67
57
  // --------------------------------------------------------------------------
68
58
 
69
-
70
- publicAPI.setText = function (text) {
59
+ publicAPI.setText = text => {
71
60
  model.widgetState.getText().setText(text);
72
-
73
61
  model._interactor.render();
74
- }; // --------------------------------------------------------------------------
62
+ };
63
+
64
+ // --------------------------------------------------------------------------
75
65
  // Handle positioning methods
76
66
  // --------------------------------------------------------------------------
77
- // Handle utilities ---------------------------------------------------------
78
67
 
68
+ // Handle utilities ---------------------------------------------------------
79
69
 
80
70
  function getLineDirection(p1, p2) {
81
- var dir = subtract(p1, p2, []);
71
+ const dir = subtract(p1, p2, []);
82
72
  normalize(dir);
83
73
  return dir;
84
- } // Handle orientation & rotation ---------------------------------------------------------
74
+ }
85
75
 
76
+ // Handle orientation & rotation ---------------------------------------------------------
86
77
 
87
78
  function computeMousePosition(p1, callData) {
88
- var displayMousePos = publicAPI.computeWorldToDisplay.apply(publicAPI, [model._renderer].concat(_toConsumableArray(p1)));
89
- var worldMousePos = publicAPI.computeDisplayToWorld(model._renderer, callData.position.x, callData.position.y, displayMousePos[2]);
79
+ const displayMousePos = publicAPI.computeWorldToDisplay(model._renderer, ...p1);
80
+ const worldMousePos = publicAPI.computeDisplayToWorld(model._renderer, callData.position.x, callData.position.y, displayMousePos[2]);
90
81
  return worldMousePos;
91
82
  }
83
+
92
84
  /**
93
85
  * Returns the handle orientation to match the direction vector of the polyLine from one tip to another
94
86
  * @param {number} handleIndex 0 for handle1, 1 for handle2
95
87
  * @param {object} callData if specified, uses mouse position as 2nd point
96
88
  */
97
-
98
-
99
89
  function getHandleOrientation(handleIndex) {
100
- var callData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
101
- var point1 = getPoint(handleIndex, model.widgetState);
102
- var point2 = callData ? computeMousePosition(point1, callData) : getPoint(1 - handleIndex, model.widgetState);
90
+ let callData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
91
+ const point1 = getPoint(handleIndex, model.widgetState);
92
+ const point2 = callData ? computeMousePosition(point1, callData) : getPoint(1 - handleIndex, model.widgetState);
103
93
  return point1 && point2 ? getLineDirection(point1, point2) : null;
104
94
  }
95
+
105
96
  /**
106
97
  * Orient handle
107
98
  * @param {number} handleIndex 0, 1 or 2
108
99
  * @param {object} callData optional, see getHandleOrientation for details.
109
100
  */
110
-
111
-
112
101
  function updateHandleOrientation(handleIndex) {
113
- var orientation = getHandleOrientation(Math.min(1, handleIndex));
102
+ const orientation = getHandleOrientation(Math.min(1, handleIndex));
114
103
  model.representations[handleIndex].setOrientation(orientation);
115
104
  }
116
-
117
- publicAPI.updateHandleOrientations = function () {
105
+ publicAPI.updateHandleOrientations = () => {
118
106
  updateHandleOrientation(0);
119
107
  updateHandleOrientation(1);
120
108
  updateHandleOrientation(2);
121
109
  };
122
-
123
- publicAPI.rotateHandlesToFaceCamera = function () {
110
+ publicAPI.rotateHandlesToFaceCamera = () => {
124
111
  model.representations[0].setViewMatrix(Array.from(model._camera.getViewMatrix()));
125
112
  model.representations[1].setViewMatrix(Array.from(model._camera.getViewMatrix()));
126
- }; // Handles visibility ---------------------------------------------------------
113
+ };
114
+
115
+ // Handles visibility ---------------------------------------------------------
127
116
 
128
117
  /**
129
118
  * Set actor visibility to true unless it is a NONE handle
@@ -132,55 +121,46 @@ function widgetBehavior(publicAPI, model) {
132
121
  * @param handle : the handle state object
133
122
  * @param handleNb : the handle number according to its label in widget state
134
123
  */
135
-
136
-
137
- publicAPI.updateHandleVisibility = function (handleIndex) {
138
- var handle = publicAPI.getHandle(handleIndex);
139
- var visibility = handle.getVisible() && isHandlePlaced(handleIndex, model.widgetState);
124
+ publicAPI.updateHandleVisibility = handleIndex => {
125
+ const handle = publicAPI.getHandle(handleIndex);
126
+ const visibility = handle.getVisible() && isHandlePlaced(handleIndex, model.widgetState);
140
127
  model.representations[handleIndex].setVisibilityFlagArray([visibility, visibility && handle.getShape() !== ShapeType.NONE]);
141
128
  model.representations[handleIndex].updateActorVisibility();
142
-
143
129
  model._interactor.render();
144
130
  };
131
+
145
132
  /**
146
133
  * Called when placing a point from the first time.
147
134
  * @param {number} handleIndex
148
135
  */
149
-
150
-
151
- publicAPI.placeHandle = function (handleIndex) {
152
- var handle = publicAPI.getHandle(handleIndex);
153
- handle.setOrigin.apply(handle, _toConsumableArray(model.widgetState.getMoveHandle().getOrigin()));
136
+ publicAPI.placeHandle = handleIndex => {
137
+ const handle = publicAPI.getHandle(handleIndex);
138
+ handle.setOrigin(...model.widgetState.getMoveHandle().getOrigin());
154
139
  publicAPI.updateHandleOrientations();
155
140
  publicAPI.rotateHandlesToFaceCamera();
156
141
  model.widgetState.getText().setOrigin(calculateTextPosition(model));
157
142
  publicAPI.updateHandleVisibility(handleIndex);
158
-
159
143
  if (handleIndex === 0) {
160
- var _publicAPI$getHandle;
161
-
162
144
  // For the line (handle1, handle2, moveHandle) to be displayed
163
145
  // correctly, handle2 origin must be valid.
164
- (_publicAPI$getHandle = publicAPI.getHandle(1)).setOrigin.apply(_publicAPI$getHandle, _toConsumableArray(model.widgetState.getMoveHandle().getOrigin())); // Now that handle2 has a valid origin, hide it
165
-
166
-
146
+ publicAPI.getHandle(1).setOrigin(...model.widgetState.getMoveHandle().getOrigin());
147
+ // Now that handle2 has a valid origin, hide it
167
148
  publicAPI.updateHandleVisibility(1);
168
149
  model.widgetState.getMoveHandle().setShape(publicAPI.getHandle(1).getShape());
169
150
  }
170
-
171
151
  if (handleIndex === 1) {
172
152
  publicAPI.loseFocus();
173
153
  }
174
- }; // --------------------------------------------------------------------------
154
+ };
155
+
156
+ // --------------------------------------------------------------------------
175
157
  // Left press: Select handle to drag
176
158
  // --------------------------------------------------------------------------
177
159
 
178
-
179
- publicAPI.handleLeftButtonPress = function (e) {
160
+ publicAPI.handleLeftButtonPress = e => {
180
161
  if (!model.activeState || !model.activeState.getActive() || !model.pickable || ignoreKey(e)) {
181
162
  return macro.VOID;
182
163
  }
183
-
184
164
  if (model.activeState === model.widgetState.getMoveHandle() && getNumberOfPlacedHandles(model.widgetState) === 0) {
185
165
  publicAPI.placeHandle(0);
186
166
  } else if (model.widgetState.getMoveHandle().getActive() && getNumberOfPlacedHandles(model.widgetState) === 1) {
@@ -189,28 +169,26 @@ function widgetBehavior(publicAPI, model) {
189
169
  // Grab handle1, handle2 or whole widget
190
170
  updateCursor(e);
191
171
  }
192
-
193
172
  publicAPI.invokeStartInteractionEvent();
194
173
  return macro.EVENT_ABORT;
195
- }; // --------------------------------------------------------------------------
174
+ };
175
+
176
+ // --------------------------------------------------------------------------
196
177
  // Mouse move: Drag selected handle / Handle follow the mouse
197
178
  // --------------------------------------------------------------------------
198
179
 
199
-
200
- publicAPI.handleMouseMove = function (callData) {
201
- var _model$activeState$ge3, _model$activeState2, _model$activeState2$g;
202
-
203
- 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;
204
-
180
+ publicAPI.handleMouseMove = callData => {
181
+ const manipulator = model.activeState?.getManipulator?.() ?? model.manipulator;
205
182
  if (manipulator && model.pickable && model.dragable && model.activeState && model.activeState.getActive() && !ignoreKey(callData)) {
206
- var _manipulator$handleEv = manipulator.handleEvent(callData, model._apiSpecificRenderWindow),
207
- worldCoords = _manipulator$handleEv.worldCoords;
208
-
209
- var translation = model.previousPosition ? subtract(worldCoords, model.previousPosition, []) : [0, 0, 0];
183
+ const {
184
+ worldCoords
185
+ } = manipulator.handleEvent(callData, model._apiSpecificRenderWindow);
186
+ const translation = model.previousPosition ? subtract(worldCoords, model.previousPosition, []) : [0, 0, 0];
210
187
  model.previousPosition = worldCoords;
211
-
212
- if ( // is placing first or second handle
213
- model.activeState === model.widgetState.getMoveHandle() || // is dragging already placed first or second handle
188
+ if (
189
+ // is placing first or second handle
190
+ model.activeState === model.widgetState.getMoveHandle() ||
191
+ // is dragging already placed first or second handle
214
192
  model._isDragging) {
215
193
  if (model.activeState.setOrigin) {
216
194
  model.activeState.setOrigin(worldCoords);
@@ -220,96 +198,81 @@ function widgetBehavior(publicAPI, model) {
220
198
  publicAPI.getHandle(0).setOrigin(add(publicAPI.getHandle(0).getOrigin(), translation, []));
221
199
  publicAPI.getHandle(1).setOrigin(add(publicAPI.getHandle(1).getOrigin(), translation, []));
222
200
  }
223
-
224
201
  publicAPI.updateHandleOrientations();
225
202
  updateTextPosition(model);
226
203
  publicAPI.invokeInteractionEvent();
227
204
  return macro.EVENT_ABORT;
228
205
  }
229
206
  }
230
-
231
207
  return macro.VOID;
232
- }; // --------------------------------------------------------------------------
208
+ };
209
+
210
+ // --------------------------------------------------------------------------
233
211
  // Left release: Finish drag
234
212
  // --------------------------------------------------------------------------
235
213
 
236
-
237
- publicAPI.handleLeftButtonRelease = function () {
214
+ publicAPI.handleLeftButtonRelease = () => {
238
215
  if (!model.activeState || !model.activeState.getActive() || !model.pickable) {
239
216
  publicAPI.rotateHandlesToFaceCamera();
240
217
  return macro.VOID;
241
218
  }
242
-
243
219
  if (model.hasFocus && publicAPI.isPlaced()) {
244
220
  publicAPI.loseFocus();
245
221
  return macro.VOID;
246
222
  }
247
-
248
223
  if (model._isDragging && publicAPI.isPlaced()) {
249
- var wasTextActive = model.widgetState.getText().getActive(); // Recompute offsets
250
-
224
+ const wasTextActive = model.widgetState.getText().getActive();
225
+ // Recompute offsets
251
226
  model.widgetState.deactivate();
252
227
  model.activeState = null;
253
-
254
228
  if (!wasTextActive) {
255
229
  model._interactor.cancelAnimation(publicAPI);
256
230
  }
257
-
258
231
  model._apiSpecificRenderWindow.setCursor('pointer');
259
-
260
232
  model.hasFocus = false;
261
233
  model._isDragging = false;
262
234
  } else if (model.activeState !== model.widgetState.getMoveHandle()) {
263
235
  model.widgetState.deactivate();
264
236
  }
265
-
266
237
  if (model.hasFocus && !model.activeState || model.activeState && !model.activeState.getActive()) {
267
238
  model._widgetManager.enablePicking();
268
-
269
239
  model._interactor.render();
270
240
  }
271
-
272
241
  publicAPI.invokeEndInteractionEvent();
273
242
  return macro.EVENT_ABORT;
274
- }; // --------------------------------------------------------------------------
243
+ };
244
+
245
+ // --------------------------------------------------------------------------
275
246
  // Focus API - moveHandle follow mouse when widget has focus
276
247
  // --------------------------------------------------------------------------
277
248
 
278
-
279
- publicAPI.grabFocus = function () {
249
+ publicAPI.grabFocus = () => {
280
250
  if (!model.hasFocus && !publicAPI.isPlaced()) {
281
251
  model.activeState = model.widgetState.getMoveHandle();
282
252
  model.activeState.setShape(publicAPI.getHandle(0).getShape());
283
253
  model.activeState.activate();
284
-
285
254
  model._interactor.requestAnimation(publicAPI);
286
-
287
255
  publicAPI.invokeStartInteractionEvent();
288
256
  }
289
-
290
257
  model.hasFocus = true;
291
- }; // --------------------------------------------------------------------------
258
+ };
292
259
 
260
+ // --------------------------------------------------------------------------
293
261
 
294
- publicAPI.loseFocus = function () {
262
+ publicAPI.loseFocus = () => {
295
263
  if (model.hasFocus) {
296
264
  model._interactor.cancelAnimation(publicAPI);
297
-
298
265
  publicAPI.invokeEndInteractionEvent();
299
266
  }
300
-
301
267
  model.widgetState.deactivate();
302
268
  model.widgetState.getMoveHandle().deactivate();
303
269
  model.widgetState.getMoveHandle().setOrigin(null);
304
270
  model.activeState = null;
305
271
  model.hasFocus = false;
306
-
307
272
  model._widgetManager.enablePicking();
308
-
309
273
  model._interactor.render();
310
274
  };
311
-
312
- publicAPI.reset = function () {
275
+ publicAPI.reset = () => {
313
276
  model.widgetState.deactivate();
314
277
  model.widgetState.getMoveHandle().deactivate();
315
278
  model.widgetState.getHandle1().setOrigin(null);
@@ -1,15 +1,13 @@
1
1
  import { s as subtract, w as multiplyScalar, k as add, B as areEquals } from '../../../Common/Core/Math/index.js';
2
2
 
3
3
  function calculateTextPosition(model) {
4
- var vector = [0, 0, 0];
5
- var handle1WorldPos = model.widgetState.getHandle1().getOrigin();
6
- var handle2WorldPos = model.widgetState.getHandle2().getOrigin();
7
-
4
+ const vector = [0, 0, 0];
5
+ const handle1WorldPos = model.widgetState.getHandle1().getOrigin();
6
+ const handle2WorldPos = model.widgetState.getHandle2().getOrigin();
8
7
  if (!handle1WorldPos || !handle2WorldPos) {
9
8
  return null;
10
9
  }
11
-
12
- var statePositionOnLine = model.widgetState.getPositionOnLine().getPosOnLine();
10
+ let statePositionOnLine = model.widgetState.getPositionOnLine().getPosOnLine();
13
11
  statePositionOnLine = 1 - statePositionOnLine;
14
12
  subtract(handle1WorldPos, handle2WorldPos, vector);
15
13
  multiplyScalar(vector, statePositionOnLine);
@@ -17,23 +15,21 @@ function calculateTextPosition(model) {
17
15
  return vector;
18
16
  }
19
17
  function updateTextPosition(model) {
20
- var SVGTextState = model.widgetState.getText();
18
+ const SVGTextState = model.widgetState.getText();
21
19
  SVGTextState.setOrigin(calculateTextPosition(model));
22
20
  }
23
21
  function isHandlePlaced(handleIndex, widgetState) {
24
22
  if (handleIndex === 2) {
25
23
  return widgetState.getMoveHandle().getOrigin() != null;
26
24
  }
27
-
28
- var handle1Origin = widgetState.getHandle1().getOrigin();
29
-
25
+ const handle1Origin = widgetState.getHandle1().getOrigin();
30
26
  if (handleIndex === 0) {
31
27
  return handle1Origin != null;
32
28
  }
33
-
34
- var handle2Origin = widgetState.getHandle2().getOrigin();
29
+ const handle2Origin = widgetState.getHandle2().getOrigin();
35
30
  return handle1Origin && handle2Origin && !areEquals(handle1Origin, handle2Origin, 0);
36
31
  }
32
+
37
33
  /**
38
34
  * Returns the world position of line extremities (placed or not).
39
35
  * Returns null if no extremity exist.
@@ -41,26 +37,23 @@ function isHandlePlaced(handleIndex, widgetState) {
41
37
  * @param {object} widgetState state of line widget
42
38
  * @param {bool} moveHandle Get move handle position if moveHandle is true and handle is not placed
43
39
  */
44
-
45
40
  function getPoint(handleIndex, widgetState) {
46
- var moveHandle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
47
- var handle = moveHandle && !isHandlePlaced(handleIndex, widgetState) ? widgetState.getMoveHandle() : widgetState["getHandle".concat(handleIndex + 1)]();
48
- var origin = handle.getOrigin();
41
+ let moveHandle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
42
+ const handle = moveHandle && !isHandlePlaced(handleIndex, widgetState) ? widgetState.getMoveHandle() : widgetState[`getHandle${handleIndex + 1}`]();
43
+ const origin = handle.getOrigin();
49
44
  return origin || null;
50
45
  }
46
+
51
47
  /**
52
48
  * Returns the number of handle placed on the scene by checking
53
49
  * handle positions. Returns 2 when the user is still
54
50
  * placing 2nd handle
55
51
  * */
56
-
57
52
  function getNumberOfPlacedHandles(widgetState) {
58
- var numberOfPlacedHandles = 0;
59
-
53
+ let numberOfPlacedHandles = 0;
60
54
  if (isHandlePlaced(0, widgetState)) {
61
55
  numberOfPlacedHandles = 1 + isHandlePlaced(1, widgetState);
62
56
  }
63
-
64
57
  return numberOfPlacedHandles;
65
58
  }
66
59
 
@@ -1,8 +1,9 @@
1
1
  import vtkStateBuilder from '../../Core/StateBuilder.js';
2
2
 
3
+ // make line position a sub-state so we can listen to it
3
4
  // separately from the rest of the widget state.
4
5
 
5
- var linePosState = vtkStateBuilder.createBuilder().addField({
6
+ const linePosState = vtkStateBuilder.createBuilder().addField({
6
7
  name: 'posOnLine',
7
8
  initialValue: 0.5
8
9
  }).build();
@@ -1,6 +1,5 @@
1
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
1
  import { e as distance2BetweenPoints } from '../../Common/Core/Math/index.js';
3
- import macro from '../../macros.js';
2
+ import { m as macro } from '../../macros2.js';
4
3
  import generateState from './LineWidget/state.js';
5
4
  import vtkAbstractWidgetFactory from '../Core/AbstractWidgetFactory.js';
6
5
  import vtkArrowHandleRepresentation from '../Representations/ArrowHandleRepresentation.js';
@@ -11,21 +10,20 @@ import { Behavior } from '../Representations/WidgetRepresentation/Constants.js';
11
10
  import { ViewTypes } from '../Core/WidgetManager/Constants.js';
12
11
  import { getPoint, updateTextPosition } from './LineWidget/helpers.js';
13
12
 
14
- 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; }
15
-
16
- 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; }
13
+ // ----------------------------------------------------------------------------
17
14
  // Factory
18
15
  // ----------------------------------------------------------------------------
19
16
 
20
17
  function vtkLineWidget(publicAPI, model) {
21
18
  model.classHierarchy.push('vtkLineWidget');
19
+ const superClass = {
20
+ ...publicAPI
21
+ };
22
22
 
23
- var superClass = _objectSpread({}, publicAPI); // --- Widget Requirement ---------------------------------------------------
24
-
23
+ // --- Widget Requirement ---------------------------------------------------
25
24
 
26
25
  model.methodsToLink = ['activeScaleFactor', 'activeColor', 'useActiveColor', 'glyphResolution', 'defaultScale', 'scaleInPixels'];
27
-
28
- publicAPI.getRepresentationsForViewType = function (viewType) {
26
+ publicAPI.getRepresentationsForViewType = viewType => {
29
27
  switch (viewType) {
30
28
  case ViewTypes.DEFAULT:
31
29
  case ViewTypes.GEOMETRY:
@@ -115,65 +113,71 @@ function vtkLineWidget(publicAPI, model) {
115
113
  }
116
114
  }];
117
115
  }
118
- }; // --- Public methods -------------------------------------------------------
116
+ };
119
117
 
118
+ // --- Public methods -------------------------------------------------------
120
119
 
121
- publicAPI.getDistance = function () {
122
- var p1 = getPoint(0, model.widgetState);
123
- var p2 = getPoint(1, model.widgetState);
120
+ publicAPI.getDistance = () => {
121
+ const p1 = getPoint(0, model.widgetState);
122
+ const p2 = getPoint(1, model.widgetState);
124
123
  return p1 && p2 ? Math.sqrt(distance2BetweenPoints(p1, p2)) : 0;
125
124
  };
126
-
127
- publicAPI.setManipulator = function (manipulator) {
125
+ publicAPI.setManipulator = manipulator => {
128
126
  superClass.setManipulator(manipulator);
129
127
  model.widgetState.getMoveHandle().setManipulator(manipulator);
130
128
  model.widgetState.getHandle1().setManipulator(manipulator);
131
129
  model.widgetState.getHandle2().setManipulator(manipulator);
132
- }; // --------------------------------------------------------------------------
130
+ };
131
+
132
+ // --------------------------------------------------------------------------
133
133
  // initialization
134
134
  // --------------------------------------------------------------------------
135
135
 
136
136
  /**
137
137
  * TBD: Why setting the move handle ?
138
138
  */
139
-
140
-
141
- model.widgetState.onBoundsChange(function (bounds) {
142
- var center = [(bounds[0] + bounds[1]) * 0.5, (bounds[2] + bounds[3]) * 0.5, (bounds[4] + bounds[5]) * 0.5];
139
+ model.widgetState.onBoundsChange(bounds => {
140
+ const center = [(bounds[0] + bounds[1]) * 0.5, (bounds[2] + bounds[3]) * 0.5, (bounds[4] + bounds[5]) * 0.5];
143
141
  model.widgetState.getMoveHandle().setOrigin(center);
144
142
  });
145
- model.widgetState.getPositionOnLine().onModified(function () {
143
+ model.widgetState.getPositionOnLine().onModified(() => {
146
144
  updateTextPosition(model);
147
- }); // Default manipulator
145
+ });
148
146
 
147
+ // Default manipulator
149
148
  publicAPI.setManipulator(model.manipulator || vtkPlanePointManipulator.newInstance({
150
149
  useCameraNormal: true
151
150
  }));
152
- } // ----------------------------------------------------------------------------
151
+ }
153
152
 
153
+ // ----------------------------------------------------------------------------
154
154
 
155
- var defaultValues = function defaultValues(initialValues) {
156
- return _objectSpread({
157
- // manipulator: null,
158
- behavior: widgetBehavior,
159
- widgetState: generateState()
160
- }, initialValues);
161
- }; // ----------------------------------------------------------------------------
155
+ const defaultValues = initialValues => ({
156
+ // manipulator: null,
157
+ behavior: widgetBehavior,
158
+ widgetState: generateState(),
159
+ ...initialValues
160
+ });
162
161
 
162
+ // ----------------------------------------------------------------------------
163
163
 
164
164
  function extend(publicAPI, model) {
165
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
165
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
166
166
  Object.assign(model, defaultValues(initialValues));
167
167
  vtkAbstractWidgetFactory.extend(publicAPI, model, initialValues);
168
168
  macro.setGet(publicAPI, model, ['manipulator']);
169
169
  vtkLineWidget(publicAPI, model);
170
- } // ----------------------------------------------------------------------------
170
+ }
171
171
 
172
- var newInstance = macro.newInstance(extend, 'vtkLineWidget'); // ----------------------------------------------------------------------------
172
+ // ----------------------------------------------------------------------------
173
+
174
+ const newInstance = macro.newInstance(extend, 'vtkLineWidget');
175
+
176
+ // ----------------------------------------------------------------------------
173
177
 
174
178
  var vtkLineWidget$1 = {
175
- newInstance: newInstance,
176
- extend: extend
179
+ newInstance,
180
+ extend
177
181
  };
178
182
 
179
183
  export { vtkLineWidget$1 as default, extend, newInstance };