@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,4 +1,4 @@
1
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
2
2
  import vtkCellArray from '../../Common/Core/CellArray.js';
3
3
  import vtkDataArray from '../../Common/Core/DataArray.js';
4
4
  import { l as normalize, j as cross, n as norm, d as dot, e as distance2BetweenPoints } from '../../Common/Core/Math/index.js';
@@ -8,482 +8,414 @@ import { DesiredOutputPrecision } from '../../Common/DataModel/DataSetAttributes
8
8
  import { VtkDataTypes } from '../../Common/Core/DataArray/Constants.js';
9
9
  import Constants from './TubeFilter/Constants.js';
10
10
 
11
- var VaryRadius = Constants.VaryRadius,
12
- GenerateTCoords = Constants.GenerateTCoords;
13
- var vtkDebugMacro = macro.vtkDebugMacro,
14
- vtkErrorMacro = macro.vtkErrorMacro,
15
- vtkWarningMacro = macro.vtkWarningMacro; // ----------------------------------------------------------------------------
11
+ const {
12
+ VaryRadius,
13
+ GenerateTCoords
14
+ } = Constants;
15
+ const {
16
+ vtkDebugMacro,
17
+ vtkErrorMacro,
18
+ vtkWarningMacro
19
+ } = macro;
20
+
21
+ // ----------------------------------------------------------------------------
16
22
  // vtkTubeFilter methods
17
23
  // ----------------------------------------------------------------------------
18
24
 
19
25
  function vtkTubeFilter(publicAPI, model) {
20
26
  // Set our classname
21
27
  model.classHierarchy.push('vtkTubeFilter');
22
-
23
28
  function computeOffset(offset, npts) {
24
- var newOffset = offset;
25
-
29
+ let newOffset = offset;
26
30
  if (model.sidesShareVertices) {
27
31
  newOffset += model.numberOfSides * npts;
28
32
  } else {
29
33
  // points are duplicated
30
34
  newOffset += 2 * model.numberOfSides * npts;
31
35
  }
32
-
33
36
  if (model.capping) {
34
37
  // cap points are duplicated
35
38
  newOffset += 2 * model.numberOfSides;
36
39
  }
37
-
38
40
  return newOffset;
39
41
  }
40
-
41
42
  function findNextValidSegment(points, pointIds, start) {
42
- var ptId = pointIds[start];
43
- var ps = points.slice(3 * ptId, 3 * (ptId + 1));
44
- var end = start + 1;
45
-
43
+ const ptId = pointIds[start];
44
+ const ps = points.slice(3 * ptId, 3 * (ptId + 1));
45
+ let end = start + 1;
46
46
  while (end < pointIds.length) {
47
- var endPtId = pointIds[end];
48
- var pe = points.slice(3 * endPtId, 3 * (endPtId + 1));
49
-
47
+ const endPtId = pointIds[end];
48
+ const pe = points.slice(3 * endPtId, 3 * (endPtId + 1));
50
49
  if (ps !== pe) {
51
50
  return end - 1;
52
51
  }
53
-
54
52
  ++end;
55
53
  }
56
-
57
54
  return pointIds.length;
58
55
  }
59
-
60
56
  function generateSlidingNormals(pts, lines, normals) {
61
- var firstNormal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
62
- var normal = [0.0, 0.0, 1.0];
63
- var lineData = lines; // lid = 0;
64
-
65
- var npts = lineData[0];
66
-
67
- for (var i = 0; i < lineData.length; i += npts + 1) {
57
+ let firstNormal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
58
+ let normal = [0.0, 0.0, 1.0];
59
+ const lineData = lines;
60
+ // lid = 0;
61
+ let npts = lineData[0];
62
+ for (let i = 0; i < lineData.length; i += npts + 1) {
68
63
  npts = lineData[i];
69
-
70
64
  if (npts === 1) {
71
65
  // return arbitrary
72
66
  normals.setTuple(lineData[i + 1], normal);
73
67
  } else if (npts > 1) {
74
- var sNextId = 0;
75
- var sPrev = [0, 0, 0];
76
- var sNext = [0, 0, 0];
77
- var linePts = lineData.slice(i + 1, i + 1 + npts);
68
+ let sNextId = 0;
69
+ let sPrev = [0, 0, 0];
70
+ const sNext = [0, 0, 0];
71
+ const linePts = lineData.slice(i + 1, i + 1 + npts);
78
72
  sNextId = findNextValidSegment(pts, linePts, 0);
79
-
80
73
  if (sNextId !== npts) {
81
- (function () {
82
- // at least one valid segment
83
- var pt1Id = linePts[sNextId];
84
- var pt1 = pts.slice(3 * pt1Id, 3 * (pt1Id + 1));
85
- var pt2Id = linePts[sNextId + 1];
86
- var pt2 = pts.slice(3 * pt2Id, 3 * (pt2Id + 1));
87
- sPrev = pt2.map(function (elem, idx) {
88
- return elem - pt1[idx];
89
- });
90
- normalize(sPrev); // compute first normal
91
-
92
- if (firstNormal) {
93
- normal = firstNormal;
94
- } else {
95
- // find the next valid, non-parallel segment
96
- while (++sNextId < npts) {
97
- sNextId = findNextValidSegment(pts, linePts, sNextId);
98
-
99
- if (sNextId !== npts) {
100
- pt1Id = linePts[sNextId];
101
- pt1 = pts.slice(3 * pt1Id, 3 * (pt1Id + 1));
102
- pt2Id = linePts[sNextId + 1];
103
- pt2 = pts.slice(3 * pt2Id, 3 * (pt2Id + 1));
104
-
105
- for (var j = 0; j < 3; ++j) {
106
- sNext[j] = pt2[j] - pt1[j];
107
- }
108
-
109
- normalize(sNext); // now the starting normal should simply be the cross product.
110
- // In the following if statement, we check for the case where
111
- // the two segments are parallel, in which case, continue
112
- // searching for the next valid segment
113
-
114
- var n = [0.0, 0.0, 0.0];
115
- cross(sPrev, sNext, n);
116
-
117
- if (norm(n) > 1.0e-3) {
118
- normal = n;
119
- sPrev = sNext;
120
- break;
121
- }
74
+ // at least one valid segment
75
+ let pt1Id = linePts[sNextId];
76
+ let pt1 = pts.slice(3 * pt1Id, 3 * (pt1Id + 1));
77
+ let pt2Id = linePts[sNextId + 1];
78
+ let pt2 = pts.slice(3 * pt2Id, 3 * (pt2Id + 1));
79
+ sPrev = pt2.map((elem, idx) => elem - pt1[idx]);
80
+ normalize(sPrev);
81
+
82
+ // compute first normal
83
+ if (firstNormal) {
84
+ normal = firstNormal;
85
+ } else {
86
+ // find the next valid, non-parallel segment
87
+ while (++sNextId < npts) {
88
+ sNextId = findNextValidSegment(pts, linePts, sNextId);
89
+ if (sNextId !== npts) {
90
+ pt1Id = linePts[sNextId];
91
+ pt1 = pts.slice(3 * pt1Id, 3 * (pt1Id + 1));
92
+ pt2Id = linePts[sNextId + 1];
93
+ pt2 = pts.slice(3 * pt2Id, 3 * (pt2Id + 1));
94
+ for (let j = 0; j < 3; ++j) {
95
+ sNext[j] = pt2[j] - pt1[j];
122
96
  }
123
- }
124
-
125
- if (sNextId >= npts) {
126
- // only one valid segment
127
- // a little trick to find orthogonal normal
128
- for (var _j = 0; _j < 3; ++_j) {
129
- if (sPrev[_j] !== 0.0) {
130
- normal[(_j + 2) % 3] = 0.0;
131
- normal[(_j + 1) % 3] = 1.0;
132
- normal[_j] = -sPrev[(_j + 1) % 3] / sPrev[_j];
133
- break;
134
- }
97
+ normalize(sNext);
98
+
99
+ // now the starting normal should simply be the cross product.
100
+ // In the following if statement, we check for the case where
101
+ // the two segments are parallel, in which case, continue
102
+ // searching for the next valid segment
103
+ const n = [0.0, 0.0, 0.0];
104
+ cross(sPrev, sNext, n);
105
+ if (norm(n) > 1.0e-3) {
106
+ normal = n;
107
+ sPrev = sNext;
108
+ break;
135
109
  }
136
110
  }
137
111
  }
138
-
139
- normalize(normal); // compute remaining normals
140
-
141
- var lastNormalId = 0;
142
-
143
- while (++sNextId < npts) {
144
- sNextId = findNextValidSegment(pts, linePts, sNextId);
145
-
146
- if (sNextId === npts) {
147
- break;
148
- }
149
-
150
- pt1Id = linePts[sNextId];
151
- pt1 = pts.slice(3 * pt1Id, 3 * (pt1Id + 1));
152
- pt2Id = linePts[sNextId + 1];
153
- pt2 = pts.slice(3 * pt2Id, 3 * (pt2Id + 1));
154
-
155
- for (var _j2 = 0; _j2 < 3; ++_j2) {
156
- sNext[_j2] = pt2[_j2] - pt1[_j2];
112
+ if (sNextId >= npts) {
113
+ // only one valid segment
114
+ // a little trick to find orthogonal normal
115
+ for (let j = 0; j < 3; ++j) {
116
+ if (sPrev[j] !== 0.0) {
117
+ normal[(j + 2) % 3] = 0.0;
118
+ normal[(j + 1) % 3] = 1.0;
119
+ normal[j] = -sPrev[(j + 1) % 3] / sPrev[j];
120
+ break;
121
+ }
157
122
  }
158
-
159
- normalize(sNext); // compute rotation vector
160
-
161
- var w = [0.0, 0.0, 0.0];
162
- cross(sPrev, normal, w);
163
-
164
- if (normalize(w) !== 0.0) {
123
+ }
124
+ }
125
+ normalize(normal);
126
+
127
+ // compute remaining normals
128
+ let lastNormalId = 0;
129
+ while (++sNextId < npts) {
130
+ sNextId = findNextValidSegment(pts, linePts, sNextId);
131
+ if (sNextId === npts) {
132
+ break;
133
+ }
134
+ pt1Id = linePts[sNextId];
135
+ pt1 = pts.slice(3 * pt1Id, 3 * (pt1Id + 1));
136
+ pt2Id = linePts[sNextId + 1];
137
+ pt2 = pts.slice(3 * pt2Id, 3 * (pt2Id + 1));
138
+ for (let j = 0; j < 3; ++j) {
139
+ sNext[j] = pt2[j] - pt1[j];
140
+ }
141
+ normalize(sNext);
142
+
143
+ // compute rotation vector
144
+ const w = [0.0, 0.0, 0.0];
145
+ cross(sPrev, normal, w);
146
+ if (normalize(w) !== 0.0) {
147
+ // can't use this segment otherwise
148
+ const q = [0.0, 0.0, 0.0];
149
+ cross(sNext, sPrev, q);
150
+ if (normalize(q) !== 0.0) {
165
151
  // can't use this segment otherwise
166
- var q = [0.0, 0.0, 0.0];
167
- cross(sNext, sPrev, q);
168
-
169
- if (normalize(q) !== 0.0) {
170
- // can't use this segment otherwise
171
- var f1 = dot(q, normal);
172
- var f2 = 1.0 - f1 * f1;
173
-
174
- if (f2 > 0.0) {
175
- f2 = Math.sqrt(f2);
176
- } else {
177
- f2 = 0.0;
178
- }
179
-
180
- var c = [0, 0, 0];
181
-
182
- for (var _j3 = 0; _j3 < 3; ++_j3) {
183
- c[_j3] = sNext[_j3] + sPrev[_j3];
184
- }
185
-
186
- normalize(c);
187
- cross(c, q, w);
188
- cross(sPrev, q, c);
189
-
190
- if (dot(normal, c) * dot(w, c) < 0.0) {
191
- f2 *= -1.0;
192
- } // insert current normal before updating
193
-
194
-
195
- for (var _j4 = lastNormalId; _j4 < sNextId; ++_j4) {
196
- normals.setTuple(linePts[_j4], normal);
197
- }
198
-
199
- lastNormalId = sNextId;
200
- sPrev = sNext; // compute next normal
201
-
202
- normal = f1 * q + f2 * w;
152
+ const f1 = dot(q, normal);
153
+ let f2 = 1.0 - f1 * f1;
154
+ if (f2 > 0.0) {
155
+ f2 = Math.sqrt(f2);
156
+ } else {
157
+ f2 = 0.0;
158
+ }
159
+ const c = [0, 0, 0];
160
+ for (let j = 0; j < 3; ++j) {
161
+ c[j] = sNext[j] + sPrev[j];
162
+ }
163
+ normalize(c);
164
+ cross(c, q, w);
165
+ cross(sPrev, q, c);
166
+ if (dot(normal, c) * dot(w, c) < 0.0) {
167
+ f2 *= -1.0;
203
168
  }
204
- }
205
- } // insert last normal for the remaining points
206
169
 
170
+ // insert current normal before updating
171
+ for (let j = lastNormalId; j < sNextId; ++j) {
172
+ normals.setTuple(linePts[j], normal);
173
+ }
174
+ lastNormalId = sNextId;
175
+ sPrev = sNext;
207
176
 
208
- for (var _j5 = lastNormalId; _j5 < npts; ++_j5) {
209
- normals.setTuple(linePts[_j5], normal);
177
+ // compute next normal
178
+ normal = f1 * q + f2 * w;
179
+ }
210
180
  }
211
- })();
181
+ }
182
+
183
+ // insert last normal for the remaining points
184
+ for (let j = lastNormalId; j < npts; ++j) {
185
+ normals.setTuple(linePts[j], normal);
186
+ }
212
187
  } else {
213
188
  // no valid segments
214
- for (var j = 0; j < npts; ++j) {
189
+ for (let j = 0; j < npts; ++j) {
215
190
  normals.setTuple(linePts[j], normal);
216
191
  }
217
192
  }
218
193
  }
219
194
  }
220
-
221
195
  return 1;
222
196
  }
223
-
224
197
  function generatePoints(offset, npts, pts, inPts, newPts, pd, outPD, newNormals, inScalars, range, inVectors, maxSpeed, inNormals, theta) {
225
198
  // Use averaged segment to create beveled effect.
226
- var sNext = [0.0, 0.0, 0.0];
227
- var sPrev = [0.0, 0.0, 0.0];
228
- var startCapNorm = [0.0, 0.0, 0.0];
229
- var endCapNorm = [0.0, 0.0, 0.0];
230
- var p = [0.0, 0.0, 0.0];
231
- var pNext = [0.0, 0.0, 0.0];
232
- var s = [0.0, 0.0, 0.0];
233
- var n = [0.0, 0.0, 0.0];
234
- var w = [0.0, 0.0, 0.0];
235
- var nP = [0.0, 0.0, 0.0];
236
- var normal = [0.0, 0.0, 0.0];
237
- var sFactor = 1.0;
238
- var ptId = offset;
239
- var vector = [];
240
-
241
- for (var j = 0; j < npts; ++j) {
199
+ const sNext = [0.0, 0.0, 0.0];
200
+ const sPrev = [0.0, 0.0, 0.0];
201
+ const startCapNorm = [0.0, 0.0, 0.0];
202
+ const endCapNorm = [0.0, 0.0, 0.0];
203
+ let p = [0.0, 0.0, 0.0];
204
+ let pNext = [0.0, 0.0, 0.0];
205
+ let s = [0.0, 0.0, 0.0];
206
+ let n = [0.0, 0.0, 0.0];
207
+ const w = [0.0, 0.0, 0.0];
208
+ const nP = [0.0, 0.0, 0.0];
209
+ const normal = [0.0, 0.0, 0.0];
210
+ let sFactor = 1.0;
211
+ let ptId = offset;
212
+ const vector = [];
213
+ for (let j = 0; j < npts; ++j) {
242
214
  // First point
243
215
  if (j === 0) {
244
216
  p = inPts.slice(3 * pts[0], 3 * (pts[0] + 1));
245
217
  pNext = inPts.slice(3 * pts[1], 3 * (pts[1] + 1));
246
-
247
- for (var i = 0; i < 3; ++i) {
218
+ for (let i = 0; i < 3; ++i) {
248
219
  sNext[i] = pNext[i] - p[i];
249
220
  sPrev[i] = sNext[i];
250
221
  startCapNorm[i] = -sPrev[i];
251
222
  }
252
-
253
223
  normalize(startCapNorm);
254
224
  } else if (j === npts - 1) {
255
- for (var _i = 0; _i < 3; ++_i) {
256
- sPrev[_i] = sNext[_i];
257
- p[_i] = pNext[_i];
258
- endCapNorm[_i] = sNext[_i];
225
+ for (let i = 0; i < 3; ++i) {
226
+ sPrev[i] = sNext[i];
227
+ p[i] = pNext[i];
228
+ endCapNorm[i] = sNext[i];
259
229
  }
260
-
261
230
  normalize(endCapNorm);
262
231
  } else {
263
- for (var _i2 = 0; _i2 < 3; ++_i2) {
264
- p[_i2] = pNext[_i2];
232
+ for (let i = 0; i < 3; ++i) {
233
+ p[i] = pNext[i];
265
234
  }
266
-
267
235
  pNext = inPts.slice(3 * pts[j + 1], 3 * (pts[j + 1] + 1));
268
-
269
- for (var _i3 = 0; _i3 < 3; ++_i3) {
270
- sPrev[_i3] = sNext[_i3];
271
- sNext[_i3] = pNext[_i3] - p[_i3];
236
+ for (let i = 0; i < 3; ++i) {
237
+ sPrev[i] = sNext[i];
238
+ sNext[i] = pNext[i] - p[i];
272
239
  }
273
240
  }
274
-
275
241
  if (normalize(sNext) === 0.0) {
276
242
  vtkWarningMacro('Coincident points!');
277
243
  return 0;
278
244
  }
279
-
280
- for (var _i4 = 0; _i4 < 3; ++_i4) {
281
- s[_i4] = (sPrev[_i4] + sNext[_i4]) / 2.0; // average vector
245
+ for (let i = 0; i < 3; ++i) {
246
+ s[i] = (sPrev[i] + sNext[i]) / 2.0; // average vector
282
247
  }
283
248
 
284
- n = inNormals.slice(3 * pts[j], 3 * (pts[j] + 1)); // if s is zero then just use sPrev cross n
285
-
249
+ n = inNormals.slice(3 * pts[j], 3 * (pts[j] + 1));
250
+ // if s is zero then just use sPrev cross n
286
251
  if (normalize(s) === 0.0) {
287
252
  cross(sPrev, n, s);
288
-
289
253
  if (normalize(s) === 0.0) {
290
254
  vtkDebugMacro('Using alternate bevel vector');
291
255
  }
292
256
  }
293
-
294
257
  cross(s, n, w);
295
-
296
258
  if (normalize(w) === 0.0) {
297
- var msg = 'Bad normal: s = ';
298
- msg += "".concat(s[0], ", ").concat(s[1], ", ").concat(s[2]);
299
- msg += " n = ".concat(n[0], ", ").concat(n[1], ", ").concat(n[2]);
259
+ let msg = 'Bad normal: s = ';
260
+ msg += `${s[0]}, ${s[1]}, ${s[2]}`;
261
+ msg += ` n = ${n[0]}, ${n[1]}, ${n[2]}`;
300
262
  vtkWarningMacro(msg);
301
263
  return 0;
302
264
  }
303
-
304
265
  cross(w, s, nP); // create orthogonal coordinate system
266
+ normalize(nP);
305
267
 
306
- normalize(nP); // Compute a scalar factor based on scalars or vectors
307
-
268
+ // Compute a scalar factor based on scalars or vectors
308
269
  if (inScalars && model.varyRadius === VaryRadius.VARY_RADIUS_BY_SCALAR) {
309
270
  sFactor = 1.0 + (model.radiusFactor - 1.0) * (inScalars.getComponent(pts[j], 0) - range[0]) / (range[1] - range[0]);
310
271
  } else if (inVectors && model.varyRadius === VaryRadius.VARY_RADIUS_BY_VECTOR) {
311
272
  sFactor = Math.sqrt(maxSpeed / norm(inVectors.getTuple(pts[j], vector)));
312
-
313
273
  if (sFactor > model.radiusFactor) {
314
274
  sFactor = model.radiusFactor;
315
275
  }
316
276
  } else if (inScalars && model.varyRadius === VaryRadius.VARY_RADIUS_BY_ABSOLUTE_SCALAR) {
317
277
  sFactor = inScalars.getComponent(pts[j], 0);
318
-
319
278
  if (sFactor < 0.0) {
320
279
  vtkWarningMacro('Scalar value less than zero, skipping line');
321
280
  return 0;
322
281
  }
323
- } // create points around line
324
-
282
+ }
325
283
 
284
+ // create points around line
326
285
  if (model.sidesShareVertices) {
327
- for (var k = 0; k < model.numberOfSides; ++k) {
328
- for (var _i5 = 0; _i5 < 3; ++_i5) {
329
- normal[_i5] = w[_i5] * Math.cos(k * theta) + nP[_i5] * Math.sin(k * theta);
330
- s[_i5] = p[_i5] + model.radius * sFactor * normal[_i5];
331
- newPts[3 * ptId + _i5] = s[_i5];
332
- newNormals[3 * ptId + _i5] = normal[_i5];
286
+ for (let k = 0; k < model.numberOfSides; ++k) {
287
+ for (let i = 0; i < 3; ++i) {
288
+ normal[i] = w[i] * Math.cos(k * theta) + nP[i] * Math.sin(k * theta);
289
+ s[i] = p[i] + model.radius * sFactor * normal[i];
290
+ newPts[3 * ptId + i] = s[i];
291
+ newNormals[3 * ptId + i] = normal[i];
333
292
  }
334
-
335
293
  outPD.passData(pd, pts[j], ptId);
336
294
  ptId++;
337
295
  } // for each side
338
-
339
296
  } else {
340
- var nRight = [0, 0, 0];
341
- var nLeft = [0, 0, 0];
342
-
343
- for (var _k = 0; _k < model.numberOfSides; ++_k) {
344
- for (var _i6 = 0; _i6 < 3; ++_i6) {
297
+ const nRight = [0, 0, 0];
298
+ const nLeft = [0, 0, 0];
299
+ for (let k = 0; k < model.numberOfSides; ++k) {
300
+ for (let i = 0; i < 3; ++i) {
345
301
  // Create duplicate vertices at each point
346
302
  // and adjust the associated normals so that they are
347
303
  // oriented with the facets. This preserves the tube's
348
304
  // polygonal appearance, as if by flat-shading around the tube,
349
305
  // while still allowing smooth (gouraud) shading along the
350
306
  // tube as it bends.
351
- normal[_i6] = w[_i6] * Math.cos(_k * theta) + nP[_i6] * Math.sin(_k * theta);
352
- nRight[_i6] = w[_i6] * Math.cos((_k - 0.5) * theta) + nP[_i6] * Math.sin((_k - 0.5) * theta);
353
- nLeft[_i6] = w[_i6] * Math.cos((_k + 0.5) * theta) + nP[_i6] * Math.sin((_k + 0.5) * theta);
354
- s[_i6] = p[_i6] + model.radius * sFactor * normal[_i6];
355
- newPts[3 * ptId + _i6] = s[_i6];
356
- newNormals[3 * ptId + _i6] = nRight[_i6];
357
- newPts[3 * (ptId + 1) + _i6] = s[_i6];
358
- newNormals[3 * (ptId + 1) + _i6] = nLeft[_i6];
307
+ normal[i] = w[i] * Math.cos(k * theta) + nP[i] * Math.sin(k * theta);
308
+ nRight[i] = w[i] * Math.cos((k - 0.5) * theta) + nP[i] * Math.sin((k - 0.5) * theta);
309
+ nLeft[i] = w[i] * Math.cos((k + 0.5) * theta) + nP[i] * Math.sin((k + 0.5) * theta);
310
+ s[i] = p[i] + model.radius * sFactor * normal[i];
311
+ newPts[3 * ptId + i] = s[i];
312
+ newNormals[3 * ptId + i] = nRight[i];
313
+ newPts[3 * (ptId + 1) + i] = s[i];
314
+ newNormals[3 * (ptId + 1) + i] = nLeft[i];
359
315
  }
360
-
361
316
  outPD.passData(pd, pts[j], ptId + 1);
362
317
  ptId += 2;
363
318
  } // for each side
364
-
365
319
  } // else separate vertices
366
-
367
320
  } // for all points in the polyline
368
- // Produce end points for cap. They are placed at tail end of points.
369
-
370
321
 
322
+ // Produce end points for cap. They are placed at tail end of points.
371
323
  if (model.capping) {
372
- var numCapSides = model.numberOfSides;
373
- var capIncr = 1;
374
-
324
+ let numCapSides = model.numberOfSides;
325
+ let capIncr = 1;
375
326
  if (!model.sidesShareVertices) {
376
327
  numCapSides = 2 * model.numberOfSides;
377
328
  capIncr = 2;
378
- } // the start cap
379
-
380
-
381
- for (var _k2 = 0; _k2 < numCapSides; _k2 += capIncr) {
382
- s = newPts.slice(3 * (offset + _k2), 3 * (offset + _k2 + 1));
329
+ }
383
330
 
384
- for (var _i7 = 0; _i7 < 3; ++_i7) {
385
- newPts[3 * ptId + _i7] = s[_i7];
386
- newNormals[3 * ptId + _i7] = startCapNorm[_i7];
331
+ // the start cap
332
+ for (let k = 0; k < numCapSides; k += capIncr) {
333
+ s = newPts.slice(3 * (offset + k), 3 * (offset + k + 1));
334
+ for (let i = 0; i < 3; ++i) {
335
+ newPts[3 * ptId + i] = s[i];
336
+ newNormals[3 * ptId + i] = startCapNorm[i];
387
337
  }
388
-
389
338
  outPD.passData(pd, pts[0], ptId);
390
339
  ptId++;
391
- } // the end cap
392
-
393
-
394
- var endOffset = offset + (npts - 1) * model.numberOfSides;
340
+ }
395
341
 
342
+ // the end cap
343
+ let endOffset = offset + (npts - 1) * model.numberOfSides;
396
344
  if (!model.sidesShareVertices) {
397
345
  endOffset = offset + 2 * (npts - 1) * model.numberOfSides;
398
346
  }
399
-
400
- for (var _k3 = 0; _k3 < numCapSides; _k3 += capIncr) {
401
- s = newPts.slice(3 * (endOffset + _k3), 3 * (endOffset + _k3 + 1));
402
-
403
- for (var _i8 = 0; _i8 < 3; ++_i8) {
404
- newPts[3 * ptId + _i8] = s[_i8];
405
- newNormals[3 * ptId + _i8] = endCapNorm[_i8];
347
+ for (let k = 0; k < numCapSides; k += capIncr) {
348
+ s = newPts.slice(3 * (endOffset + k), 3 * (endOffset + k + 1));
349
+ for (let i = 0; i < 3; ++i) {
350
+ newPts[3 * ptId + i] = s[i];
351
+ newNormals[3 * ptId + i] = endCapNorm[i];
406
352
  }
407
-
408
353
  outPD.passData(pd, pts[npts - 1], ptId);
409
354
  ptId++;
410
355
  }
411
356
  } // if capping
412
357
 
413
-
414
358
  return 1;
415
359
  }
416
-
417
360
  function generateStrips(offset, npts, inCellId, outCellId, inCD, outCD, newStrips) {
418
- var i1 = 0;
419
- var i2 = 0;
420
- var i3 = 0;
421
- var newOutCellId = outCellId;
422
- var outCellIdx = 0;
423
- var newStripsData = newStrips.getData();
424
- var cellId = 0;
425
-
361
+ let i1 = 0;
362
+ let i2 = 0;
363
+ let i3 = 0;
364
+ let newOutCellId = outCellId;
365
+ let outCellIdx = 0;
366
+ const newStripsData = newStrips.getData();
367
+ let cellId = 0;
426
368
  while (outCellIdx < newStripsData.length) {
427
369
  if (cellId === outCellId) {
428
370
  break;
429
371
  }
430
-
431
372
  outCellIdx += newStripsData[outCellIdx] + 1;
432
373
  cellId++;
433
374
  }
434
-
435
375
  if (model.sidesShareVertices) {
436
- for (var k = offset; k < model.numberOfSides + offset; k += model.onRatio) {
376
+ for (let k = offset; k < model.numberOfSides + offset; k += model.onRatio) {
437
377
  i1 = k % model.numberOfSides;
438
378
  i2 = (k + 1) % model.numberOfSides;
439
379
  newStripsData[outCellIdx++] = npts * 2;
440
-
441
- for (var i = 0; i < npts; ++i) {
380
+ for (let i = 0; i < npts; ++i) {
442
381
  i3 = i * model.numberOfSides;
443
382
  newStripsData[outCellIdx++] = offset + i2 + i3;
444
383
  newStripsData[outCellIdx++] = offset + i1 + i3;
445
384
  }
446
-
447
385
  outCD.passData(inCD, inCellId, newOutCellId++);
448
386
  } // for each side of the tube
449
-
450
387
  } else {
451
- for (var _k4 = offset; _k4 < model.numberOfSides + offset; _k4 += model.onRatio) {
452
- i1 = 2 * (_k4 % model.numberOfSides) + 1;
453
- i2 = 2 * ((_k4 + 1) % model.numberOfSides); // outCellId = newStrips.getNumberOfCells(true);
454
-
388
+ for (let k = offset; k < model.numberOfSides + offset; k += model.onRatio) {
389
+ i1 = 2 * (k % model.numberOfSides) + 1;
390
+ i2 = 2 * ((k + 1) % model.numberOfSides);
391
+ // outCellId = newStrips.getNumberOfCells(true);
455
392
  newStripsData[outCellIdx] = npts * 2;
456
393
  outCellIdx++;
457
-
458
- for (var _i9 = 0; _i9 < npts; ++_i9) {
459
- i3 = _i9 * 2 * model.numberOfSides;
394
+ for (let i = 0; i < npts; ++i) {
395
+ i3 = i * 2 * model.numberOfSides;
460
396
  newStripsData[outCellIdx++] = offset + i2 + i3;
461
397
  newStripsData[outCellIdx++] = offset + i1 + i3;
462
398
  }
463
-
464
399
  outCD.passData(inCD, inCellId, newOutCellId++);
465
400
  } // for each side of the tube
401
+ }
466
402
 
467
- } // Take care of capping. The caps are n-sided polygons that can be easily
403
+ // Take care of capping. The caps are n-sided polygons that can be easily
468
404
  // triangle stripped.
469
-
470
-
471
405
  if (model.capping) {
472
- var startIdx = offset + npts * model.numberOfSides;
473
- var idx = 0;
474
-
406
+ let startIdx = offset + npts * model.numberOfSides;
407
+ let idx = 0;
475
408
  if (!model.sidesShareVertices) {
476
409
  startIdx = offset + 2 * npts * model.numberOfSides;
477
- } // The start cap
478
-
410
+ }
479
411
 
412
+ // The start cap
480
413
  newStripsData[outCellIdx++] = model.numberOfSides;
481
414
  newStripsData[outCellIdx++] = startIdx;
482
415
  newStripsData[outCellIdx++] = startIdx + 1;
483
- var _k5 = 0;
484
-
485
- for (i1 = model.numberOfSides - 1, i2 = 2, _k5 = 0; _k5 < model.numberOfSides - 2; ++_k5) {
486
- if (_k5 % 2) {
416
+ let k = 0;
417
+ for (i1 = model.numberOfSides - 1, i2 = 2, k = 0; k < model.numberOfSides - 2; ++k) {
418
+ if (k % 2) {
487
419
  idx = startIdx + i2;
488
420
  newStripsData[outCellIdx++] = idx;
489
421
  i2++;
@@ -493,16 +425,15 @@ function vtkTubeFilter(publicAPI, model) {
493
425
  i1--;
494
426
  }
495
427
  }
428
+ outCD.passData(inCD, inCellId, newOutCellId++);
496
429
 
497
- outCD.passData(inCD, inCellId, newOutCellId++); // The end cap - reversed order to be consistent with normal
498
-
430
+ // The end cap - reversed order to be consistent with normal
499
431
  startIdx += model.numberOfSides;
500
432
  newStripsData[outCellIdx++] = model.numberOfSides;
501
433
  newStripsData[outCellIdx++] = startIdx;
502
434
  newStripsData[outCellIdx++] = startIdx + model.numberOfSides - 1;
503
-
504
- for (i1 = model.numberOfSides - 2, i2 = 1, _k5 = 0; _k5 < model.numberOfSides - 2; ++_k5) {
505
- if (_k5 % 2) {
435
+ for (i1 = model.numberOfSides - 2, i2 = 1, k = 0; k < model.numberOfSides - 2; ++k) {
436
+ if (k % 2) {
506
437
  idx = startIdx + i1;
507
438
  newStripsData[outCellIdx++] = idx;
508
439
  i1--;
@@ -512,202 +443,161 @@ function vtkTubeFilter(publicAPI, model) {
512
443
  i2++;
513
444
  }
514
445
  }
515
-
516
446
  outCD.passData(inCD, inCellId, newOutCellId++);
517
447
  }
518
-
519
448
  return newOutCellId;
520
449
  }
521
-
522
450
  function generateTCoords(offset, npts, pts, inPts, inScalars, newTCoords) {
523
- var numSides = model.numberOfSides;
524
-
451
+ let numSides = model.numberOfSides;
525
452
  if (!model.sidesShareVertices) {
526
453
  numSides = 2 * model.numberOfSides;
527
454
  }
528
-
529
- var tc = 0.0;
530
- var s0 = 0.0;
531
- var s = 0.0;
532
- var inScalarsData = inScalars.getData();
533
-
455
+ let tc = 0.0;
456
+ let s0 = 0.0;
457
+ let s = 0.0;
458
+ const inScalarsData = inScalars.getData();
534
459
  if (model.generateTCoords === GenerateTCoords.TCOORDS_FROM_SCALARS) {
535
460
  s0 = inScalarsData[pts[0]];
536
-
537
- for (var i = 0; i < npts; ++i) {
461
+ for (let i = 0; i < npts; ++i) {
538
462
  s = inScalarsData[pts[i]];
539
463
  tc = (s - s0) / model.textureLength;
540
-
541
- for (var k = 0; k < numSides; ++k) {
542
- var tcy = k / (numSides - 1);
543
- var tcId = 2 * (offset + i * numSides + k);
464
+ for (let k = 0; k < numSides; ++k) {
465
+ const tcy = k / (numSides - 1);
466
+ const tcId = 2 * (offset + i * numSides + k);
544
467
  newTCoords[tcId] = tc;
545
468
  newTCoords[tcId + 1] = tcy;
546
469
  }
547
470
  }
548
471
  } else if (model.generateTCoords === GenerateTCoords.TCOORDS_FROM_LENGTH) {
549
- var len = 0.0;
550
- var xPrev = inPts.slice(3 * pts[0], 3 * (pts[0] + 1));
551
-
552
- for (var _i10 = 0; _i10 < npts; ++_i10) {
553
- var x = inPts.slice(3 * pts[_i10], 3 * (pts[_i10] + 1));
472
+ let len = 0.0;
473
+ const xPrev = inPts.slice(3 * pts[0], 3 * (pts[0] + 1));
474
+ for (let i = 0; i < npts; ++i) {
475
+ const x = inPts.slice(3 * pts[i], 3 * (pts[i] + 1));
554
476
  len += Math.sqrt(distance2BetweenPoints(x, xPrev));
555
477
  tc = len / model.textureLength;
556
-
557
- for (var _k6 = 0; _k6 < numSides; ++_k6) {
558
- var _tcy = _k6 / (numSides - 1);
559
-
560
- var _tcId = 2 * (offset + _i10 * numSides + _k6);
561
-
562
- newTCoords[_tcId] = tc;
563
- newTCoords[_tcId + 1] = _tcy;
478
+ for (let k = 0; k < numSides; ++k) {
479
+ const tcy = k / (numSides - 1);
480
+ const tcId = 2 * (offset + i * numSides + k);
481
+ newTCoords[tcId] = tc;
482
+ newTCoords[tcId + 1] = tcy;
564
483
  }
565
-
566
- for (var _k7 = 0; _k7 < 3; ++_k7) {
567
- xPrev[_k7] = x[_k7];
484
+ for (let k = 0; k < 3; ++k) {
485
+ xPrev[k] = x[k];
568
486
  }
569
487
  }
570
488
  } else if (model.generateTCoords === GenerateTCoords.TCOORDS_FROM_NORMALIZED_LENGTH) {
571
- var _len = 0.0;
572
- var len1 = 0.0;
573
-
574
- var _xPrev = inPts.slice(3 * pts[0], 3 * (pts[0] + 1));
575
-
576
- for (var _i11 = 0; _i11 < npts; ++_i11) {
577
- var _x = inPts.slice(3 * pts[_i11], 3 * (pts[_i11] + 1));
578
-
579
- len1 += Math.sqrt(distance2BetweenPoints(_x, _xPrev));
580
-
581
- for (var _k8 = 0; _k8 < 3; ++_k8) {
582
- _xPrev[_k8] = _x[_k8];
489
+ let len = 0.0;
490
+ let len1 = 0.0;
491
+ let xPrev = inPts.slice(3 * pts[0], 3 * (pts[0] + 1));
492
+ for (let i = 0; i < npts; ++i) {
493
+ const x = inPts.slice(3 * pts[i], 3 * (pts[i] + 1));
494
+ len1 += Math.sqrt(distance2BetweenPoints(x, xPrev));
495
+ for (let k = 0; k < 3; ++k) {
496
+ xPrev[k] = x[k];
583
497
  }
584
498
  }
585
-
586
- _xPrev = inPts.slice(3 * pts[0], 3 * (pts[0] + 1));
587
-
588
- for (var _i12 = 0; _i12 < npts; ++_i12) {
589
- var _x2 = inPts.slice(3 * pts[_i12], 3 * (pts[_i12] + 1));
590
-
591
- _len += Math.sqrt(distance2BetweenPoints(_x2, _xPrev));
592
- tc = _len / len1;
593
-
594
- for (var _k9 = 0; _k9 < numSides; ++_k9) {
595
- var _tcy2 = _k9 / (numSides - 1);
596
-
597
- var _tcId2 = 2 * (offset + _i12 * numSides + _k9);
598
-
599
- newTCoords[_tcId2] = tc;
600
- newTCoords[_tcId2 + 1] = _tcy2;
499
+ xPrev = inPts.slice(3 * pts[0], 3 * (pts[0] + 1));
500
+ for (let i = 0; i < npts; ++i) {
501
+ const x = inPts.slice(3 * pts[i], 3 * (pts[i] + 1));
502
+ len += Math.sqrt(distance2BetweenPoints(x, xPrev));
503
+ tc = len / len1;
504
+ for (let k = 0; k < numSides; ++k) {
505
+ const tcy = k / (numSides - 1);
506
+ const tcId = 2 * (offset + i * numSides + k);
507
+ newTCoords[tcId] = tc;
508
+ newTCoords[tcId + 1] = tcy;
601
509
  }
602
-
603
- for (var _k10 = 0; _k10 < 3; ++_k10) {
604
- _xPrev[_k10] = _x2[_k10];
510
+ for (let k = 0; k < 3; ++k) {
511
+ xPrev[k] = x[k];
605
512
  }
606
513
  }
607
- } // Capping, set the endpoints as appropriate
608
-
514
+ }
609
515
 
516
+ // Capping, set the endpoints as appropriate
610
517
  if (model.capping) {
611
- var startIdx = offset + npts * numSides; // start cap
612
-
613
- for (var ik = 0; ik < model.numberOfSides; ++ik) {
614
- var _tcId3 = 2 * (startIdx + ik);
615
-
616
- newTCoords[_tcId3] = 0.0;
617
- newTCoords[_tcId3 + 1] = 0.0;
618
- } // end cap
619
-
518
+ const startIdx = offset + npts * numSides;
620
519
 
621
- for (var _ik = 0; _ik < model.numberOfSides; ++_ik) {
622
- var _tcId4 = 2 * (startIdx + model.numberOfSides + _ik);
520
+ // start cap
521
+ for (let ik = 0; ik < model.numberOfSides; ++ik) {
522
+ const tcId = 2 * (startIdx + ik);
523
+ newTCoords[tcId] = 0.0;
524
+ newTCoords[tcId + 1] = 0.0;
525
+ }
623
526
 
624
- newTCoords[_tcId4] = 0.0;
625
- newTCoords[_tcId4 + 1] = 0.0;
527
+ // end cap
528
+ for (let ik = 0; ik < model.numberOfSides; ++ik) {
529
+ const tcId = 2 * (startIdx + model.numberOfSides + ik);
530
+ newTCoords[tcId] = 0.0;
531
+ newTCoords[tcId + 1] = 0.0;
626
532
  }
627
533
  }
628
534
  }
629
-
630
- publicAPI.requestData = function (inData, outData) {
535
+ publicAPI.requestData = (inData, outData) => {
631
536
  // implement requestData
632
537
  // pass through for now
633
- var output = vtkPolyData.newInstance();
538
+ const output = vtkPolyData.newInstance();
634
539
  outData[0] = output;
635
- var input = inData[0];
636
-
540
+ const input = inData[0];
637
541
  if (!input) {
638
542
  vtkErrorMacro('Invalid or missing input');
639
543
  return;
640
- } // Allocate output
641
-
642
-
643
- var inPts = input.getPoints();
544
+ }
644
545
 
546
+ // Allocate output
547
+ const inPts = input.getPoints();
645
548
  if (!inPts) {
646
549
  return;
647
550
  }
648
-
649
- var numPts = inPts.getNumberOfPoints();
650
-
551
+ const numPts = inPts.getNumberOfPoints();
651
552
  if (numPts < 1) {
652
553
  return;
653
554
  }
654
-
655
- var inLines = input.getLines();
656
-
555
+ const inLines = input.getLines();
657
556
  if (!inLines) {
658
557
  return;
659
558
  }
660
-
661
- var numLines = inLines.getNumberOfCells();
662
-
559
+ const numLines = inLines.getNumberOfCells();
663
560
  if (numLines < 1) {
664
561
  return;
665
562
  }
666
-
667
- var numNewPts = 0;
668
- var numStrips = 0;
669
- var inLinesData = inLines.getData();
670
- var npts = inLinesData[0];
671
-
672
- for (var i = 0; i < inLinesData.length; i += npts + 1) {
563
+ let numNewPts = 0;
564
+ let numStrips = 0;
565
+ const inLinesData = inLines.getData();
566
+ let npts = inLinesData[0];
567
+ for (let i = 0; i < inLinesData.length; i += npts + 1) {
673
568
  npts = inLinesData[i];
674
569
  numNewPts = computeOffset(numNewPts, npts);
675
570
  numStrips += (2 * npts + 1) * Math.ceil(model.numberOfSides / model.onRatio);
676
-
677
571
  if (model.capping) {
678
572
  numStrips += 2 * (model.numberOfSides + 1);
679
573
  }
680
574
  }
681
-
682
- var pointType = inPts.getDataType();
683
-
575
+ let pointType = inPts.getDataType();
684
576
  if (model.outputPointsPrecision === DesiredOutputPrecision.SINGLE) {
685
577
  pointType = VtkDataTypes.FLOAT;
686
578
  } else if (model.outputPointsPrecision === DesiredOutputPrecision.DOUBLE) {
687
579
  pointType = VtkDataTypes.DOUBLE;
688
580
  }
689
-
690
- var newPts = vtkPoints.newInstance({
581
+ const newPts = vtkPoints.newInstance({
691
582
  dataType: pointType,
692
583
  size: numNewPts * 3,
693
584
  numberOfComponents: 3
694
585
  });
695
- var numNormals = 3 * numNewPts;
696
- var newNormalsData = new Float32Array(numNormals);
697
- var newNormals = vtkDataArray.newInstance({
586
+ const numNormals = 3 * numNewPts;
587
+ const newNormalsData = new Float32Array(numNormals);
588
+ const newNormals = vtkDataArray.newInstance({
698
589
  numberOfComponents: 3,
699
590
  values: newNormalsData,
700
591
  name: 'TubeNormals'
701
592
  });
702
- var newStripsData = new Uint32Array(numStrips);
703
- var newStrips = vtkCellArray.newInstance({
593
+ const newStripsData = new Uint32Array(numStrips);
594
+ const newStrips = vtkCellArray.newInstance({
704
595
  values: newStripsData
705
596
  });
706
- var newStripId = 0;
707
- var inNormals = input.getPointData().getNormals();
708
- var inNormalsData = null;
709
- var generateNormals = false;
710
-
597
+ let newStripId = 0;
598
+ let inNormals = input.getPointData().getNormals();
599
+ let inNormalsData = null;
600
+ let generateNormals = false;
711
601
  if (!inNormals || model.useDefaultNormal) {
712
602
  inNormalsData = new Float32Array(3 * numPts);
713
603
  inNormals = vtkDataArray.newInstance({
@@ -715,24 +605,22 @@ function vtkTubeFilter(publicAPI, model) {
715
605
  values: inNormalsData,
716
606
  name: 'Normals'
717
607
  });
718
-
719
608
  if (model.useDefaultNormal) {
720
- inNormalsData = inNormalsData.map(function (elem, index) {
721
- var i = index % 3;
609
+ inNormalsData = inNormalsData.map((elem, index) => {
610
+ const i = index % 3;
722
611
  return model.defaultNormal[i];
723
612
  });
724
613
  } else {
725
614
  generateNormals = true;
726
615
  }
727
- } // loop over pointData arrays and resize based on numNewPts
728
-
729
-
730
- var numArrays = input.getPointData().getNumberOfArrays();
731
- var oldArray = null;
732
- var newArray = null;
616
+ }
733
617
 
734
- for (var _i13 = 0; _i13 < numArrays; _i13++) {
735
- oldArray = input.getPointData().getArrayByIndex(_i13);
618
+ // loop over pointData arrays and resize based on numNewPts
619
+ const numArrays = input.getPointData().getNumberOfArrays();
620
+ let oldArray = null;
621
+ let newArray = null;
622
+ for (let i = 0; i < numArrays; i++) {
623
+ oldArray = input.getPointData().getArrayByIndex(i);
736
624
  newArray = vtkDataArray.newInstance({
737
625
  name: oldArray.getName(),
738
626
  dataType: oldArray.getDataType(),
@@ -740,21 +628,17 @@ function vtkTubeFilter(publicAPI, model) {
740
628
  size: numNewPts * oldArray.getNumberOfComponents()
741
629
  });
742
630
  output.getPointData().removeArrayByIndex(0); // remove oldArray from beginning
743
-
744
631
  output.getPointData().addArray(newArray); // concat newArray to end
745
- } // loop over cellData arrays and resize based on numNewCells
746
-
747
-
748
- var numNewCells = inLines.getNumberOfCells() * model.numberOfSides;
632
+ }
749
633
 
634
+ // loop over cellData arrays and resize based on numNewCells
635
+ let numNewCells = inLines.getNumberOfCells() * model.numberOfSides;
750
636
  if (model.capping) {
751
637
  numNewCells += 2;
752
638
  }
753
-
754
- var numCellArrays = input.getCellData().getNumberOfArrays();
755
-
756
- for (var _i14 = 0; _i14 < numCellArrays; _i14++) {
757
- oldArray = input.getCellData().getArrayByIndex(_i14);
639
+ const numCellArrays = input.getCellData().getNumberOfArrays();
640
+ for (let i = 0; i < numCellArrays; i++) {
641
+ oldArray = input.getCellData().getArrayByIndex(i);
758
642
  newArray = vtkDataArray.newInstance({
759
643
  name: oldArray.getName(),
760
644
  dataType: oldArray.getDataType(),
@@ -762,14 +646,12 @@ function vtkTubeFilter(publicAPI, model) {
762
646
  size: numNewCells * oldArray.getNumberOfComponents()
763
647
  });
764
648
  output.getCellData().removeArrayByIndex(0); // remove oldArray from beginning
765
-
766
649
  output.getCellData().addArray(newArray); // concat newArray to end
767
650
  }
768
651
 
769
- var inScalars = publicAPI.getInputArrayToProcess(0);
770
- var outScalars = null;
771
- var range = [];
772
-
652
+ const inScalars = publicAPI.getInputArrayToProcess(0);
653
+ let outScalars = null;
654
+ let range = [];
773
655
  if (inScalars) {
774
656
  // allocate output scalar array
775
657
  // assuming point scalars for now
@@ -780,41 +662,33 @@ function vtkTubeFilter(publicAPI, model) {
780
662
  size: numNewPts * inScalars.getNumberOfComponents()
781
663
  });
782
664
  range = inScalars.getRange();
783
-
784
665
  if (range[1] - range[0] === 0.0) {
785
666
  if (model.varyRadius === VaryRadius.VARY_RADIUS_BY_SCALAR) {
786
667
  vtkWarningMacro('Scalar range is zero!');
787
668
  }
788
-
789
669
  range[1] = range[0] + 1.0;
790
670
  }
791
671
  }
792
-
793
- var inVectors = publicAPI.getInputArrayToProcess(1);
794
- var maxSpeed = 0;
795
-
672
+ const inVectors = publicAPI.getInputArrayToProcess(1);
673
+ let maxSpeed = 0;
796
674
  if (inVectors) {
797
675
  maxSpeed = inVectors.getMaxNorm();
798
676
  }
799
-
800
- var outCD = output.getCellData();
677
+ const outCD = output.getCellData();
801
678
  outCD.copyNormalsOff();
802
679
  outCD.passData(input.getCellData());
803
- var outPD = output.getPointData();
804
-
680
+ const outPD = output.getPointData();
805
681
  if (outPD.getNormals() !== null) {
806
682
  outPD.copyNormalsOff();
807
683
  }
808
-
809
684
  if (inScalars && outScalars) {
810
685
  outPD.setScalars(outScalars);
811
- } // TCoords
812
-
813
-
814
- var newTCoords = null;
686
+ }
815
687
 
688
+ // TCoords
689
+ let newTCoords = null;
816
690
  if (model.generateTCoords === GenerateTCoords.TCOORDS_FROM_SCALARS && inScalars || model.generateTCoords === GenerateTCoords.TCOORDS_FROM_LENGTH || model.generateTCoords === GenerateTCoords.TCOORDS_FROM_NORMALIZED_LENGTH) {
817
- var newTCoordsData = new Float32Array(2 * numNewPts);
691
+ const newTCoordsData = new Float32Array(2 * numNewPts);
818
692
  newTCoords = vtkDataArray.newInstance({
819
693
  numberOfComponents: 2,
820
694
  values: newTCoordsData,
@@ -822,58 +696,54 @@ function vtkTubeFilter(publicAPI, model) {
822
696
  });
823
697
  outPD.copyTCoordsOff();
824
698
  }
699
+ outPD.passData(input.getPointData());
825
700
 
826
- outPD.passData(input.getPointData()); // Create points along each polyline that are connected into numberOfSides
701
+ // Create points along each polyline that are connected into numberOfSides
827
702
  // triangle strips.
828
-
829
- var theta = 2.0 * Math.PI / model.numberOfSides;
703
+ const theta = 2.0 * Math.PI / model.numberOfSides;
830
704
  npts = inLinesData[0];
831
- var offset = 0;
832
- var inCellId = input.getVerts().getNumberOfCells();
833
-
834
- for (var _i15 = 0; _i15 < inLinesData.length; _i15 += npts + 1) {
835
- npts = inLinesData[_i15];
836
- var pts = inLinesData.slice(_i15 + 1, _i15 + 1 + npts);
837
-
705
+ let offset = 0;
706
+ let inCellId = input.getVerts().getNumberOfCells();
707
+ for (let i = 0; i < inLinesData.length; i += npts + 1) {
708
+ npts = inLinesData[i];
709
+ const pts = inLinesData.slice(i + 1, i + 1 + npts);
838
710
  if (npts > 1) {
839
711
  // if not, skip tubing this line
840
712
  if (generateNormals) {
841
- var polyLine = inLinesData.slice(_i15, _i15 + npts + 1);
713
+ const polyLine = inLinesData.slice(i, i + npts + 1);
842
714
  generateSlidingNormals(inPts.getData(), polyLine, inNormals);
843
715
  }
844
- } // generate points
845
-
846
-
716
+ }
717
+ // generate points
847
718
  if (generatePoints(offset, npts, pts, inPts.getData(), newPts.getData(), input.getPointData(), outPD, newNormalsData, inScalars, range, inVectors, maxSpeed, inNormalsData, theta)) {
848
719
  // generate strips for the polyline
849
- newStripId = generateStrips(offset, npts, inCellId, newStripId, input.getCellData(), outCD, newStrips); // generate texture coordinates for the polyline
850
-
720
+ newStripId = generateStrips(offset, npts, inCellId, newStripId, input.getCellData(), outCD, newStrips);
721
+ // generate texture coordinates for the polyline
851
722
  if (newTCoords) {
852
723
  generateTCoords(offset, npts, pts, inPts.getData(), inScalars, newTCoords.getData());
853
724
  }
854
725
  } else {
855
726
  // skip tubing this line
856
727
  vtkWarningMacro('Could not generate points');
857
- } // lineIdx += npts;
728
+ }
729
+ // lineIdx += npts;
858
730
  // Compute the new offset for the next polyline
859
-
860
-
861
731
  offset = computeOffset(offset, npts);
862
732
  inCellId++;
863
733
  }
864
-
865
734
  output.setPoints(newPts);
866
735
  output.setStrips(newStrips);
867
736
  output.setPointData(outPD);
868
737
  outPD.setNormals(newNormals);
869
738
  outData[0] = output;
870
739
  };
871
- } // ----------------------------------------------------------------------------
740
+ }
741
+
742
+ // ----------------------------------------------------------------------------
872
743
  // Object factory
873
744
  // ----------------------------------------------------------------------------
874
745
 
875
-
876
- var DEFAULT_VALUES = {
746
+ const DEFAULT_VALUES = {
877
747
  outputPointsPrecision: DesiredOutputPrecision.DEFAULT,
878
748
  radius: 0.5,
879
749
  varyRadius: VaryRadius.VARY_RADIUS_OFF,
@@ -887,26 +757,36 @@ var DEFAULT_VALUES = {
887
757
  offset: 0,
888
758
  generateTCoords: GenerateTCoords.TCOORDS_OFF,
889
759
  textureLength: 1.0
890
- }; // ----------------------------------------------------------------------------
760
+ };
761
+
762
+ // ----------------------------------------------------------------------------
891
763
 
892
764
  function extend(publicAPI, model) {
893
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
894
- Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
765
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
766
+ Object.assign(model, DEFAULT_VALUES, initialValues);
895
767
 
896
- macro.setGet(publicAPI, model, ['outputPointsPrecision', 'radius', 'varyRadius', 'numberOfSides', 'radiusFactor', 'defaultNormal', 'useDefaultNormal', 'sidesShareVertices', 'capping', 'onRatio', 'offset', 'generateTCoords', 'textureLength']); // Make this a VTK object
768
+ // Build VTK API
769
+ macro.setGet(publicAPI, model, ['outputPointsPrecision', 'radius', 'varyRadius', 'numberOfSides', 'radiusFactor', 'defaultNormal', 'useDefaultNormal', 'sidesShareVertices', 'capping', 'onRatio', 'offset', 'generateTCoords', 'textureLength']);
897
770
 
898
- macro.obj(publicAPI, model); // Also make it an algorithm with one input and one output
771
+ // Make this a VTK object
772
+ macro.obj(publicAPI, model);
899
773
 
900
- macro.algo(publicAPI, model, 1, 1); // Object specific methods
774
+ // Also make it an algorithm with one input and one output
775
+ macro.algo(publicAPI, model, 1, 1);
901
776
 
777
+ // Object specific methods
902
778
  vtkTubeFilter(publicAPI, model);
903
- } // ----------------------------------------------------------------------------
779
+ }
780
+
781
+ // ----------------------------------------------------------------------------
782
+
783
+ const newInstance = macro.newInstance(extend, 'vtkTubeFilter');
904
784
 
905
- var newInstance = macro.newInstance(extend, 'vtkTubeFilter'); // ----------------------------------------------------------------------------
785
+ // ----------------------------------------------------------------------------
906
786
 
907
787
  var vtkTubeFilter$1 = {
908
- newInstance: newInstance,
909
- extend: extend
788
+ newInstance,
789
+ extend
910
790
  };
911
791
 
912
792
  export { vtkTubeFilter$1 as default, extend, newInstance };