@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
@@ -878,6 +878,19 @@ export function createUninitializedBounds(): Bounds;
878
878
  */
879
879
  export function getMajorAxisIndex(vector: number[]): number;
880
880
 
881
+ /**
882
+ * Return the closest orthogonal matrix of 1, -1 and 0
883
+ * It works for both column major and row major matrices
884
+ * This function iteratively associate a column with a row by choosing
885
+ * the greatest absolute value from the remaining row and columns
886
+ * For each association, a -1 or a 1 is set in the output, depending on
887
+ * the sign of the value in the original matrix
888
+ *
889
+ * @param {Number[]} matrix The matrix of size nxn
890
+ * @param {Number[]} n The size of the square matrix, defaults to 3
891
+ */
892
+ export function getSparseOrthogonalMatrix(matrix: number[], n: number): number[];
893
+
881
894
  /**
882
895
  *
883
896
  * @param {Number} value The value to convert.
@@ -1028,6 +1041,7 @@ export declare const vtkMath: {
1028
1041
  isInf: typeof isInf;
1029
1042
  createUninitializedBounds: typeof createUninitializedBounds;
1030
1043
  getMajorAxisIndex: typeof getMajorAxisIndex;
1044
+ getSparseOrthogonalMatrix: typeof getSparseOrthogonalMatrix;
1031
1045
  floatToHex2: typeof floatToHex2;
1032
1046
  floatRGB2HexCode: typeof floatRGB2HexCode;
1033
1047
  float2CssRGBA: typeof float2CssRGBA;
@@ -1,6 +1,4 @@
1
- import '@babel/runtime/helpers/slicedToArray';
2
- import '@babel/runtime/helpers/toConsumableArray';
3
1
  import 'seedrandom';
4
- import '../../macros.js';
2
+ import '../../macros2.js';
5
3
  import './Math/Constants.js';
6
- export { aj as LUFactor3x3, ak as LUSolve3x3, U as Pi, k as add, R as angleBetweenVectors, P as areBoundsInitialized, B as areEquals, a as areMatricesEqual, Z as arrayMax, Y as arrayMin, D as arrayRange, a1 as beginCombination, a0 as binomial, aR as boundsIsWithinOtherBounds, V as ceil, _ as ceilLog2, aN as clampAndNormalizeValue, C as clampValue, c as clampVector, ai as columnsToMat3, ah as columnsToMat4, aM as computeBoundsFromPoints, T as createArray, F as createUninitializedBounds, j as cross, f as default, A as degreesFromRadians, o as determinant2x2, y as determinant3x3, az as diagonalize3x3, e as distance2BetweenPoints, d as dot, aa as dot2D, aE as estimateMatrixCondition, aQ as extentIsWithinOtherExtent, $ as factorial, a_ as float2CssRGBA, aZ as floatRGB2HexCode, aY as floatToHex2, K as floor, a5 as gaussian, ac as gaussianAmplitude, ad as gaussianWeight, aP as getAdjustedScalarRange, E as getMajorAxisIndex, aO as getScalarTypeFittingRange, a4 as getSeed, aH as hex2float, h as hsv2rgb, ar as identity, aq as identity3x3, aU as inf, ap as invert3x3, aD as invertMatrix, aW as isFinite, as as isIdentity, at as isIdentity3x3, G as isInf, aX as isNaN, i as isNan, Q as isPowerOfTwo, t as jacobi, p as jacobiN, J as lab2rgb, aI as lab2xyz, al as linearSolve3x3, aB as luFactorLinearSystem, aC as luSolveLinearSystem, aw as matrix3x3ToQuaternion, X as max, W as min, am as multiply3x3_mat3, O as multiply3x3_vect3, m as multiplyAccumulate, a7 as multiplyAccumulate2D, an as multiplyMatrix, ax as multiplyQuaternion, w as multiplyScalar, a6 as multiplyScalar2D, N as nearestPowerOfTwo, aV as negInf, a2 as nextCombination, n as norm, af as norm2D, l as normalize, M as normalize2D, ay as orthogonalize3x3, a8 as outer, ae as outer2D, q as perpendiculars, aS as pointIsWithinBounds, a9 as projectVector, ab as projectVector2D, au as quaternionToMatrix3x3, r as radiansFromDegrees, x as random, a3 as randomSeed, H as rgb2hsv, I as rgb2lab, aL as rgb2xyz, L as round, av as roundNumber, b as roundVector, z as rowsToMat3, ag as rowsToMat4, S as signedAngleBetweenVectors, aA as singularValueDecomposition3x3, aT as solve3PointCircle, aF as solveHomogeneousLeastSquares, aG as solveLeastSquares, g as solveLinearSystem, s as subtract, ao as transpose3x3, u as uninitializeBounds, aJ as xyz2lab, aK as xyz2rgb } from './Math/index.js';
4
+ export { ak as LUFactor3x3, al as LUSolve3x3, V as Pi, k as add, S as angleBetweenVectors, Q as areBoundsInitialized, B as areEquals, a as areMatricesEqual, _ as arrayMax, Z as arrayMin, D as arrayRange, a2 as beginCombination, a1 as binomial, aS as boundsIsWithinOtherBounds, W as ceil, $ as ceilLog2, aO as clampAndNormalizeValue, C as clampValue, c as clampVector, aj as columnsToMat3, ai as columnsToMat4, aN as computeBoundsFromPoints, U as createArray, F as createUninitializedBounds, j as cross, f as default, A as degreesFromRadians, o as determinant2x2, y as determinant3x3, aA as diagonalize3x3, e as distance2BetweenPoints, d as dot, ab as dot2D, aF as estimateMatrixCondition, aR as extentIsWithinOtherExtent, a0 as factorial, a$ as float2CssRGBA, a_ as floatRGB2HexCode, aZ as floatToHex2, G as floor, a6 as gaussian, ad as gaussianAmplitude, ae as gaussianWeight, aQ as getAdjustedScalarRange, E as getMajorAxisIndex, aP as getScalarTypeFittingRange, a5 as getSeed, P as getSparseOrthogonalMatrix, aI as hex2float, h as hsv2rgb, as as identity, ar as identity3x3, aV as inf, aq as invert3x3, aE as invertMatrix, aX as isFinite, at as isIdentity, au as isIdentity3x3, H as isInf, aY as isNaN, i as isNan, R as isPowerOfTwo, t as jacobi, p as jacobiN, K as lab2rgb, aJ as lab2xyz, am as linearSolve3x3, aC as luFactorLinearSystem, aD as luSolveLinearSystem, ax as matrix3x3ToQuaternion, Y as max, X as min, an as multiply3x3_mat3, O as multiply3x3_vect3, m as multiplyAccumulate, a8 as multiplyAccumulate2D, ao as multiplyMatrix, ay as multiplyQuaternion, w as multiplyScalar, a7 as multiplyScalar2D, N as nearestPowerOfTwo, aW as negInf, a3 as nextCombination, n as norm, ag as norm2D, l as normalize, M as normalize2D, az as orthogonalize3x3, a9 as outer, af as outer2D, q as perpendiculars, aT as pointIsWithinBounds, aa as projectVector, ac as projectVector2D, av as quaternionToMatrix3x3, r as radiansFromDegrees, x as random, a4 as randomSeed, I as rgb2hsv, J as rgb2lab, aM as rgb2xyz, L as round, aw as roundNumber, b as roundVector, z as rowsToMat3, ah as rowsToMat4, T as signedAngleBetweenVectors, aB as singularValueDecomposition3x3, aU as solve3PointCircle, aG as solveHomogeneousLeastSquares, aH as solveLeastSquares, g as solveLinearSystem, s as subtract, ap as transpose3x3, u as uninitializeBounds, aK as xyz2lab, aL as xyz2rgb } from './Math/index.js';
@@ -1,178 +1,126 @@
1
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
- import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
- import _createClass from '@babel/runtime/helpers/createClass';
4
- import { vec3, mat4, glMatrix } from 'gl-matrix';
1
+ import { mat4, glMatrix, vec3 } from 'gl-matrix';
5
2
  import { a as areMatricesEqual } from './Math/index.js';
6
3
  import { IDENTITY } from './Math/Constants.js';
7
4
 
8
- var NoOp = function NoOp(v) {
9
- return v;
10
- };
11
-
12
- var EPSILON = 1e-6;
13
-
14
- var Transform = /*#__PURE__*/function () {
15
- function Transform() {
16
- var useDegree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
17
-
18
- _classCallCheck(this, Transform);
19
-
5
+ const NoOp = v => v;
6
+ const EPSILON = 1e-6;
7
+ class Transform {
8
+ constructor() {
9
+ let useDegree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
20
10
  this.matrix = mat4.identity(new Float64Array(16));
21
11
  this.tmp = new Float64Array(3);
22
12
  this.angleConv = useDegree ? glMatrix.toRadian : NoOp;
23
13
  }
24
-
25
- _createClass(Transform, [{
26
- key: "rotateFromDirections",
27
- value: function rotateFromDirections(originDirection, targetDirection) {
28
- var src = new Float64Array(3);
29
- var dst = new Float64Array(3);
30
- var transf = new Float64Array(16);
31
- vec3.set(src, originDirection[0], originDirection[1], originDirection[2]);
32
- vec3.set(dst, targetDirection[0], targetDirection[1], targetDirection[2]);
33
- vec3.normalize(src, src);
34
- vec3.normalize(dst, dst);
35
- var cosAlpha = vec3.dot(src, dst);
36
-
37
- if (cosAlpha >= 1) {
38
- return this;
39
- }
40
-
41
- vec3.cross(this.tmp, src, dst);
42
-
43
- if (vec3.length(this.tmp) < EPSILON) {
44
- // cross product is 0, so pick arbitrary axis perpendicular
45
- // to originDirection.
46
- vec3.cross(this.tmp, [1, 0, 0], originDirection);
47
-
48
- if (vec3.length(this.tmp) < EPSILON) {
49
- vec3.cross(this.tmp, [0, 1, 0], originDirection);
50
- }
51
- }
52
-
53
- mat4.fromRotation(transf, Math.acos(cosAlpha), this.tmp);
54
- mat4.multiply(this.matrix, this.matrix, transf);
55
- return this;
56
- }
57
- }, {
58
- key: "rotate",
59
- value: function rotate(angle, axis) {
60
- vec3.set.apply(vec3, [this.tmp].concat(_toConsumableArray(axis)));
61
- vec3.normalize(this.tmp, this.tmp);
62
- mat4.rotate(this.matrix, this.matrix, this.angleConv(angle), this.tmp);
63
- return this;
64
- }
65
- }, {
66
- key: "rotateX",
67
- value: function rotateX(angle) {
68
- mat4.rotateX(this.matrix, this.matrix, this.angleConv(angle));
69
- return this;
70
- }
71
- }, {
72
- key: "rotateY",
73
- value: function rotateY(angle) {
74
- mat4.rotateY(this.matrix, this.matrix, this.angleConv(angle));
75
- return this;
76
- }
77
- }, {
78
- key: "rotateZ",
79
- value: function rotateZ(angle) {
80
- mat4.rotateZ(this.matrix, this.matrix, this.angleConv(angle));
81
- return this;
82
- }
83
- }, {
84
- key: "translate",
85
- value: function translate(x, y, z) {
86
- vec3.set(this.tmp, x, y, z);
87
- mat4.translate(this.matrix, this.matrix, this.tmp);
88
- return this;
89
- }
90
- }, {
91
- key: "scale",
92
- value: function scale(sx, sy, sz) {
93
- vec3.set(this.tmp, sx, sy, sz);
94
- mat4.scale(this.matrix, this.matrix, this.tmp);
95
- return this;
96
- }
97
- }, {
98
- key: "multiply",
99
- value: function multiply(mat4x4) {
100
- mat4.multiply(this.matrix, this.matrix, mat4x4);
101
- return this;
102
- }
103
- }, {
104
- key: "multiply3x3",
105
- value: function multiply3x3(mat3x3) {
106
- mat4.multiply(this.matrix, this.matrix, [mat3x3[0], mat3x3[1], mat3x3[2], 0, mat3x3[3], mat3x3[4], mat3x3[5], 0, mat3x3[6], mat3x3[7], mat3x3[8], 0, 0, 0, 0, 1]);
14
+ rotateFromDirections(originDirection, targetDirection) {
15
+ const src = new Float64Array(3);
16
+ const dst = new Float64Array(3);
17
+ const transf = new Float64Array(16);
18
+ vec3.set(src, originDirection[0], originDirection[1], originDirection[2]);
19
+ vec3.set(dst, targetDirection[0], targetDirection[1], targetDirection[2]);
20
+ vec3.normalize(src, src);
21
+ vec3.normalize(dst, dst);
22
+ const cosAlpha = vec3.dot(src, dst);
23
+ if (cosAlpha >= 1) {
107
24
  return this;
108
25
  }
109
- }, {
110
- key: "invert",
111
- value: function invert() {
112
- mat4.invert(this.matrix, this.matrix);
113
- return this;
114
- }
115
- }, {
116
- key: "identity",
117
- value: function identity() {
118
- mat4.identity(this.matrix);
119
- return this;
120
- } //-----------
121
-
122
- }, {
123
- key: "apply",
124
- value: function apply(typedArray) {
125
- var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
126
- var nbIterations = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
127
-
128
- if (areMatricesEqual(IDENTITY, this.matrix)) {
129
- // Make sure we can chain apply...
130
- return this;
26
+ vec3.cross(this.tmp, src, dst);
27
+ if (vec3.length(this.tmp) < EPSILON) {
28
+ // cross product is 0, so pick arbitrary axis perpendicular
29
+ // to originDirection.
30
+ vec3.cross(this.tmp, [1, 0, 0], originDirection);
31
+ if (vec3.length(this.tmp) < EPSILON) {
32
+ vec3.cross(this.tmp, [0, 1, 0], originDirection);
131
33
  }
34
+ }
35
+ mat4.fromRotation(transf, Math.acos(cosAlpha), this.tmp);
36
+ mat4.multiply(this.matrix, this.matrix, transf);
37
+ return this;
38
+ }
39
+ rotate(angle, axis) {
40
+ vec3.set(this.tmp, ...axis);
41
+ vec3.normalize(this.tmp, this.tmp);
42
+ mat4.rotate(this.matrix, this.matrix, this.angleConv(angle), this.tmp);
43
+ return this;
44
+ }
45
+ rotateX(angle) {
46
+ mat4.rotateX(this.matrix, this.matrix, this.angleConv(angle));
47
+ return this;
48
+ }
49
+ rotateY(angle) {
50
+ mat4.rotateY(this.matrix, this.matrix, this.angleConv(angle));
51
+ return this;
52
+ }
53
+ rotateZ(angle) {
54
+ mat4.rotateZ(this.matrix, this.matrix, this.angleConv(angle));
55
+ return this;
56
+ }
57
+ translate(x, y, z) {
58
+ vec3.set(this.tmp, x, y, z);
59
+ mat4.translate(this.matrix, this.matrix, this.tmp);
60
+ return this;
61
+ }
62
+ scale(sx, sy, sz) {
63
+ vec3.set(this.tmp, sx, sy, sz);
64
+ mat4.scale(this.matrix, this.matrix, this.tmp);
65
+ return this;
66
+ }
67
+ multiply(mat4x4) {
68
+ mat4.multiply(this.matrix, this.matrix, mat4x4);
69
+ return this;
70
+ }
71
+ multiply3x3(mat3x3) {
72
+ mat4.multiply(this.matrix, this.matrix, [mat3x3[0], mat3x3[1], mat3x3[2], 0, mat3x3[3], mat3x3[4], mat3x3[5], 0, mat3x3[6], mat3x3[7], mat3x3[8], 0, 0, 0, 0, 1]);
73
+ return this;
74
+ }
75
+ invert() {
76
+ mat4.invert(this.matrix, this.matrix);
77
+ return this;
78
+ }
79
+ identity() {
80
+ mat4.identity(this.matrix);
81
+ return this;
82
+ }
132
83
 
133
- var size = nbIterations === -1 ? typedArray.length : offset + nbIterations * 3;
134
-
135
- for (var i = offset; i < size; i += 3) {
136
- vec3.set(this.tmp, typedArray[i], typedArray[i + 1], typedArray[i + 2]);
137
- vec3.transformMat4(this.tmp, this.tmp, this.matrix);
138
- typedArray[i] = this.tmp[0];
139
- typedArray[i + 1] = this.tmp[1];
140
- typedArray[i + 2] = this.tmp[2];
141
- } // Make sure we can chain apply...
142
-
84
+ //-----------
143
85
 
86
+ apply(typedArray) {
87
+ let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
88
+ let nbIterations = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
89
+ if (areMatricesEqual(IDENTITY, this.matrix)) {
90
+ // Make sure we can chain apply...
144
91
  return this;
145
92
  }
146
- }, {
147
- key: "getMatrix",
148
- value: function getMatrix() {
149
- return this.matrix;
93
+ const size = nbIterations === -1 ? typedArray.length : offset + nbIterations * 3;
94
+ for (let i = offset; i < size; i += 3) {
95
+ vec3.set(this.tmp, typedArray[i], typedArray[i + 1], typedArray[i + 2]);
96
+ vec3.transformMat4(this.tmp, this.tmp, this.matrix);
97
+ typedArray[i] = this.tmp[0];
98
+ typedArray[i + 1] = this.tmp[1];
99
+ typedArray[i + 2] = this.tmp[2];
150
100
  }
151
- }, {
152
- key: "setMatrix",
153
- value: function setMatrix(mat4x4) {
154
- if (!!mat4x4 && mat4x4.length === 16) {
155
- mat4.copy(this.matrix, mat4x4);
156
- }
157
101
 
158
- return this;
102
+ // Make sure we can chain apply...
103
+ return this;
104
+ }
105
+ getMatrix() {
106
+ return this.matrix;
107
+ }
108
+ setMatrix(mat4x4) {
109
+ if (!!mat4x4 && mat4x4.length === 16) {
110
+ mat4.copy(this.matrix, mat4x4);
159
111
  }
160
- }]);
161
-
162
- return Transform;
163
- }();
164
-
112
+ return this;
113
+ }
114
+ }
165
115
  function buildFromDegree() {
166
116
  return new Transform(true);
167
117
  }
168
-
169
118
  function buildFromRadian() {
170
119
  return new Transform(false);
171
120
  }
172
-
173
121
  var vtkMatrixBuilder = {
174
- buildFromDegree: buildFromDegree,
175
- buildFromRadian: buildFromRadian
122
+ buildFromDegree,
123
+ buildFromRadian
176
124
  };
177
125
 
178
126
  export { vtkMatrixBuilder as default };
@@ -1,21 +1,24 @@
1
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
2
2
  import vtkDataArray from './DataArray.js';
3
3
  import { VtkDataTypes } from './DataArray/Constants.js';
4
4
 
5
- var vtkErrorMacro = macro.vtkErrorMacro;
6
- var INVALID_BOUNDS = [1, -1, 1, -1, 1, -1]; // ----------------------------------------------------------------------------
5
+ const {
6
+ vtkErrorMacro
7
+ } = macro;
8
+ const INVALID_BOUNDS = [1, -1, 1, -1, 1, -1];
9
+
10
+ // ----------------------------------------------------------------------------
7
11
  // vtkPoints methods
8
12
  // ----------------------------------------------------------------------------
9
13
 
10
14
  function vtkPoints(publicAPI, model) {
11
15
  // Set our className
12
- model.classHierarchy.push('vtkPoints'); // Forwarding methods
16
+ model.classHierarchy.push('vtkPoints');
13
17
 
18
+ // Forwarding methods
14
19
  publicAPI.getNumberOfPoints = publicAPI.getNumberOfTuples;
15
-
16
20
  publicAPI.setNumberOfPoints = function (nbPoints) {
17
- var dimension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
18
-
21
+ let dimension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
19
22
  if (publicAPI.getNumberOfPoints() !== nbPoints) {
20
23
  model.size = nbPoints * dimension;
21
24
  model.values = macro.newTypedArray(model.dataType, model.size);
@@ -23,82 +26,79 @@ function vtkPoints(publicAPI, model) {
23
26
  publicAPI.modified();
24
27
  }
25
28
  };
26
-
27
29
  publicAPI.setPoint = function (idx) {
28
30
  for (var _len = arguments.length, xyz = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
29
31
  xyz[_key - 1] = arguments[_key];
30
32
  }
31
-
32
33
  publicAPI.setTuple(idx, xyz);
33
34
  };
34
-
35
35
  publicAPI.getPoint = publicAPI.getTuple;
36
-
37
- publicAPI.insertNextPoint = function (x, y, z) {
38
- return publicAPI.insertNextTuple([x, y, z]);
39
- };
40
-
41
- publicAPI.getBounds = function () {
36
+ publicAPI.insertNextPoint = (x, y, z) => publicAPI.insertNextTuple([x, y, z]);
37
+ publicAPI.getBounds = () => {
42
38
  if (publicAPI.getNumberOfComponents() === 3) {
43
- var _xRange = publicAPI.getRange(0);
44
-
45
- model.bounds[0] = _xRange[0];
46
- model.bounds[1] = _xRange[1];
47
-
48
- var _yRange = publicAPI.getRange(1);
49
-
50
- model.bounds[2] = _yRange[0];
51
- model.bounds[3] = _yRange[1];
52
- var zRange = publicAPI.getRange(2);
39
+ const xRange = publicAPI.getRange(0);
40
+ model.bounds[0] = xRange[0];
41
+ model.bounds[1] = xRange[1];
42
+ const yRange = publicAPI.getRange(1);
43
+ model.bounds[2] = yRange[0];
44
+ model.bounds[3] = yRange[1];
45
+ const zRange = publicAPI.getRange(2);
53
46
  model.bounds[4] = zRange[0];
54
47
  model.bounds[5] = zRange[1];
55
48
  return model.bounds;
56
49
  }
57
-
58
50
  if (publicAPI.getNumberOfComponents() !== 2) {
59
- vtkErrorMacro("getBounds called on an array with components of\n ".concat(publicAPI.getNumberOfComponents()));
51
+ vtkErrorMacro(`getBounds called on an array with components of
52
+ ${publicAPI.getNumberOfComponents()}`);
60
53
  return INVALID_BOUNDS;
61
54
  }
62
-
63
- var xRange = publicAPI.getRange(0);
55
+ const xRange = publicAPI.getRange(0);
64
56
  model.bounds[0] = xRange[0];
65
57
  model.bounds[1] = xRange[1];
66
- var yRange = publicAPI.getRange(1);
58
+ const yRange = publicAPI.getRange(1);
67
59
  model.bounds[2] = yRange[0];
68
60
  model.bounds[3] = yRange[1];
69
61
  model.bounds[4] = 0;
70
62
  model.bounds[5] = 0;
71
63
  return model.bounds;
72
- }; // Trigger the computation of bounds
73
-
64
+ };
74
65
 
75
- publicAPI.computeBounds = publicAPI.getBounds; // Initialize
66
+ // Trigger the computation of bounds
67
+ publicAPI.computeBounds = publicAPI.getBounds;
76
68
 
69
+ // Initialize
77
70
  publicAPI.setNumberOfComponents(model.numberOfComponents < 2 ? 3 : model.numberOfComponents);
78
- } // ----------------------------------------------------------------------------
71
+ }
72
+
73
+ // ----------------------------------------------------------------------------
79
74
  // Object factory
80
75
  // ----------------------------------------------------------------------------
81
76
 
82
-
83
- var DEFAULT_VALUES = {
77
+ const DEFAULT_VALUES = {
84
78
  empty: true,
85
79
  numberOfComponents: 3,
86
80
  dataType: VtkDataTypes.FLOAT,
87
81
  bounds: [1, -1, 1, -1, 1, -1]
88
- }; // ----------------------------------------------------------------------------
82
+ };
83
+
84
+ // ----------------------------------------------------------------------------
89
85
 
90
86
  function extend(publicAPI, model) {
91
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
87
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
92
88
  Object.assign(model, DEFAULT_VALUES, initialValues);
93
89
  vtkDataArray.extend(publicAPI, model, initialValues);
94
90
  vtkPoints(publicAPI, model);
95
- } // ----------------------------------------------------------------------------
91
+ }
92
+
93
+ // ----------------------------------------------------------------------------
94
+
95
+ const newInstance = macro.newInstance(extend, 'vtkPoints');
96
96
 
97
- var newInstance = macro.newInstance(extend, 'vtkPoints'); // ----------------------------------------------------------------------------
97
+ // ----------------------------------------------------------------------------
98
98
 
99
99
  var vtkPoints$1 = {
100
- newInstance: newInstance,
101
- extend: extend
100
+ newInstance,
101
+ extend
102
102
  };
103
103
 
104
104
  export { vtkPoints$1 as default, extend, newInstance };
@@ -1,63 +1,65 @@
1
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
2
2
 
3
+ // ----------------------------------------------------------------------------
3
4
  // vtkPriorityQueue methods
4
5
  // ----------------------------------------------------------------------------
5
6
 
6
7
  function vtkPriorityQueue(publicAPI, model) {
7
8
  // Set our classname
8
9
  model.classHierarchy.push('vtkPriorityQueue');
9
-
10
- publicAPI.push = function (priority, element) {
10
+ publicAPI.push = (priority, element) => {
11
11
  // naive algo
12
- var i = model.elements.findIndex(function (e) {
13
- return e.priority > priority;
14
- });
12
+ const i = model.elements.findIndex(e => e.priority > priority);
15
13
  model.elements.splice(i, 0, {
16
- priority: priority,
17
- element: element
14
+ priority,
15
+ element
18
16
  });
19
17
  };
20
-
21
- publicAPI.pop = function () {
18
+ publicAPI.pop = () => {
22
19
  if (model.elements.length > 0) {
23
20
  return model.elements.shift().element;
24
21
  }
25
-
26
22
  return null;
27
23
  };
28
-
29
- publicAPI.deleteById = function (id) {
30
- model.elements = model.elements.filter(function (_ref) {
31
- var element = _ref.element;
24
+ publicAPI.deleteById = id => {
25
+ model.elements = model.elements.filter(_ref => {
26
+ let {
27
+ element
28
+ } = _ref;
32
29
  return element.id !== id;
33
30
  });
34
31
  };
32
+ publicAPI.length = () => model.elements.length;
33
+ }
35
34
 
36
- publicAPI.length = function () {
37
- return model.elements.length;
38
- };
39
- } // ----------------------------------------------------------------------------
35
+ // ----------------------------------------------------------------------------
40
36
  // Object factory
41
37
  // ----------------------------------------------------------------------------
42
38
 
43
-
44
- var DEFAULT_VALUES = {
39
+ const DEFAULT_VALUES = {
45
40
  elements: []
46
- }; // ----------------------------------------------------------------------------
41
+ };
42
+
43
+ // ----------------------------------------------------------------------------
47
44
 
48
45
  function extend(publicAPI, model) {
49
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
50
- Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
46
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
47
+ Object.assign(model, DEFAULT_VALUES, initialValues);
51
48
 
49
+ // Build VTK API
52
50
  macro.obj(publicAPI, model);
53
51
  vtkPriorityQueue(publicAPI, model);
54
- } // ----------------------------------------------------------------------------
52
+ }
55
53
 
56
- var newInstance = macro.newInstance(extend, 'vtkPriorityQueue'); // ----------------------------------------------------------------------------
54
+ // ----------------------------------------------------------------------------
55
+
56
+ const newInstance = macro.newInstance(extend, 'vtkPriorityQueue');
57
+
58
+ // ----------------------------------------------------------------------------
57
59
 
58
60
  var vtkPriorityQueue$1 = {
59
- newInstance: newInstance,
60
- extend: extend
61
+ newInstance,
62
+ extend
61
63
  };
62
64
 
63
65
  export { vtkPriorityQueue$1 as default, extend, newInstance };
@@ -1,75 +1,74 @@
1
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
2
2
 
3
+ // ----------------------------------------------------------------------------
3
4
  // vtkProgressHandler methods
4
5
  // ----------------------------------------------------------------------------
5
6
 
6
7
  function vtkProgressHandler(publicAPI, model) {
7
8
  // Set our className
8
9
  model.classHierarchy.push('vtkProgressHandler');
9
-
10
- publicAPI.startWork = function () {
10
+ publicAPI.startWork = () => {
11
11
  model.workCount += 1;
12
-
13
12
  if (model.workCount === 1) {
14
13
  publicAPI.invokeChange(true);
15
14
  }
16
15
  };
17
-
18
- publicAPI.stopWork = function () {
16
+ publicAPI.stopWork = () => {
19
17
  model.workCount -= 1;
20
-
21
18
  if (model.workCount === 0) {
22
19
  publicAPI.invokeChange(false);
23
20
  }
24
21
  };
25
-
26
- publicAPI.isWorking = function () {
27
- return !!model.workCount;
28
- };
29
-
30
- publicAPI.wrapPromise = function (promise) {
22
+ publicAPI.isWorking = () => !!model.workCount;
23
+ publicAPI.wrapPromise = promise => {
31
24
  publicAPI.startWork();
32
- return new Promise(function (resolve, reject) {
25
+ return new Promise((resolve, reject) => {
33
26
  promise.then(function () {
34
27
  publicAPI.stopWork();
35
- resolve.apply(void 0, arguments);
36
- }, function (rejectError) {
28
+ resolve(...arguments);
29
+ }, rejectError => {
37
30
  publicAPI.stopWork();
38
31
  reject(rejectError);
39
32
  });
40
33
  });
41
34
  };
42
-
43
- publicAPI.wrapPromiseFunction = function (fn) {
44
- return function () {
45
- return publicAPI.wrapPromise(fn.apply(void 0, arguments));
46
- };
35
+ publicAPI.wrapPromiseFunction = fn => function () {
36
+ return publicAPI.wrapPromise(fn(...arguments));
47
37
  };
48
- } // ----------------------------------------------------------------------------
38
+ }
39
+
40
+ // ----------------------------------------------------------------------------
49
41
  // Object factory
50
42
  // ----------------------------------------------------------------------------
51
43
 
52
-
53
- var DEFAULT_VALUES = {
44
+ const DEFAULT_VALUES = {
54
45
  workCount: 0
55
- }; // ----------------------------------------------------------------------------
46
+ };
47
+
48
+ // ----------------------------------------------------------------------------
56
49
 
57
50
  function extend(publicAPI, model) {
58
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
59
- Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods
51
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
52
+ Object.assign(model, DEFAULT_VALUES, initialValues);
60
53
 
54
+ // Object methods
61
55
  macro.obj(publicAPI, model);
62
56
  macro.event(publicAPI, model, 'change');
63
- macro.get(publicAPI, model, ['workCount']); // Object specific methods
57
+ macro.get(publicAPI, model, ['workCount']);
64
58
 
59
+ // Object specific methods
65
60
  vtkProgressHandler(publicAPI, model);
66
- } // ----------------------------------------------------------------------------
61
+ }
67
62
 
68
- var newInstance = macro.newInstance(extend, 'vtkProgressHandler'); // ----------------------------------------------------------------------------
63
+ // ----------------------------------------------------------------------------
64
+
65
+ const newInstance = macro.newInstance(extend, 'vtkProgressHandler');
66
+
67
+ // ----------------------------------------------------------------------------
69
68
 
70
69
  var vtkProgressHandler$1 = {
71
- newInstance: newInstance,
72
- extend: extend
70
+ newInstance,
71
+ extend
73
72
  };
74
73
 
75
74
  export { vtkProgressHandler$1 as default, extend, newInstance };