@kitware/vtk.js 28.10.2 → 28.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/Common/Core/Base64.js +53 -82
  2. package/Common/Core/CellArray.js +52 -60
  3. package/Common/Core/ClassHierarchy.js +8 -36
  4. package/Common/Core/DataArray/Constants.js +6 -6
  5. package/Common/Core/DataArray.js +185 -270
  6. package/Common/Core/Endian.js +14 -17
  7. package/Common/Core/HalfFloat.js +17 -34
  8. package/Common/Core/ImageHelper.js +17 -25
  9. package/Common/Core/LookupTable.js +131 -144
  10. package/Common/Core/Math/Constants.js +8 -8
  11. package/Common/Core/Math/index.js +754 -942
  12. package/Common/Core/Math.js +2 -4
  13. package/Common/Core/MatrixBuilder.js +99 -151
  14. package/Common/Core/Points.js +43 -43
  15. package/Common/Core/PriorityQueue.js +30 -28
  16. package/Common/Core/ProgressHandler.js +31 -32
  17. package/Common/Core/ScalarsToColors/Constants.js +4 -4
  18. package/Common/Core/ScalarsToColors.js +196 -253
  19. package/Common/Core/StringArray.js +48 -73
  20. package/Common/Core/URLExtract.js +10 -29
  21. package/Common/Core/VariantArray.js +48 -73
  22. package/Common/Core.js +11 -11
  23. package/Common/DataModel/AbstractPointLocator.js +19 -17
  24. package/Common/DataModel/BoundingBox.js +322 -490
  25. package/Common/DataModel/Box.js +46 -63
  26. package/Common/DataModel/CardinalSpline1D.js +92 -102
  27. package/Common/DataModel/Cell.js +41 -61
  28. package/Common/DataModel/CellLinks.js +91 -127
  29. package/Common/DataModel/CellTypes/Constants.js +7 -6
  30. package/Common/DataModel/CellTypes.js +55 -74
  31. package/Common/DataModel/Collection.js +45 -61
  32. package/Common/DataModel/Cone.js +28 -20
  33. package/Common/DataModel/Cylinder.js +41 -35
  34. package/Common/DataModel/DataSet/Constants.js +11 -5
  35. package/Common/DataModel/DataSet.js +37 -25
  36. package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
  37. package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
  38. package/Common/DataModel/DataSetAttributes.js +96 -138
  39. package/Common/DataModel/EdgeLocator.js +45 -70
  40. package/Common/DataModel/ITKHelper.js +67 -137
  41. package/Common/DataModel/ImageData.js +115 -172
  42. package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
  43. package/Common/DataModel/ImplicitBoolean.js +66 -96
  44. package/Common/DataModel/IncrementalOctreeNode.js +201 -231
  45. package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
  46. package/Common/DataModel/KochanekSpline1D.js +78 -81
  47. package/Common/DataModel/Line/Constants.js +2 -2
  48. package/Common/DataModel/Line.js +82 -105
  49. package/Common/DataModel/Locator.js +17 -10
  50. package/Common/DataModel/Molecule.js +26 -17
  51. package/Common/DataModel/PiecewiseFunction.js +218 -239
  52. package/Common/DataModel/Plane.js +90 -113
  53. package/Common/DataModel/PointSet.js +30 -26
  54. package/Common/DataModel/PolyData/Constants.js +2 -2
  55. package/Common/DataModel/PolyData.js +95 -120
  56. package/Common/DataModel/PolyLine.js +44 -61
  57. package/Common/DataModel/Polygon/Constants.js +4 -4
  58. package/Common/DataModel/Polygon.js +128 -169
  59. package/Common/DataModel/Quad/Constants.js +2 -2
  60. package/Common/DataModel/Quad.js +61 -100
  61. package/Common/DataModel/SelectionNode/Constants.js +5 -4
  62. package/Common/DataModel/SelectionNode.js +25 -21
  63. package/Common/DataModel/Sphere.js +40 -35
  64. package/Common/DataModel/Spline1D/Constants.js +3 -2
  65. package/Common/DataModel/Spline1D.js +34 -18
  66. package/Common/DataModel/Spline3D/Constants.js +2 -2
  67. package/Common/DataModel/Spline3D.js +46 -41
  68. package/Common/DataModel/StructuredData/Constants.js +2 -2
  69. package/Common/DataModel/StructuredData.js +9 -20
  70. package/Common/DataModel/Triangle.js +207 -250
  71. package/Common/DataModel.js +19 -19
  72. package/Common/System/MobileVR.js +56 -61
  73. package/Common/System/TimerLog.js +1 -1
  74. package/Common/System.js +2 -2
  75. package/Common/Transform/LandmarkTransform/Constants.js +2 -2
  76. package/Common/Transform/LandmarkTransform.js +133 -117
  77. package/Common/Transform/Transform.js +42 -57
  78. package/Common/Transform.js +2 -2
  79. package/Common/index.js +4 -4
  80. package/Filters/Core/Cutter.js +134 -146
  81. package/Filters/Core/PolyDataNormals.js +44 -50
  82. package/Filters/Core.js +2 -2
  83. package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
  84. package/Filters/Cornerstone.js +1 -1
  85. package/Filters/General/AppendPolyData.js +84 -100
  86. package/Filters/General/Calculator.js +95 -163
  87. package/Filters/General/ClipClosedSurface/Constants.js +2 -2
  88. package/Filters/General/ClipClosedSurface.js +341 -416
  89. package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
  90. package/Filters/General/ContourTriangulator/Constants.js +2 -2
  91. package/Filters/General/ContourTriangulator/helper.js +684 -812
  92. package/Filters/General/ContourTriangulator.js +92 -89
  93. package/Filters/General/ImageCropFilter.js +77 -78
  94. package/Filters/General/ImageDataOutlineFilter.js +42 -36
  95. package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
  96. package/Filters/General/ImageMarchingCubes.js +99 -112
  97. package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
  98. package/Filters/General/ImageMarchingSquares.js +93 -118
  99. package/Filters/General/ImageOutlineFilter.js +53 -54
  100. package/Filters/General/ImageSliceFilter.js +39 -30
  101. package/Filters/General/ImageStreamline.js +107 -124
  102. package/Filters/General/LineFilter.js +26 -15
  103. package/Filters/General/MoleculeToRepresentation.js +136 -149
  104. package/Filters/General/OBBTree/OBBNode.js +36 -34
  105. package/Filters/General/OBBTree/helper.js +19 -24
  106. package/Filters/General/OBBTree.js +396 -488
  107. package/Filters/General/OutlineFilter.js +52 -34
  108. package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
  109. package/Filters/General/PaintFilter.js +150 -162
  110. package/Filters/General/ScalarToRGBA.js +38 -33
  111. package/Filters/General/TriangleFilter.js +65 -62
  112. package/Filters/General/TubeFilter/Constants.js +4 -4
  113. package/Filters/General/TubeFilter.js +376 -496
  114. package/Filters/General/WarpScalar.js +58 -60
  115. package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
  116. package/Filters/General.js +21 -21
  117. package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
  118. package/Filters/Sources/Arrow2DSource.js +56 -56
  119. package/Filters/Sources/ArrowSource.js +39 -29
  120. package/Filters/Sources/CircleSource.js +43 -43
  121. package/Filters/Sources/ConcentricCylinderSource.js +151 -174
  122. package/Filters/Sources/ConeSource.js +51 -42
  123. package/Filters/Sources/CubeSource.js +75 -96
  124. package/Filters/Sources/Cursor3D.js +94 -109
  125. package/Filters/Sources/CylinderSource.js +90 -90
  126. package/Filters/Sources/ImageGridSource.js +43 -43
  127. package/Filters/Sources/LineSource.js +49 -39
  128. package/Filters/Sources/PlaneSource.js +97 -104
  129. package/Filters/Sources/PointSource.js +46 -37
  130. package/Filters/Sources/RTAnalyticSource.js +50 -48
  131. package/Filters/Sources/SLICSource.js +63 -73
  132. package/Filters/Sources/SphereSource.js +88 -78
  133. package/Filters/Sources/ViewFinderSource.js +26 -23
  134. package/Filters/Sources.js +14 -14
  135. package/Filters/Texture/TextureMapToPlane.js +95 -97
  136. package/Filters/Texture/TextureMapToSphere.js +46 -54
  137. package/Filters/Texture.js +2 -2
  138. package/Filters/index.js +5 -5
  139. package/IO/Core/BinaryHelper.js +12 -18
  140. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
  141. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
  142. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
  143. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
  144. package/IO/Core/DataAccessHelper.js +6 -6
  145. package/IO/Core/HttpDataSetReader.js +136 -139
  146. package/IO/Core/HttpDataSetSeriesReader.js +64 -75
  147. package/IO/Core/HttpSceneLoader.js +130 -179
  148. package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
  149. package/IO/Core/ImageStream/ViewStream.js +100 -103
  150. package/IO/Core/ImageStream.js +62 -54
  151. package/IO/Core/ResourceLoader.js +10 -9
  152. package/IO/Core/Serializer/ArraySerializer.js +40 -40
  153. package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
  154. package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
  155. package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
  156. package/IO/Core/Serializer.js +6 -13
  157. package/IO/Core/WSLinkClient.js +90 -76
  158. package/IO/Core/ZipMultiDataSetReader.js +46 -44
  159. package/IO/Core/ZipMultiDataSetWriter.js +43 -34
  160. package/IO/Core.js +7 -7
  161. package/IO/Geometry/DracoReader.js +118 -121
  162. package/IO/Geometry/PLYReader.js +163 -223
  163. package/IO/Geometry/PLYWriter/Constants.js +5 -5
  164. package/IO/Geometry/PLYWriter.js +139 -154
  165. package/IO/Geometry/STLReader.js +123 -146
  166. package/IO/Geometry/STLWriter/Constants.js +2 -2
  167. package/IO/Geometry/STLWriter.js +83 -82
  168. package/IO/Geometry.js +5 -5
  169. package/IO/Legacy/LegacyAsciiParser.js +78 -139
  170. package/IO/Legacy/PolyDataReader.js +48 -36
  171. package/IO/Legacy.js +2 -2
  172. package/IO/Misc/ElevationReader.js +67 -60
  173. package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
  174. package/IO/Misc/ITKImageReader.js +58 -45
  175. package/IO/Misc/ITKPolyDataReader.js +50 -38
  176. package/IO/Misc/JSONNucleoReader.js +49 -42
  177. package/IO/Misc/JSONReader.js +38 -33
  178. package/IO/Misc/MTLReader.js +74 -119
  179. package/IO/Misc/OBJReader.js +153 -206
  180. package/IO/Misc/PDBReader.js +70 -68
  181. package/IO/Misc/SkyboxReader.js +77 -82
  182. package/IO/Misc.js +9 -9
  183. package/IO/XML/XMLImageDataReader.js +36 -38
  184. package/IO/XML/XMLImageDataWriter.js +28 -21
  185. package/IO/XML/XMLPolyDataReader.js +49 -46
  186. package/IO/XML/XMLPolyDataWriter.js +43 -42
  187. package/IO/XML/XMLReader.js +262 -304
  188. package/IO/XML/XMLWriter/Constants.js +3 -3
  189. package/IO/XML/XMLWriter.js +70 -84
  190. package/IO/XML.js +6 -6
  191. package/IO/index.js +5 -5
  192. package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
  193. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
  194. package/Imaging/Core/AbstractImageInterpolator.js +74 -87
  195. package/Imaging/Core/ImageInterpolator.js +201 -252
  196. package/Imaging/Core/ImagePointDataIterator.js +96 -122
  197. package/Imaging/Core/ImageReslice/Constants.js +2 -2
  198. package/Imaging/Core/ImageReslice.js +327 -464
  199. package/Imaging/Core.js +4 -4
  200. package/Imaging/Hybrid/SampleFunction.js +58 -51
  201. package/Imaging/Hybrid.js +1 -1
  202. package/Imaging/index.js +2 -2
  203. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
  204. package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
  205. package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
  206. package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
  207. package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
  208. package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
  209. package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
  210. package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
  211. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
  212. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
  213. package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
  214. package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
  215. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
  216. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
  217. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
  218. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
  219. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
  220. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
  221. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
  222. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
  223. package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
  224. package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
  225. package/Interaction/Manipulators.js +21 -21
  226. package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
  227. package/Interaction/Misc.js +1 -1
  228. package/Interaction/Style/InteractorStyleImage.js +101 -121
  229. package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
  230. package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
  231. package/Interaction/Style/InteractorStyleManipulator.js +254 -329
  232. package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
  233. package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
  234. package/Interaction/Style/InteractorStyleUnicam.js +30 -38
  235. package/Interaction/Style.js +5 -5
  236. package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
  237. package/Interaction/UI/CornerAnnotation.js +65 -48
  238. package/Interaction/UI/FPSMonitor.js +104 -105
  239. package/Interaction/UI/Icons.js +1 -1
  240. package/Interaction/UI/Slider/Constants.js +2 -2
  241. package/Interaction/UI/Slider.js +78 -95
  242. package/Interaction/UI/VolumeController.js +104 -97
  243. package/Interaction/UI.js +5 -5
  244. package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
  245. package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
  246. package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  247. package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
  248. package/Interaction/Widgets.js +2 -2
  249. package/Interaction/index.js +5 -5
  250. package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
  251. package/Proxy/Animation/AnimationProxyManager.js +43 -51
  252. package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
  253. package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
  254. package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
  255. package/Proxy/Core/LookupTableProxy.js +49 -52
  256. package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
  257. package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
  258. package/Proxy/Core/ProxyManager/core.js +83 -106
  259. package/Proxy/Core/ProxyManager/properties.js +53 -76
  260. package/Proxy/Core/ProxyManager/state.js +100 -110
  261. package/Proxy/Core/ProxyManager/view.js +45 -55
  262. package/Proxy/Core/ProxyManager.js +16 -8
  263. package/Proxy/Core/SourceProxy.js +41 -38
  264. package/Proxy/Core/View2DProxy.js +143 -199
  265. package/Proxy/Core/ViewProxy.js +223 -269
  266. package/Proxy/Core.js +7 -7
  267. package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
  268. package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
  269. package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
  270. package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
  271. package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
  272. package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
  273. package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
  274. package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
  275. package/Proxy/Representations.js +7 -7
  276. package/Proxy/index.js +2 -2
  277. package/Rendering/Core/AbstractImageMapper/helper.js +44 -49
  278. package/Rendering/Core/AbstractImageMapper.js +18 -19
  279. package/Rendering/Core/AbstractMapper.js +39 -55
  280. package/Rendering/Core/AbstractMapper3D.js +26 -31
  281. package/Rendering/Core/AbstractPicker.js +25 -21
  282. package/Rendering/Core/Actor.js +71 -93
  283. package/Rendering/Core/Actor2D.js +64 -78
  284. package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
  285. package/Rendering/Core/AnnotatedCubeActor.js +94 -79
  286. package/Rendering/Core/AxesActor.js +65 -87
  287. package/Rendering/Core/Camera.js +246 -271
  288. package/Rendering/Core/CellPicker.js +125 -148
  289. package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
  290. package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
  291. package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
  292. package/Rendering/Core/ColorTransferFunction.js +460 -546
  293. package/Rendering/Core/Coordinate/Constants.js +2 -2
  294. package/Rendering/Core/Coordinate.js +119 -198
  295. package/Rendering/Core/CubeAxesActor.js +294 -320
  296. package/Rendering/Core/Follower.js +46 -45
  297. package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
  298. package/Rendering/Core/Glyph3DMapper.js +96 -148
  299. package/Rendering/Core/HardwareSelector.js +36 -69
  300. package/Rendering/Core/ImageArrayMapper.js +87 -126
  301. package/Rendering/Core/ImageCPRMapper.js +134 -209
  302. package/Rendering/Core/ImageMapper/Constants.js +2 -2
  303. package/Rendering/Core/ImageMapper.js +85 -144
  304. package/Rendering/Core/ImageProperty/Constants.js +2 -2
  305. package/Rendering/Core/ImageProperty.js +66 -81
  306. package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
  307. package/Rendering/Core/ImageResliceMapper.js +36 -29
  308. package/Rendering/Core/ImageSlice.js +85 -127
  309. package/Rendering/Core/InteractorObserver.js +82 -73
  310. package/Rendering/Core/InteractorStyle/Constants.js +2 -2
  311. package/Rendering/Core/InteractorStyle.js +56 -58
  312. package/Rendering/Core/Light.js +43 -49
  313. package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
  314. package/Rendering/Core/Mapper/Constants.js +6 -6
  315. package/Rendering/Core/Mapper/Static.js +15 -12
  316. package/Rendering/Core/Mapper.js +194 -259
  317. package/Rendering/Core/Mapper2D.js +61 -100
  318. package/Rendering/Core/Picker.js +124 -143
  319. package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
  320. package/Rendering/Core/PointPicker.js +68 -79
  321. package/Rendering/Core/Prop/Constants.js +2 -2
  322. package/Rendering/Core/Prop.js +58 -106
  323. package/Rendering/Core/Prop3D.js +54 -83
  324. package/Rendering/Core/Property/Constants.js +6 -6
  325. package/Rendering/Core/Property.js +45 -74
  326. package/Rendering/Core/Property2D/Constants.js +2 -2
  327. package/Rendering/Core/Property2D.js +33 -42
  328. package/Rendering/Core/RenderWindow.js +70 -82
  329. package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
  330. package/Rendering/Core/RenderWindowInteractor.js +324 -439
  331. package/Rendering/Core/Renderer.js +192 -256
  332. package/Rendering/Core/ScalarBarActor.js +267 -272
  333. package/Rendering/Core/Skybox.js +26 -24
  334. package/Rendering/Core/SphereMapper.js +22 -12
  335. package/Rendering/Core/StickMapper.js +22 -12
  336. package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
  337. package/Rendering/Core/SurfaceLICInterface.js +13 -9
  338. package/Rendering/Core/SurfaceLICMapper.js +23 -15
  339. package/Rendering/Core/Texture.js +99 -141
  340. package/Rendering/Core/Viewport.js +60 -88
  341. package/Rendering/Core/Volume.js +55 -77
  342. package/Rendering/Core/VolumeMapper/Constants.js +4 -4
  343. package/Rendering/Core/VolumeMapper.js +59 -91
  344. package/Rendering/Core/VolumeProperty/Constants.js +4 -4
  345. package/Rendering/Core/VolumeProperty.js +78 -115
  346. package/Rendering/Core.js +47 -49
  347. package/Rendering/Misc/CanvasView.js +62 -61
  348. package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
  349. package/Rendering/Misc/GenericRenderWindow.js +48 -37
  350. package/Rendering/Misc/RemoteView.js +86 -80
  351. package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
  352. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
  353. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
  354. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
  355. package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
  356. package/Rendering/Misc/TextureLODsDownloader.js +72 -74
  357. package/Rendering/Misc.js +7 -7
  358. package/Rendering/OpenGL/Actor.js +57 -68
  359. package/Rendering/OpenGL/Actor2D.js +56 -56
  360. package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
  361. package/Rendering/OpenGL/BufferObject.js +50 -65
  362. package/Rendering/OpenGL/Camera.js +35 -29
  363. package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
  364. package/Rendering/OpenGL/Convolution2DPass.js +87 -81
  365. package/Rendering/OpenGL/CubeAxesActor.js +28 -21
  366. package/Rendering/OpenGL/ForwardPass.js +53 -64
  367. package/Rendering/OpenGL/Framebuffer.js +61 -101
  368. package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
  369. package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
  370. package/Rendering/OpenGL/HardwareSelector.js +272 -397
  371. package/Rendering/OpenGL/Helper.js +58 -73
  372. package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
  373. package/Rendering/OpenGL/ImageMapper.js +268 -361
  374. package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
  375. package/Rendering/OpenGL/ImageSlice.js +48 -54
  376. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
  377. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
  378. package/Rendering/OpenGL/PolyDataMapper.js +358 -492
  379. package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
  380. package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
  381. package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
  382. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
  383. package/Rendering/OpenGL/RenderWindow.js +356 -510
  384. package/Rendering/OpenGL/Renderer.js +77 -89
  385. package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
  386. package/Rendering/OpenGL/ScalarBarActor.js +28 -21
  387. package/Rendering/OpenGL/Shader.js +37 -31
  388. package/Rendering/OpenGL/ShaderCache.js +67 -74
  389. package/Rendering/OpenGL/ShaderProgram.js +136 -248
  390. package/Rendering/OpenGL/Skybox.js +99 -60
  391. package/Rendering/OpenGL/SphereMapper.js +94 -108
  392. package/Rendering/OpenGL/StickMapper.js +110 -114
  393. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
  394. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
  395. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
  396. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
  397. package/Rendering/OpenGL/SurfaceLIC.js +2 -2
  398. package/Rendering/OpenGL/Texture/Constants.js +4 -4
  399. package/Rendering/OpenGL/Texture.js +443 -608
  400. package/Rendering/OpenGL/TextureUnitManager.js +47 -43
  401. package/Rendering/OpenGL/VertexArrayObject.js +92 -131
  402. package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
  403. package/Rendering/OpenGL/Volume.js +38 -34
  404. package/Rendering/OpenGL/VolumeMapper.js +437 -547
  405. package/Rendering/OpenGL.js +28 -28
  406. package/Rendering/SceneGraph/RenderPass.js +34 -31
  407. package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
  408. package/Rendering/SceneGraph/ViewNode.js +82 -111
  409. package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
  410. package/Rendering/SceneGraph.js +4 -4
  411. package/Rendering/WebGPU/Actor.js +49 -49
  412. package/Rendering/WebGPU/Actor2D.js +45 -44
  413. package/Rendering/WebGPU/BindGroup.js +43 -50
  414. package/Rendering/WebGPU/Buffer.js +41 -50
  415. package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
  416. package/Rendering/WebGPU/BufferManager.js +111 -141
  417. package/Rendering/WebGPU/Camera.js +65 -67
  418. package/Rendering/WebGPU/CellArrayMapper.js +621 -388
  419. package/Rendering/WebGPU/CubeAxesActor.js +28 -19
  420. package/Rendering/WebGPU/Device.js +78 -133
  421. package/Rendering/WebGPU/ForwardPass.js +75 -72
  422. package/Rendering/WebGPU/FullScreenQuad.js +25 -18
  423. package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
  424. package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
  425. package/Rendering/WebGPU/HardwareSelector.js +200 -276
  426. package/Rendering/WebGPU/ImageMapper.js +180 -171
  427. package/Rendering/WebGPU/ImageSlice.js +45 -44
  428. package/Rendering/WebGPU/IndexBuffer.js +166 -200
  429. package/Rendering/WebGPU/OpaquePass.js +37 -36
  430. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
  431. package/Rendering/WebGPU/Pipeline.js +37 -51
  432. package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
  433. package/Rendering/WebGPU/PolyDataMapper.js +50 -53
  434. package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
  435. package/Rendering/WebGPU/RenderEncoder.js +68 -88
  436. package/Rendering/WebGPU/RenderWindow.js +262 -376
  437. package/Rendering/WebGPU/Renderer.js +224 -208
  438. package/Rendering/WebGPU/Sampler.js +27 -21
  439. package/Rendering/WebGPU/ScalarBarActor.js +28 -19
  440. package/Rendering/WebGPU/ShaderCache.js +43 -41
  441. package/Rendering/WebGPU/ShaderDescription.js +52 -59
  442. package/Rendering/WebGPU/ShaderModule.js +26 -17
  443. package/Rendering/WebGPU/SimpleMapper.js +185 -121
  444. package/Rendering/WebGPU/SphereMapper.js +200 -130
  445. package/Rendering/WebGPU/StickMapper.js +289 -152
  446. package/Rendering/WebGPU/StorageBuffer.js +100 -115
  447. package/Rendering/WebGPU/Texture.js +79 -99
  448. package/Rendering/WebGPU/TextureManager.js +52 -54
  449. package/Rendering/WebGPU/TextureView.js +40 -43
  450. package/Rendering/WebGPU/Types.js +53 -70
  451. package/Rendering/WebGPU/UniformBuffer.js +158 -184
  452. package/Rendering/WebGPU/VertexInput.js +64 -90
  453. package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
  454. package/Rendering/WebGPU/Volume.js +52 -51
  455. package/Rendering/WebGPU/VolumePass.js +218 -239
  456. package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
  457. package/Rendering/WebGPU.js +1 -1
  458. package/Rendering/index.js +5 -5
  459. package/Widgets/Core/AbstractWidget/Constants.js +2 -2
  460. package/Widgets/Core/AbstractWidget.js +49 -58
  461. package/Widgets/Core/AbstractWidgetFactory.js +101 -122
  462. package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
  463. package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
  464. package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
  465. package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
  466. package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
  467. package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
  468. package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
  469. package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
  470. package/Widgets/Core/StateBuilder/originMixin.js +25 -32
  471. package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
  472. package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
  473. package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
  474. package/Widgets/Core/StateBuilder/textMixin.js +10 -6
  475. package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
  476. package/Widgets/Core/StateBuilder.js +120 -149
  477. package/Widgets/Core/WidgetManager/Constants.js +7 -7
  478. package/Widgets/Core/WidgetManager.js +249 -421
  479. package/Widgets/Core/WidgetState.js +48 -57
  480. package/Widgets/Core.js +5 -5
  481. package/Widgets/Manipulators/AbstractManipulator.js +20 -14
  482. package/Widgets/Manipulators/CPRManipulator.js +55 -71
  483. package/Widgets/Manipulators/LineManipulator.js +31 -28
  484. package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
  485. package/Widgets/Manipulators/PickerManipulator.js +65 -0
  486. package/Widgets/Manipulators/PlaneManipulator.js +26 -23
  487. package/Widgets/Manipulators/TrackballManipulator.js +39 -35
  488. package/Widgets/Manipulators.js +4 -2
  489. package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
  490. package/Widgets/Representations/CircleContextRepresentation.js +44 -38
  491. package/Widgets/Representations/ContextRepresentation.js +17 -14
  492. package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
  493. package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
  494. package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
  495. package/Widgets/Representations/GlyphRepresentation.js +107 -152
  496. package/Widgets/Representations/HandleRepresentation.js +17 -14
  497. package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
  498. package/Widgets/Representations/LineHandleRepresentation.js +44 -41
  499. package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
  500. package/Widgets/Representations/PolyLineRepresentation.js +60 -75
  501. package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
  502. package/Widgets/Representations/SphereContextRepresentation.js +19 -27
  503. package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
  504. package/Widgets/Representations/SplineContextRepresentation.js +46 -70
  505. package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
  506. package/Widgets/Representations/WidgetRepresentation.js +99 -134
  507. package/Widgets/Representations.js +13 -13
  508. package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
  509. package/Widgets/Widgets3D/AngleWidget.js +40 -38
  510. package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
  511. package/Widgets/Widgets3D/DistanceWidget.js +38 -36
  512. package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
  513. package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
  514. package/Widgets/Widgets3D/EllipseWidget.js +37 -26
  515. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
  516. package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
  517. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
  518. package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
  519. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
  520. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
  521. package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
  522. package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
  523. package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
  524. package/Widgets/Widgets3D/LabelWidget.js +31 -25
  525. package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
  526. package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
  527. package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
  528. package/Widgets/Widgets3D/LineWidget/state.js +2 -1
  529. package/Widgets/Widgets3D/LineWidget.js +39 -35
  530. package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
  531. package/Widgets/Widgets3D/PaintWidget.js +39 -37
  532. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
  533. package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
  534. package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
  535. package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
  536. package/Widgets/Widgets3D/RectangleWidget.js +37 -25
  537. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
  538. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +133 -209
  539. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  540. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +89 -116
  541. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
  542. package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
  543. package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
  544. package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
  545. package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
  546. package/Widgets/Widgets3D/SeedWidget.js +43 -0
  547. package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
  548. package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
  549. package/Widgets/Widgets3D/ShapeWidget.js +24 -27
  550. package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
  551. package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
  552. package/Widgets/Widgets3D/SphereWidget.js +34 -44
  553. package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
  554. package/Widgets/Widgets3D/SplineWidget.js +43 -39
  555. package/Widgets/Widgets3D.js +15 -15
  556. package/Widgets/index.js +4 -4
  557. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
  558. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  559. package/favicon.js +5 -6
  560. package/index.d.ts +4 -2
  561. package/index.js +4 -3
  562. package/macros.js +4 -1931
  563. package/macros2.js +1684 -0
  564. package/package.json +6 -6
  565. package/vtk.js +18 -31
@@ -1,10 +1,8 @@
1
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
1
  import { create } from 'xmlbuilder2';
4
2
  import { decompressSync } from 'fflate';
5
3
  import DataAccessHelper from '../Core/DataAccessHelper.js';
6
4
  import Base64 from '../../Common/Core/Base64.js';
7
- import macro from '../../macros.js';
5
+ import { m as macro } from '../../macros2.js';
8
6
  import vtkDataArray from '../../Common/Core/DataArray.js';
9
7
  import vtkStringArray from '../../Common/Core/StringArray.js';
10
8
  import BinaryHelper from '../Core/BinaryHelper.js';
@@ -13,31 +11,31 @@ import '../Core/DataAccessHelper/LiteHttpDataAccessHelper.js';
13
11
  // import 'vtk.js/Sources/IO/Core/DataAccessHelper/HttpDataAccessHelper'; // HTTP + zip
14
12
  // import 'vtk.js/Sources/IO/Core/DataAccessHelper/HtmlDataAccessHelper'; // html + base64 + zip
15
13
  // import 'vtk.js/Sources/IO/Core/DataAccessHelper/JSZipDataAccessHelper'; // zip
14
+
16
15
  // ----------------------------------------------------------------------------
17
16
  // Global methods
18
17
  // ----------------------------------------------------------------------------
19
18
 
20
19
  function findAllTags(node, tagName) {
21
- return _toConsumableArray(node.getElementsByTagName(tagName));
20
+ return [...node.getElementsByTagName(tagName)];
22
21
  }
23
22
  function findFirstTag(node, tagName) {
24
23
  return findAllTags(node, tagName)[0];
25
24
  }
26
-
27
25
  function parseXML(xmlStr) {
28
26
  // see xmlbuilder2 docs on the object format
29
27
  return create(xmlStr);
30
28
  }
31
-
32
29
  function extractAppendedData(buffer) {
33
30
  // search for appended data tag
34
- var prefixRegex = /^\s*<AppendedData\s+encoding="raw">\s*_/m;
35
- var suffixRegex = /\n\s*<\/AppendedData>/m;
31
+ const prefixRegex = /^\s*<AppendedData\s+encoding="raw">\s*_/m;
32
+ const suffixRegex = /\n\s*<\/AppendedData>/m;
36
33
  return BinaryHelper.extractBinary(buffer, prefixRegex, suffixRegex);
37
- } // ----------------------------------------------------------------------------
34
+ }
38
35
 
36
+ // ----------------------------------------------------------------------------
39
37
 
40
- var TYPED_ARRAY = {
38
+ const TYPED_ARRAY = {
41
39
  Int8: Int8Array,
42
40
  UInt8: Uint8Array,
43
41
  Int16: Int16Array,
@@ -50,9 +48,11 @@ var TYPED_ARRAY = {
50
48
  // Not supported with JavaScript will cause error in binary
51
49
  Float32: Float32Array,
52
50
  Float64: Float64Array
53
- }; // ----------------------------------------------------------------------------
51
+ };
52
+
53
+ // ----------------------------------------------------------------------------
54
54
 
55
- var TYPED_ARRAY_BYTES = {
55
+ const TYPED_ARRAY_BYTES = {
56
56
  Int8: 1,
57
57
  UInt8: 1,
58
58
  Int16: 2,
@@ -65,15 +65,16 @@ var TYPED_ARRAY_BYTES = {
65
65
  // Not supported with JavaScript will cause error in binary
66
66
  Float32: 4,
67
67
  Float64: 8
68
- }; // ----------------------------------------------------------------------------
68
+ };
69
+
70
+ // ----------------------------------------------------------------------------
69
71
 
70
72
  function integer64to32(array) {
71
- var maxIdx = array.length - 1; // Skip last
73
+ const maxIdx = array.length - 1; // Skip last
74
+ return array.filter((v, i) => i < maxIdx && i % 2 === 0);
75
+ }
72
76
 
73
- return array.filter(function (v, i) {
74
- return i < maxIdx && i % 2 === 0;
75
- });
76
- } // ----------------------------------------------------------------------------
77
+ // ----------------------------------------------------------------------------
77
78
 
78
79
  /**
79
80
  * Reads the data of a length-prefixed blob.
@@ -84,122 +85,108 @@ function integer64to32(array) {
84
85
  * @param {string} dataType
85
86
  * @param {string} headerType either UInt64 or UInt32
86
87
  */
87
-
88
-
89
88
  function readLengthPrefixedData(uint8, dataType, headerType) {
90
89
  if (!['UInt64', 'UInt32'].includes(headerType)) {
91
- throw new Error("Cannot handle a header type of ".concat(headerType));
90
+ throw new Error(`Cannot handle a header type of ${headerType}`);
92
91
  }
93
-
94
- var HeaderTypedArray = TYPED_ARRAY[headerType];
95
- var DataTypedArray = TYPED_ARRAY[dataType];
96
- var dataFallbackTo32 = false;
97
-
92
+ let HeaderTypedArray = TYPED_ARRAY[headerType];
93
+ let DataTypedArray = TYPED_ARRAY[dataType];
94
+ let dataFallbackTo32 = false;
98
95
  if (headerType === 'UInt64') {
99
96
  HeaderTypedArray = TYPED_ARRAY.UInt32;
100
97
  }
101
-
102
98
  if (/^U?Int64$/.test(dataType)) {
103
99
  dataFallbackTo32 = true;
104
100
  DataTypedArray = TYPED_ARRAY[dataType.replace('64', '32')];
105
101
  }
106
-
107
- var byteOffset = uint8.byteOffset;
108
- var dataWordSize = TYPED_ARRAY_BYTES[dataType];
109
- var headerWordSize = TYPED_ARRAY_BYTES[headerType]; // slice if offset is not word aligned
110
-
111
- var header;
112
-
102
+ const {
103
+ byteOffset
104
+ } = uint8;
105
+ const dataWordSize = TYPED_ARRAY_BYTES[dataType];
106
+ const headerWordSize = TYPED_ARRAY_BYTES[headerType];
107
+
108
+ // slice if offset is not word aligned
109
+ let header;
113
110
  if (byteOffset % headerWordSize === 0) {
114
111
  header = new HeaderTypedArray(uint8.buffer, byteOffset, 1);
115
112
  } else {
116
113
  header = new HeaderTypedArray(uint8.buffer.slice(byteOffset, byteOffset + headerWordSize));
117
114
  }
115
+ const dataByteLength = Number(header[0]);
118
116
 
119
- var dataByteLength = Number(header[0]); // read values
120
-
121
- var values;
122
- var arraySize = dataByteLength / dataWordSize;
123
-
117
+ // read values
118
+ let values;
119
+ let arraySize = dataByteLength / dataWordSize;
124
120
  if (dataFallbackTo32) {
125
121
  // We are reading int64 data with an int32 typed array.
126
122
  arraySize *= 2;
127
- } // slice if offset is not word aligned
128
-
129
-
130
- var dataOffset = byteOffset + headerWordSize;
123
+ }
131
124
 
125
+ // slice if offset is not word aligned
126
+ const dataOffset = byteOffset + headerWordSize;
132
127
  if (dataOffset % dataWordSize === 0) {
133
128
  values = new DataTypedArray(uint8.buffer, dataOffset, arraySize);
134
129
  } else {
135
130
  values = new DataTypedArray(uint8.buffer.slice(dataOffset, dataOffset + dataByteLength));
136
131
  }
137
-
138
132
  if (dataFallbackTo32) {
139
133
  // remove higher order 32 bits
140
134
  values = integer64to32(values);
141
135
  }
142
-
143
136
  return values;
144
- } // ----------------------------------------------------------------------------
137
+ }
145
138
 
139
+ // ----------------------------------------------------------------------------
146
140
 
147
141
  function readerHeader(uint8, headerType) {
148
142
  // We do not handle endianness or if more than 32 bits are needed to encode the data
149
143
  if (headerType === 'UInt64') {
150
- var _offset = 8;
151
-
152
- var _uint = new Uint32Array(uint8.buffer, 0, 6);
153
-
154
- var _nbBlocks = _uint[0];
155
- var _s = _uint[2];
156
- var _s2 = _uint[4];
157
- var _resultArray = [_offset, _nbBlocks, _s, _s2];
158
- _uint = new Uint32Array(uint8.buffer, 3 * 8, _nbBlocks * 2);
159
-
160
- for (var i = 0; i < _nbBlocks; i++) {
161
- _resultArray.push(_uint[i * 2]);
144
+ const offset = 8;
145
+ let uint32 = new Uint32Array(uint8.buffer, 0, 6);
146
+ const nbBlocks = uint32[0];
147
+ const s1 = uint32[2];
148
+ const s2 = uint32[4];
149
+ const resultArray = [offset, nbBlocks, s1, s2];
150
+ uint32 = new Uint32Array(uint8.buffer, 3 * 8, nbBlocks * 2);
151
+ for (let i = 0; i < nbBlocks; i++) {
152
+ resultArray.push(uint32[i * 2]);
162
153
  }
163
-
164
- return _resultArray;
165
- } // UInt32
166
-
167
-
168
- var uint32 = new Uint32Array(uint8.buffer, 0, 3);
169
- var offset = 4;
170
- var nbBlocks = uint32[0];
171
- var s1 = uint32[1];
172
- var s2 = uint32[2];
173
- var resultArray = [offset, nbBlocks, s1, s2];
154
+ return resultArray;
155
+ }
156
+ // UInt32
157
+ let uint32 = new Uint32Array(uint8.buffer, 0, 3);
158
+ const offset = 4;
159
+ const nbBlocks = uint32[0];
160
+ const s1 = uint32[1];
161
+ const s2 = uint32[2];
162
+ const resultArray = [offset, nbBlocks, s1, s2];
174
163
  uint32 = new Uint32Array(uint8.buffer, 3 * 4, nbBlocks);
175
-
176
- for (var _i = 0; _i < nbBlocks; _i++) {
177
- resultArray.push(uint32[_i]);
164
+ for (let i = 0; i < nbBlocks; i++) {
165
+ resultArray.push(uint32[i]);
178
166
  }
179
-
180
167
  return resultArray;
181
- } // ----------------------------------------------------------------------------
168
+ }
169
+
170
+ // ----------------------------------------------------------------------------
182
171
 
183
172
  /**
184
173
  * Given the return value of readerHeader, return header byte length.
185
174
  */
186
-
187
-
188
175
  function getHeaderByteLength(header, headerType) {
189
176
  // ignore the first number, which isn't actually part of the header.
190
- var _header = _slicedToArray(header, 1),
191
- headerWordSize = _header[0];
192
-
177
+ const [headerWordSize] = header;
193
178
  return (header.length - 1) * headerWordSize;
194
- } // ----------------------------------------------------------------------------
179
+ }
195
180
 
181
+ // ----------------------------------------------------------------------------
196
182
 
197
183
  function uncompressBlock(compressedUint8, output) {
198
- var uncompressedBlock = decompressSync(compressedUint8);
184
+ const uncompressedBlock = decompressSync(compressedUint8);
199
185
  output.uint8.set(uncompressedBlock, output.offset);
200
186
  output.offset += uncompressedBlock.length;
201
- } // ----------------------------------------------------------------------------
187
+ }
202
188
 
189
+ // ----------------------------------------------------------------------------
203
190
 
204
191
  function decompressZLib(bytes, headerType) {
205
192
  // ----------------------------------------------------------------------
@@ -210,13 +197,13 @@ function decompressZLib(bytes, headerType) {
210
197
  // [header] s2: uncompress size of the last blocks
211
198
  // [header] blockSize: size of the block in compressed space that represent to bloc to inflate in zlib. (This also give the offset to the next block)
212
199
  // ----------------------------------------------------------------------
213
- // Header reading: [offset, numBlocks, s1, s2]
214
- var header = readerHeader(bytes, headerType);
215
- var nbBlocks = header[1];
216
- var s1 = header[2];
217
- var s2 = header[3];
218
- var dataByteLength = 0;
219
200
 
201
+ // Header reading: [offset, numBlocks, s1, s2]
202
+ const header = readerHeader(bytes, headerType);
203
+ const nbBlocks = header[1];
204
+ const s1 = header[2];
205
+ const s2 = header[3];
206
+ let dataByteLength = 0;
220
207
  if (nbBlocks > 0) {
221
208
  // If the last block's size is labeled as 0, that means the last block
222
209
  // really has size header[2].
@@ -226,104 +213,98 @@ function decompressZLib(bytes, headerType) {
226
213
  dataByteLength = (nbBlocks - 1) * s1 + s2;
227
214
  }
228
215
  }
229
-
230
- var buffer = new ArrayBuffer(dataByteLength);
231
- var output = {
216
+ const buffer = new ArrayBuffer(dataByteLength);
217
+ const output = {
232
218
  offset: 0,
233
219
  uint8: new Uint8Array(buffer)
234
220
  };
235
- var offset = getHeaderByteLength(header); // Starting from end of the data header, find the zlib header, which starts with 0x78.
221
+ let offset = getHeaderByteLength(header);
222
+ // Starting from end of the data header, find the zlib header, which starts with 0x78.
236
223
  // This accounts for any padding between the header and the compressed data.
237
-
238
224
  while (offset < bytes.length && bytes[offset] !== 0x78) {
239
225
  offset++;
240
226
  }
241
-
242
- for (var i = 0; i < nbBlocks; i++) {
243
- var blockSize = header[4 + i];
244
- var compressedBlock = new Uint8Array(bytes.buffer, offset, blockSize);
227
+ for (let i = 0; i < nbBlocks; i++) {
228
+ const blockSize = header[4 + i];
229
+ const compressedBlock = new Uint8Array(bytes.buffer, offset, blockSize);
245
230
  uncompressBlock(compressedBlock, output);
246
231
  offset += blockSize;
247
232
  }
248
-
249
233
  return output.uint8;
250
- } // ----------------------------------------------------------------------------
234
+ }
251
235
 
236
+ // ----------------------------------------------------------------------------
252
237
 
253
238
  function processDataArray(size, dataArrayElem, compressor, byteOrder, headerType, binaryBuffer) {
254
- var dataType = dataArrayElem.getAttribute('type');
255
- var name = dataArrayElem.getAttribute('Name');
256
- var format = dataArrayElem.getAttribute('format'); // binary, ascii, appended
257
-
258
- var numberOfComponents = Number(dataArrayElem.getAttribute('NumberOfComponents') || '1');
259
- var values = null;
260
-
239
+ const dataType = dataArrayElem.getAttribute('type');
240
+ const name = dataArrayElem.getAttribute('Name');
241
+ const format = dataArrayElem.getAttribute('format'); // binary, ascii, appended
242
+ const numberOfComponents = Number(dataArrayElem.getAttribute('NumberOfComponents') || '1');
243
+ let values = null;
261
244
  if (format === 'ascii') {
262
245
  values = new TYPED_ARRAY[dataType](size * numberOfComponents);
263
- var offset = 0;
264
- dataArrayElem.firstChild.nodeValue.split(/[\\t \\n]+/).forEach(function (token) {
246
+ let offset = 0;
247
+ dataArrayElem.firstChild.nodeValue.split(/[\\t \\n]+/).forEach(token => {
265
248
  if (token.trim().length) {
266
249
  values[offset++] = Number(token);
267
250
  }
268
251
  });
269
252
  } else if (format === 'binary') {
270
- var uint8 = new Uint8Array(Base64.toArrayBuffer(dataArrayElem.firstChild.nodeValue.trim()));
271
-
253
+ const uint8 = new Uint8Array(Base64.toArrayBuffer(dataArrayElem.firstChild.nodeValue.trim()));
272
254
  if (compressor === 'vtkZLibDataCompressor') {
273
- var data = decompressZLib(uint8, headerType);
274
- values = new TYPED_ARRAY[dataType](data.buffer); // Handle (u)int64 hoping for no overflow...
255
+ const data = decompressZLib(uint8, headerType);
256
+ values = new TYPED_ARRAY[dataType](data.buffer);
275
257
 
258
+ // Handle (u)int64 hoping for no overflow...
276
259
  if (/^U?Int64$/.test(dataType)) {
277
260
  values = integer64to32(values);
278
261
  }
279
262
  } else {
280
- values = new TYPED_ARRAY[dataType](uint8.buffer, TYPED_ARRAY_BYTES[headerType]); // Handle (u)int64 hoping no overflow...
263
+ values = new TYPED_ARRAY[dataType](uint8.buffer, TYPED_ARRAY_BYTES[headerType]);
281
264
 
265
+ // Handle (u)int64 hoping no overflow...
282
266
  if (dataType.indexOf('Int64') !== -1) {
283
267
  values = integer64to32(values);
284
268
  }
285
269
  }
286
270
  } else if (format === 'appended') {
287
- var _offset2 = Number(dataArrayElem.getAttribute('offset'));
288
-
289
- values = readLengthPrefixedData(new Uint8Array(binaryBuffer, _offset2), dataType, headerType);
271
+ const offset = Number(dataArrayElem.getAttribute('offset'));
272
+ values = readLengthPrefixedData(new Uint8Array(binaryBuffer, offset), dataType, headerType);
290
273
  } else {
291
274
  console.error('Format not supported', format);
292
275
  }
293
-
294
276
  return {
295
- name: name,
296
- values: values,
297
- numberOfComponents: numberOfComponents
277
+ name,
278
+ values,
279
+ numberOfComponents
298
280
  };
299
- } // ----------------------------------------------------------------------------
281
+ }
300
282
 
283
+ // ----------------------------------------------------------------------------
301
284
 
302
285
  function decodeStringArrayFromBytes(bytes) {
303
- var decoder = new TextDecoder();
304
- var decoded = decoder.decode(bytes); // strings are null-terminated
286
+ const decoder = new TextDecoder();
287
+ const decoded = decoder.decode(bytes);
305
288
 
289
+ // strings are null-terminated
306
290
  return decoded.split('\x00').slice(0, -1);
307
- } // ----------------------------------------------------------------------------
291
+ }
308
292
 
293
+ // ----------------------------------------------------------------------------
309
294
 
310
295
  function processStringArray(stringArrayElem, compressor, byteOrder, headerType, binaryBuffer) {
311
- var name = stringArrayElem.getAttribute('Name');
312
- var format = stringArrayElem.getAttribute('format'); // binary, ascii, appended
313
-
314
- var numberOfComponents = Number(stringArrayElem.getAttribute('NumberOfComponents') || '1');
315
- var numberOfTuples = Number(stringArrayElem.getAttribute('NumberOfTuples') || '1');
316
- var nbStrings = numberOfTuples * numberOfComponents;
317
- var strings = [];
318
-
296
+ const name = stringArrayElem.getAttribute('Name');
297
+ const format = stringArrayElem.getAttribute('format'); // binary, ascii, appended
298
+ const numberOfComponents = Number(stringArrayElem.getAttribute('NumberOfComponents') || '1');
299
+ const numberOfTuples = Number(stringArrayElem.getAttribute('NumberOfTuples') || '1');
300
+ const nbStrings = numberOfTuples * numberOfComponents;
301
+ const strings = [];
319
302
  if (format === 'ascii') {
320
- var tokens = stringArrayElem.firstChild.nodeValue.trim().split(/\s+/);
321
- var tokIdx = 0;
322
- var strChars = [];
323
-
303
+ const tokens = stringArrayElem.firstChild.nodeValue.trim().split(/\s+/);
304
+ let tokIdx = 0;
305
+ const strChars = [];
324
306
  while (strings.length < nbStrings) {
325
- var token = Number(tokens[tokIdx++]);
326
-
307
+ const token = Number(tokens[tokIdx++]);
327
308
  if (token === 0) {
328
309
  strings.push(strChars.join(''));
329
310
  strChars.length = 0;
@@ -332,214 +313,197 @@ function processStringArray(stringArrayElem, compressor, byteOrder, headerType,
332
313
  }
333
314
  }
334
315
  } else if (format === 'binary') {
335
- var uint8 = new Uint8Array(Base64.toArrayBuffer(stringArrayElem.firstChild.nodeValue.trim()));
336
-
316
+ const uint8 = new Uint8Array(Base64.toArrayBuffer(stringArrayElem.firstChild.nodeValue.trim()));
337
317
  if (compressor === 'vtkZLibDataCompressor') {
338
- var decompressed = decompressZLib(uint8, headerType);
339
- strings.push.apply(strings, _toConsumableArray(decodeStringArrayFromBytes(decompressed)));
318
+ const decompressed = decompressZLib(uint8, headerType);
319
+ strings.push(...decodeStringArrayFromBytes(decompressed));
340
320
  } else {
341
- var strData = readLengthPrefixedData(uint8, 'UInt8', headerType);
342
- strings.push.apply(strings, _toConsumableArray(decodeStringArrayFromBytes(strData)));
321
+ const strData = readLengthPrefixedData(uint8, 'UInt8', headerType);
322
+ strings.push(...decodeStringArrayFromBytes(strData));
343
323
  }
344
324
  } else if (format === 'appended') {
345
- var offset = Number(stringArrayElem.getAttribute('offset'));
346
- var values = readLengthPrefixedData(new Uint8Array(binaryBuffer, offset), 'UInt8', headerType);
347
- strings.push.apply(strings, _toConsumableArray(decodeStringArrayFromBytes(values)));
325
+ const offset = Number(stringArrayElem.getAttribute('offset'));
326
+ const values = readLengthPrefixedData(new Uint8Array(binaryBuffer, offset), 'UInt8', headerType);
327
+ strings.push(...decodeStringArrayFromBytes(values));
348
328
  } else {
349
- macro.vtkErrorMacro("Format not supported: ".concat(format));
329
+ macro.vtkErrorMacro(`Format not supported: ${format}`);
350
330
  }
351
-
352
331
  return {
353
- name: name,
332
+ name,
354
333
  values: strings,
355
- numberOfComponents: numberOfComponents
334
+ numberOfComponents
356
335
  };
357
- } // ----------------------------------------------------------------------------
336
+ }
358
337
 
338
+ // ----------------------------------------------------------------------------
359
339
 
360
340
  function processCells(size, containerElem, compressor, byteOrder, headerType, binaryBuffer) {
361
- var arrayElems = {};
362
- var dataArrayElems = containerElem.getElementsByTagName('DataArray');
363
-
364
- for (var elIdx = 0; elIdx < dataArrayElems.length; elIdx++) {
365
- var el = dataArrayElems[elIdx];
341
+ const arrayElems = {};
342
+ const dataArrayElems = containerElem.getElementsByTagName('DataArray');
343
+ for (let elIdx = 0; elIdx < dataArrayElems.length; elIdx++) {
344
+ const el = dataArrayElems[elIdx];
366
345
  arrayElems[el.getAttribute('Name')] = el;
367
346
  }
368
-
369
- var offsets = processDataArray(size, arrayElems.offsets, compressor, byteOrder, headerType, binaryBuffer).values;
370
- var connectivitySize = offsets[offsets.length - 1];
371
- var connectivity = processDataArray(connectivitySize, arrayElems.connectivity, compressor, byteOrder, headerType, binaryBuffer).values;
372
- var values = new Uint32Array(size + connectivitySize);
373
- var writeOffset = 0;
374
- var previousOffset = 0;
375
- offsets.forEach(function (v) {
376
- var cellSize = v - previousOffset;
347
+ const offsets = processDataArray(size, arrayElems.offsets, compressor, byteOrder, headerType, binaryBuffer).values;
348
+ const connectivitySize = offsets[offsets.length - 1];
349
+ const connectivity = processDataArray(connectivitySize, arrayElems.connectivity, compressor, byteOrder, headerType, binaryBuffer).values;
350
+ const values = new Uint32Array(size + connectivitySize);
351
+ let writeOffset = 0;
352
+ let previousOffset = 0;
353
+ offsets.forEach(v => {
354
+ const cellSize = v - previousOffset;
377
355
  values[writeOffset++] = cellSize;
378
-
379
- for (var i = 0; i < cellSize; i++) {
356
+ for (let i = 0; i < cellSize; i++) {
380
357
  values[writeOffset++] = connectivity[previousOffset + i];
381
- } // save previous offset
382
-
358
+ }
383
359
 
360
+ // save previous offset
384
361
  previousOffset = v;
385
362
  });
386
363
  return values;
387
- } // ----------------------------------------------------------------------------
364
+ }
388
365
 
366
+ // ----------------------------------------------------------------------------
389
367
 
390
368
  function processFieldData(size, fieldElem, fieldContainer, compressor, byteOrder, headerType, binaryBuffer) {
391
369
  if (fieldElem) {
392
- var attributes = ['Scalars', 'Vectors', 'Normals', 'Tensors', 'TCoords'];
393
- var nameBinding = {};
394
- attributes.forEach(function (attrName) {
395
- var arrayName = fieldElem.getAttribute(attrName);
396
-
370
+ const attributes = ['Scalars', 'Vectors', 'Normals', 'Tensors', 'TCoords'];
371
+ const nameBinding = {};
372
+ attributes.forEach(attrName => {
373
+ const arrayName = fieldElem.getAttribute(attrName);
397
374
  if (arrayName) {
398
- nameBinding[arrayName] = fieldContainer["set".concat(attrName)];
375
+ nameBinding[arrayName] = fieldContainer[`set${attrName}`];
399
376
  }
400
377
  });
401
- var dataArrayElems = fieldElem.getElementsByTagName('DataArray');
402
- var nbArrays = dataArrayElems.length;
403
-
404
- for (var idx = 0; idx < nbArrays; idx++) {
405
- var array = dataArrayElems[idx];
406
- var dataArray = vtkDataArray.newInstance(processDataArray(size, array, compressor, byteOrder, headerType, binaryBuffer));
407
- var name = dataArray.getName();
378
+ const dataArrayElems = fieldElem.getElementsByTagName('DataArray');
379
+ const nbArrays = dataArrayElems.length;
380
+ for (let idx = 0; idx < nbArrays; idx++) {
381
+ const array = dataArrayElems[idx];
382
+ const dataArray = vtkDataArray.newInstance(processDataArray(size, array, compressor, byteOrder, headerType, binaryBuffer));
383
+ const name = dataArray.getName();
408
384
  (nameBinding[name] || fieldContainer.addArray)(dataArray);
409
385
  }
410
386
  }
411
- } // ----------------------------------------------------------------------------
412
-
387
+ }
413
388
 
389
+ // ----------------------------------------------------------------------------
414
390
  function handleFieldDataArrays(fieldDataElem, compressor, byteOrder, headerType, binaryBuffer) {
415
- var dataArrays = _toConsumableArray(fieldDataElem.getElementsByTagName('DataArray')).map(function (daElem) {
416
- return vtkDataArray.newInstance(processDataArray(Number(daElem.getAttribute('NumberOfTuples')), daElem, compressor, byteOrder, headerType, binaryBuffer));
417
- });
418
-
419
- var stringArrays = _toConsumableArray(fieldDataElem.getElementsByTagName('Array')).filter(function (elem) {
420
- return elem.getAttribute('type') === 'String';
421
- }).map(function (arrElem) {
422
- var sa = vtkStringArray.newInstance(processStringArray(arrElem, compressor, byteOrder, headerType, binaryBuffer));
391
+ const dataArrays = [...fieldDataElem.getElementsByTagName('DataArray')].map(daElem => vtkDataArray.newInstance(processDataArray(Number(daElem.getAttribute('NumberOfTuples')), daElem, compressor, byteOrder, headerType, binaryBuffer)));
392
+ const stringArrays = [...fieldDataElem.getElementsByTagName('Array')].filter(elem => elem.getAttribute('type') === 'String').map(arrElem => {
393
+ const sa = vtkStringArray.newInstance(processStringArray(arrElem, compressor, byteOrder, headerType, binaryBuffer));
423
394
  return sa;
424
395
  });
396
+ return [...dataArrays, ...stringArrays];
397
+ }
425
398
 
426
- return [].concat(_toConsumableArray(dataArrays), _toConsumableArray(stringArrays));
427
- } // ----------------------------------------------------------------------------
399
+ // ----------------------------------------------------------------------------
428
400
  // vtkXMLReader methods
429
401
  // ----------------------------------------------------------------------------
430
402
 
431
-
432
403
  function vtkXMLReader(publicAPI, model) {
433
404
  // Set our className
434
- model.classHierarchy.push('vtkXMLReader'); // Create default dataAccessHelper if not available
405
+ model.classHierarchy.push('vtkXMLReader');
435
406
 
407
+ // Create default dataAccessHelper if not available
436
408
  if (!model.dataAccessHelper) {
437
409
  model.dataAccessHelper = DataAccessHelper.get('http');
438
- } // Internal method to fetch Array
439
-
410
+ }
440
411
 
412
+ // Internal method to fetch Array
441
413
  function fetchData(url) {
442
- var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
414
+ let option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
443
415
  return model.dataAccessHelper.fetchBinary(url, option);
444
- } // Set DataSet url
445
-
416
+ }
446
417
 
418
+ // Set DataSet url
447
419
  publicAPI.setUrl = function (url) {
448
- var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
449
- model.url = url; // Remove the file in the URL
420
+ let option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
421
+ model.url = url;
450
422
 
451
- var path = url.split('/');
423
+ // Remove the file in the URL
424
+ const path = url.split('/');
452
425
  path.pop();
453
- model.baseURL = path.join('/'); // Fetch metadata
426
+ model.baseURL = path.join('/');
454
427
 
428
+ // Fetch metadata
455
429
  return publicAPI.loadData(option);
456
- }; // Fetch the actual data arrays
457
-
430
+ };
458
431
 
432
+ // Fetch the actual data arrays
459
433
  publicAPI.loadData = function () {
460
- var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
434
+ let option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
461
435
  return fetchData(model.url, option).then(publicAPI.parseAsArrayBuffer);
462
436
  };
463
-
464
- publicAPI.parseAsArrayBuffer = function (arrayBuffer) {
437
+ publicAPI.parseAsArrayBuffer = arrayBuffer => {
465
438
  if (!arrayBuffer) {
466
439
  return false;
467
440
  }
468
-
469
441
  if (arrayBuffer !== model.rawDataBuffer) {
470
442
  publicAPI.modified();
471
443
  } else {
472
444
  return true;
473
445
  }
474
-
475
- var _extractAppendedData = extractAppendedData(arrayBuffer),
476
- content = _extractAppendedData.text,
477
- binaryBuffer = _extractAppendedData.binaryBuffer;
478
-
446
+ const {
447
+ text: content,
448
+ binaryBuffer
449
+ } = extractAppendedData(arrayBuffer);
479
450
  model.rawDataBuffer = arrayBuffer;
480
- model.binaryBuffer = binaryBuffer; // Parse data here...
481
-
482
- var doc = parseXML(content);
483
- var root = doc.root();
484
- var rootElem = root.node;
485
- var type = rootElem.getAttribute('type');
486
- var compressor = rootElem.getAttribute('compressor');
487
- var byteOrder = rootElem.getAttribute('byte_order'); // default to UInt32. I think version 0.1 vtp/vti files default to UInt32.
488
-
489
- var headerType = rootElem.getAttribute('header_type') || 'UInt32';
490
-
451
+ model.binaryBuffer = binaryBuffer;
452
+
453
+ // Parse data here...
454
+ const doc = parseXML(content);
455
+ const root = doc.root();
456
+ const rootElem = root.node;
457
+ const type = rootElem.getAttribute('type');
458
+ const compressor = rootElem.getAttribute('compressor');
459
+ const byteOrder = rootElem.getAttribute('byte_order');
460
+ // default to UInt32. I think version 0.1 vtp/vti files default to UInt32.
461
+ const headerType = rootElem.getAttribute('header_type') || 'UInt32';
491
462
  if (compressor && compressor !== 'vtkZLibDataCompressor') {
492
463
  console.error('Invalid compressor', compressor);
493
464
  return false;
494
465
  }
495
-
496
466
  if (byteOrder && byteOrder !== 'LittleEndian') {
497
467
  console.error('Only LittleEndian encoding is supported');
498
468
  return false;
499
469
  }
500
-
501
470
  if (type !== model.dataType) {
502
471
  console.error('Invalid data type', type, 'expecting', model.dataType);
503
472
  return false;
504
- } // appended format
505
-
473
+ }
506
474
 
475
+ // appended format
507
476
  if (findFirstTag(rootElem, 'AppendedData')) {
508
- var appendedDataElem = findFirstTag(rootElem, 'AppendedData');
509
- var encoding = appendedDataElem.getAttribute('encoding');
510
- var arrays = root.filter(function (xmlNode) {
511
- var node = xmlNode.node;
477
+ const appendedDataElem = findFirstTag(rootElem, 'AppendedData');
478
+ const encoding = appendedDataElem.getAttribute('encoding');
479
+ const arrays = root.filter(xmlNode => {
480
+ const {
481
+ node
482
+ } = xmlNode;
512
483
  return node.nodeType === Node.ELEMENT_NODE && node.getAttribute('format') === 'appended' && node.hasAttribute('offset');
513
- }, false, true).map(function (xmlNode) {
514
- return {
515
- node: xmlNode.node,
516
- offset: Number(xmlNode.node.getAttribute('offset'))
517
- };
518
- }); // sort dataElems by increasing offset
519
-
520
- arrays.sort(function (a, b) {
521
- return a.offset - b.offset;
522
- });
523
- var appendedBuffer = model.binaryBuffer;
524
-
484
+ }, false, true).map(xmlNode => ({
485
+ node: xmlNode.node,
486
+ offset: Number(xmlNode.node.getAttribute('offset'))
487
+ }));
488
+
489
+ // sort dataElems by increasing offset
490
+ arrays.sort((a, b) => a.offset - b.offset);
491
+ let appendedBuffer = model.binaryBuffer;
525
492
  if (encoding === 'base64') {
526
493
  // substr(1) is to remove the '_' prefix
527
494
  appendedBuffer = appendedDataElem.textContent.trim().substr(1);
528
- } // get data array chunks
529
-
530
-
531
- var dataArrays = [];
532
-
533
- for (var i = 0; i < arrays.length; ++i) {
534
- var offset = arrays[i].offset;
535
- var nextOffset = 0;
495
+ }
536
496
 
497
+ // get data array chunks
498
+ const dataArrays = [];
499
+ for (let i = 0; i < arrays.length; ++i) {
500
+ const offset = arrays[i].offset;
501
+ let nextOffset = 0;
537
502
  if (i === arrays.length - 1) {
538
503
  nextOffset = appendedBuffer.length || appendedBuffer.byteLength;
539
504
  } else {
540
505
  nextOffset = arrays[i + 1].offset;
541
506
  }
542
-
543
507
  if (encoding === 'base64') {
544
508
  dataArrays.push(new Uint8Array(Base64.toArrayBuffer(appendedBuffer.substring(offset, nextOffset))));
545
509
  } else {
@@ -548,92 +512,86 @@ function vtkXMLReader(publicAPI, model) {
548
512
  dataArrays.push(new Uint8Array(appendedBuffer.slice(offset, nextOffset)));
549
513
  }
550
514
  }
551
-
552
515
  if (compressor === 'vtkZLibDataCompressor') {
553
- for (var arrayidx = 0; arrayidx < dataArrays.length; ++arrayidx) {
554
- var dataArray = dataArrays[arrayidx];
555
- var uncompressed = decompressZLib(dataArray, headerType);
556
- var data = new Uint8Array(uncompressed.length + TYPED_ARRAY_BYTES[headerType]); // set length header
516
+ for (let arrayidx = 0; arrayidx < dataArrays.length; ++arrayidx) {
517
+ const dataArray = dataArrays[arrayidx];
518
+ const uncompressed = decompressZLib(dataArray, headerType);
519
+ const data = new Uint8Array(uncompressed.length + TYPED_ARRAY_BYTES[headerType]);
520
+ // set length header
557
521
  // TODO this does not work for lengths that are greater than the max Uint32 value.
558
-
559
522
  new TYPED_ARRAY[headerType](data.buffer, 0, 1)[0] = uncompressed.length;
560
523
  data.set(uncompressed, TYPED_ARRAY_BYTES[headerType]);
561
524
  dataArrays[arrayidx] = data;
562
525
  }
563
526
  }
564
-
565
- var bufferLength = dataArrays.reduce(function (acc, arr) {
566
- return acc + arr.length;
567
- }, 0);
568
- var buffer = new ArrayBuffer(bufferLength);
569
- var view = new Uint8Array(buffer);
570
-
571
- for (var _i2 = 0, _offset3 = 0; _i2 < dataArrays.length; ++_i2) {
527
+ const bufferLength = dataArrays.reduce((acc, arr) => acc + arr.length, 0);
528
+ const buffer = new ArrayBuffer(bufferLength);
529
+ const view = new Uint8Array(buffer);
530
+ for (let i = 0, offset = 0; i < dataArrays.length; ++i) {
572
531
  // set correct offsets
573
- arrays[_i2].node.setAttribute('offset', _offset3); // set final buffer data
574
-
575
-
576
- view.set(dataArrays[_i2], _offset3);
577
- _offset3 += dataArrays[_i2].length;
532
+ arrays[i].node.setAttribute('offset', offset);
533
+ // set final buffer data
534
+ view.set(dataArrays[i], offset);
535
+ offset += dataArrays[i].length;
578
536
  }
579
-
580
537
  model.binaryBuffer = buffer;
581
-
582
538
  if (!model.binaryBuffer) {
583
539
  console.error('Processing appended data format: requires binaryBuffer to parse');
584
540
  return false;
585
541
  }
586
542
  }
587
-
588
543
  publicAPI.parseXML(rootElem, type, compressor, byteOrder, headerType);
589
- var datasetElem = rootElem.getElementsByTagName(type)[0];
590
- var fieldDataElem = datasetElem.getElementsByTagName('FieldData')[0];
591
-
544
+ const datasetElem = rootElem.getElementsByTagName(type)[0];
545
+ const fieldDataElem = datasetElem.getElementsByTagName('FieldData')[0];
592
546
  if (fieldDataElem) {
593
- var fieldDataArrays = handleFieldDataArrays(fieldDataElem, compressor, byteOrder, headerType, model.binaryBuffer);
594
-
595
- for (var _i3 = 0; _i3 < model.output.length; _i3++) {
596
- var fieldData = model.output[_i3].getFieldData();
597
-
598
- for (var j = 0; j < fieldDataArrays.length; j++) {
547
+ const fieldDataArrays = handleFieldDataArrays(fieldDataElem, compressor, byteOrder, headerType, model.binaryBuffer);
548
+ for (let i = 0; i < model.output.length; i++) {
549
+ const fieldData = model.output[i].getFieldData();
550
+ for (let j = 0; j < fieldDataArrays.length; j++) {
599
551
  fieldData.addArray(fieldDataArrays[j]);
600
552
  }
601
553
  }
602
554
  }
603
-
604
555
  return true;
605
556
  };
606
-
607
- publicAPI.requestData = function (inData, outData) {
557
+ publicAPI.requestData = (inData, outData) => {
608
558
  publicAPI.parseAsArrayBuffer(model.rawDataBuffer);
609
559
  };
610
- } // ----------------------------------------------------------------------------
560
+ }
561
+
562
+ // ----------------------------------------------------------------------------
611
563
  // Object factory
612
564
  // ----------------------------------------------------------------------------
613
565
 
614
-
615
- var DEFAULT_VALUES = {// baseURL: null,
566
+ const DEFAULT_VALUES = {
567
+ // baseURL: null,
616
568
  // dataAccessHelper: null,
617
569
  // url: null,
618
- }; // ----------------------------------------------------------------------------
570
+ };
571
+
572
+ // ----------------------------------------------------------------------------
619
573
 
620
574
  function extend(publicAPI, model) {
621
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
622
- Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
575
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
576
+ Object.assign(model, DEFAULT_VALUES, initialValues);
623
577
 
578
+ // Build VTK API
624
579
  macro.obj(publicAPI, model);
625
580
  macro.get(publicAPI, model, ['url', 'baseURL']);
626
581
  macro.setGet(publicAPI, model, ['dataAccessHelper']);
627
- macro.algo(publicAPI, model, 0, 1); // vtkXMLReader methods
582
+ macro.algo(publicAPI, model, 0, 1);
628
583
 
584
+ // vtkXMLReader methods
629
585
  vtkXMLReader(publicAPI, model);
630
- } // ----------------------------------------------------------------------------
586
+ }
587
+
588
+ // ----------------------------------------------------------------------------
631
589
 
632
590
  var vtkXMLReader$1 = {
633
- extend: extend,
634
- processDataArray: processDataArray,
635
- processFieldData: processFieldData,
636
- processCells: processCells
591
+ extend,
592
+ processDataArray,
593
+ processFieldData,
594
+ processCells
637
595
  };
638
596
 
639
597
  export { vtkXMLReader$1 as default, extend, findAllTags, findFirstTag };