@kitware/vtk.js 28.10.1 → 28.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/Common/Core/Base64.js +53 -82
  2. package/Common/Core/CellArray.js +52 -60
  3. package/Common/Core/ClassHierarchy.js +8 -36
  4. package/Common/Core/DataArray/Constants.js +6 -6
  5. package/Common/Core/DataArray.js +185 -270
  6. package/Common/Core/Endian.js +14 -17
  7. package/Common/Core/HalfFloat.js +17 -34
  8. package/Common/Core/ImageHelper.js +17 -25
  9. package/Common/Core/LookupTable.js +131 -144
  10. package/Common/Core/Math/Constants.js +8 -8
  11. package/Common/Core/Math/index.js +778 -903
  12. package/Common/Core/Math.d.ts +14 -0
  13. package/Common/Core/Math.js +2 -4
  14. package/Common/Core/MatrixBuilder.js +99 -151
  15. package/Common/Core/Points.js +43 -43
  16. package/Common/Core/PriorityQueue.js +30 -28
  17. package/Common/Core/ProgressHandler.js +31 -32
  18. package/Common/Core/ScalarsToColors/Constants.js +4 -4
  19. package/Common/Core/ScalarsToColors.js +196 -253
  20. package/Common/Core/StringArray.js +48 -73
  21. package/Common/Core/URLExtract.js +10 -29
  22. package/Common/Core/VariantArray.js +48 -73
  23. package/Common/Core.js +11 -11
  24. package/Common/DataModel/AbstractPointLocator.js +19 -17
  25. package/Common/DataModel/BoundingBox.js +322 -490
  26. package/Common/DataModel/Box.js +46 -63
  27. package/Common/DataModel/CardinalSpline1D.js +92 -102
  28. package/Common/DataModel/Cell.js +41 -61
  29. package/Common/DataModel/CellLinks.js +91 -127
  30. package/Common/DataModel/CellTypes/Constants.js +7 -6
  31. package/Common/DataModel/CellTypes.js +55 -74
  32. package/Common/DataModel/Collection.js +45 -61
  33. package/Common/DataModel/Cone.js +28 -20
  34. package/Common/DataModel/Cylinder.js +41 -35
  35. package/Common/DataModel/DataSet/Constants.js +11 -5
  36. package/Common/DataModel/DataSet.js +37 -25
  37. package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
  38. package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
  39. package/Common/DataModel/DataSetAttributes.js +96 -138
  40. package/Common/DataModel/EdgeLocator.js +45 -70
  41. package/Common/DataModel/ITKHelper.js +67 -137
  42. package/Common/DataModel/ImageData.js +115 -172
  43. package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
  44. package/Common/DataModel/ImplicitBoolean.js +66 -96
  45. package/Common/DataModel/IncrementalOctreeNode.js +201 -231
  46. package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
  47. package/Common/DataModel/KochanekSpline1D.js +78 -81
  48. package/Common/DataModel/Line/Constants.js +2 -2
  49. package/Common/DataModel/Line.js +82 -105
  50. package/Common/DataModel/Locator.js +17 -10
  51. package/Common/DataModel/Molecule.js +26 -17
  52. package/Common/DataModel/PiecewiseFunction.js +218 -239
  53. package/Common/DataModel/Plane.js +90 -113
  54. package/Common/DataModel/PointSet.js +30 -26
  55. package/Common/DataModel/PolyData/Constants.js +2 -2
  56. package/Common/DataModel/PolyData.js +95 -120
  57. package/Common/DataModel/PolyLine.js +44 -61
  58. package/Common/DataModel/Polygon/Constants.js +4 -4
  59. package/Common/DataModel/Polygon.js +128 -169
  60. package/Common/DataModel/Quad/Constants.js +2 -2
  61. package/Common/DataModel/Quad.js +61 -100
  62. package/Common/DataModel/SelectionNode/Constants.js +5 -4
  63. package/Common/DataModel/SelectionNode.js +25 -21
  64. package/Common/DataModel/Sphere.js +40 -35
  65. package/Common/DataModel/Spline1D/Constants.js +3 -2
  66. package/Common/DataModel/Spline1D.js +34 -18
  67. package/Common/DataModel/Spline3D/Constants.js +2 -2
  68. package/Common/DataModel/Spline3D.js +46 -41
  69. package/Common/DataModel/StructuredData/Constants.js +2 -2
  70. package/Common/DataModel/StructuredData.js +9 -20
  71. package/Common/DataModel/Triangle.js +207 -250
  72. package/Common/DataModel.js +19 -19
  73. package/Common/System/MobileVR.js +56 -61
  74. package/Common/System/TimerLog.js +1 -1
  75. package/Common/System.js +2 -2
  76. package/Common/Transform/LandmarkTransform/Constants.js +2 -2
  77. package/Common/Transform/LandmarkTransform.js +133 -117
  78. package/Common/Transform/Transform.js +42 -57
  79. package/Common/Transform.js +2 -2
  80. package/Common/index.js +4 -4
  81. package/Filters/Core/Cutter.js +134 -146
  82. package/Filters/Core/PolyDataNormals.js +44 -50
  83. package/Filters/Core.js +2 -2
  84. package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
  85. package/Filters/Cornerstone.js +1 -1
  86. package/Filters/General/AppendPolyData.js +84 -100
  87. package/Filters/General/Calculator.js +95 -163
  88. package/Filters/General/ClipClosedSurface/Constants.js +2 -2
  89. package/Filters/General/ClipClosedSurface.js +341 -416
  90. package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
  91. package/Filters/General/ContourTriangulator/Constants.js +2 -2
  92. package/Filters/General/ContourTriangulator/helper.js +684 -812
  93. package/Filters/General/ContourTriangulator.js +92 -89
  94. package/Filters/General/ImageCropFilter.js +77 -78
  95. package/Filters/General/ImageDataOutlineFilter.js +42 -36
  96. package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
  97. package/Filters/General/ImageMarchingCubes.js +99 -112
  98. package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
  99. package/Filters/General/ImageMarchingSquares.js +93 -118
  100. package/Filters/General/ImageOutlineFilter.js +53 -54
  101. package/Filters/General/ImageSliceFilter.js +39 -30
  102. package/Filters/General/ImageStreamline.js +107 -124
  103. package/Filters/General/LineFilter.js +26 -15
  104. package/Filters/General/MoleculeToRepresentation.js +136 -149
  105. package/Filters/General/OBBTree/OBBNode.js +36 -34
  106. package/Filters/General/OBBTree/helper.js +19 -24
  107. package/Filters/General/OBBTree.js +396 -488
  108. package/Filters/General/OutlineFilter.js +52 -34
  109. package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
  110. package/Filters/General/PaintFilter.js +150 -162
  111. package/Filters/General/ScalarToRGBA.js +38 -33
  112. package/Filters/General/TriangleFilter.js +65 -62
  113. package/Filters/General/TubeFilter/Constants.js +4 -4
  114. package/Filters/General/TubeFilter.js +376 -496
  115. package/Filters/General/WarpScalar.js +58 -60
  116. package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
  117. package/Filters/General.js +21 -21
  118. package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
  119. package/Filters/Sources/Arrow2DSource.js +56 -56
  120. package/Filters/Sources/ArrowSource.js +39 -29
  121. package/Filters/Sources/CircleSource.js +43 -43
  122. package/Filters/Sources/ConcentricCylinderSource.js +151 -174
  123. package/Filters/Sources/ConeSource.js +51 -42
  124. package/Filters/Sources/CubeSource.js +75 -96
  125. package/Filters/Sources/Cursor3D.js +94 -109
  126. package/Filters/Sources/CylinderSource.js +90 -90
  127. package/Filters/Sources/ImageGridSource.js +43 -43
  128. package/Filters/Sources/LineSource.js +49 -39
  129. package/Filters/Sources/PlaneSource.js +97 -104
  130. package/Filters/Sources/PointSource.js +46 -37
  131. package/Filters/Sources/RTAnalyticSource.js +50 -48
  132. package/Filters/Sources/SLICSource.js +63 -73
  133. package/Filters/Sources/SphereSource.js +88 -78
  134. package/Filters/Sources/ViewFinderSource.js +26 -23
  135. package/Filters/Sources.js +14 -14
  136. package/Filters/Texture/TextureMapToPlane.js +95 -97
  137. package/Filters/Texture/TextureMapToSphere.js +46 -54
  138. package/Filters/Texture.js +2 -2
  139. package/Filters/index.js +5 -5
  140. package/IO/Core/BinaryHelper.js +12 -18
  141. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
  142. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
  143. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
  144. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
  145. package/IO/Core/DataAccessHelper.js +6 -6
  146. package/IO/Core/HttpDataSetReader.js +136 -139
  147. package/IO/Core/HttpDataSetSeriesReader.js +64 -75
  148. package/IO/Core/HttpSceneLoader.js +130 -179
  149. package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
  150. package/IO/Core/ImageStream/ViewStream.js +100 -103
  151. package/IO/Core/ImageStream.js +62 -54
  152. package/IO/Core/ResourceLoader.js +10 -9
  153. package/IO/Core/Serializer/ArraySerializer.js +40 -40
  154. package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
  155. package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
  156. package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
  157. package/IO/Core/Serializer.js +6 -13
  158. package/IO/Core/WSLinkClient.js +90 -76
  159. package/IO/Core/ZipMultiDataSetReader.js +46 -44
  160. package/IO/Core/ZipMultiDataSetWriter.js +43 -34
  161. package/IO/Core.js +7 -7
  162. package/IO/Geometry/DracoReader.js +118 -121
  163. package/IO/Geometry/PLYReader.js +163 -223
  164. package/IO/Geometry/PLYWriter/Constants.js +5 -5
  165. package/IO/Geometry/PLYWriter.js +139 -154
  166. package/IO/Geometry/STLReader.js +123 -146
  167. package/IO/Geometry/STLWriter/Constants.js +2 -2
  168. package/IO/Geometry/STLWriter.js +83 -82
  169. package/IO/Geometry.js +5 -5
  170. package/IO/Legacy/LegacyAsciiParser.js +78 -139
  171. package/IO/Legacy/PolyDataReader.js +48 -36
  172. package/IO/Legacy.js +2 -2
  173. package/IO/Misc/ElevationReader.js +67 -60
  174. package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
  175. package/IO/Misc/ITKImageReader.js +58 -45
  176. package/IO/Misc/ITKPolyDataReader.js +50 -38
  177. package/IO/Misc/JSONNucleoReader.js +49 -42
  178. package/IO/Misc/JSONReader.js +38 -33
  179. package/IO/Misc/MTLReader.js +74 -119
  180. package/IO/Misc/OBJReader.js +153 -206
  181. package/IO/Misc/PDBReader.js +70 -68
  182. package/IO/Misc/SkyboxReader.js +77 -82
  183. package/IO/Misc.js +9 -9
  184. package/IO/XML/XMLImageDataReader.js +36 -38
  185. package/IO/XML/XMLImageDataWriter.js +28 -21
  186. package/IO/XML/XMLPolyDataReader.js +49 -46
  187. package/IO/XML/XMLPolyDataWriter.js +43 -42
  188. package/IO/XML/XMLReader.js +262 -304
  189. package/IO/XML/XMLWriter/Constants.js +3 -3
  190. package/IO/XML/XMLWriter.js +70 -84
  191. package/IO/XML.js +6 -6
  192. package/IO/index.js +5 -5
  193. package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
  194. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
  195. package/Imaging/Core/AbstractImageInterpolator.js +74 -87
  196. package/Imaging/Core/ImageInterpolator.js +201 -252
  197. package/Imaging/Core/ImagePointDataIterator.js +96 -122
  198. package/Imaging/Core/ImageReslice/Constants.js +2 -2
  199. package/Imaging/Core/ImageReslice.js +327 -464
  200. package/Imaging/Core.js +4 -4
  201. package/Imaging/Hybrid/SampleFunction.js +58 -51
  202. package/Imaging/Hybrid.js +1 -1
  203. package/Imaging/index.js +2 -2
  204. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
  205. package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
  206. package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
  207. package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
  208. package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
  209. package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
  210. package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
  211. package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
  212. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
  213. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
  214. package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
  215. package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
  216. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
  217. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
  218. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
  219. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
  220. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
  221. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
  222. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
  223. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
  224. package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
  225. package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
  226. package/Interaction/Manipulators.js +21 -21
  227. package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
  228. package/Interaction/Misc.js +1 -1
  229. package/Interaction/Style/InteractorStyleImage.js +101 -121
  230. package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
  231. package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
  232. package/Interaction/Style/InteractorStyleManipulator.js +254 -329
  233. package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
  234. package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
  235. package/Interaction/Style/InteractorStyleUnicam.js +30 -38
  236. package/Interaction/Style.js +5 -5
  237. package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
  238. package/Interaction/UI/CornerAnnotation.js +65 -48
  239. package/Interaction/UI/FPSMonitor.js +104 -105
  240. package/Interaction/UI/Icons.js +1 -1
  241. package/Interaction/UI/Slider/Constants.js +2 -2
  242. package/Interaction/UI/Slider.js +78 -95
  243. package/Interaction/UI/VolumeController.js +104 -97
  244. package/Interaction/UI.js +5 -5
  245. package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
  246. package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
  247. package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  248. package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
  249. package/Interaction/Widgets.js +2 -2
  250. package/Interaction/index.js +5 -5
  251. package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
  252. package/Proxy/Animation/AnimationProxyManager.js +43 -51
  253. package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
  254. package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
  255. package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
  256. package/Proxy/Core/LookupTableProxy.js +49 -52
  257. package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
  258. package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
  259. package/Proxy/Core/ProxyManager/core.js +83 -106
  260. package/Proxy/Core/ProxyManager/properties.js +53 -76
  261. package/Proxy/Core/ProxyManager/state.js +100 -110
  262. package/Proxy/Core/ProxyManager/view.js +45 -55
  263. package/Proxy/Core/ProxyManager.js +16 -8
  264. package/Proxy/Core/SourceProxy.js +41 -38
  265. package/Proxy/Core/View2DProxy.js +143 -199
  266. package/Proxy/Core/ViewProxy.js +223 -269
  267. package/Proxy/Core.js +7 -7
  268. package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
  269. package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
  270. package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
  271. package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
  272. package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
  273. package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
  274. package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
  275. package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
  276. package/Proxy/Representations.js +7 -7
  277. package/Proxy/index.js +2 -2
  278. package/Rendering/Core/AbstractImageMapper/helper.js +44 -49
  279. package/Rendering/Core/AbstractImageMapper.js +18 -19
  280. package/Rendering/Core/AbstractMapper.js +39 -55
  281. package/Rendering/Core/AbstractMapper3D.js +26 -31
  282. package/Rendering/Core/AbstractPicker.js +25 -21
  283. package/Rendering/Core/Actor.js +71 -93
  284. package/Rendering/Core/Actor2D.js +64 -78
  285. package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
  286. package/Rendering/Core/AnnotatedCubeActor.js +94 -79
  287. package/Rendering/Core/AxesActor.js +65 -87
  288. package/Rendering/Core/Camera.js +246 -271
  289. package/Rendering/Core/CellPicker.js +125 -148
  290. package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
  291. package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
  292. package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
  293. package/Rendering/Core/ColorTransferFunction.js +460 -546
  294. package/Rendering/Core/Coordinate/Constants.js +2 -2
  295. package/Rendering/Core/Coordinate.js +119 -198
  296. package/Rendering/Core/CubeAxesActor.js +294 -320
  297. package/Rendering/Core/Follower.js +46 -45
  298. package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
  299. package/Rendering/Core/Glyph3DMapper.js +96 -148
  300. package/Rendering/Core/HardwareSelector.js +36 -69
  301. package/Rendering/Core/ImageArrayMapper.js +87 -126
  302. package/Rendering/Core/ImageCPRMapper.js +134 -209
  303. package/Rendering/Core/ImageMapper/Constants.js +2 -2
  304. package/Rendering/Core/ImageMapper.js +92 -170
  305. package/Rendering/Core/ImageProperty/Constants.js +2 -2
  306. package/Rendering/Core/ImageProperty.js +66 -81
  307. package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
  308. package/Rendering/Core/ImageResliceMapper.js +36 -29
  309. package/Rendering/Core/ImageSlice.js +85 -127
  310. package/Rendering/Core/InteractorObserver.js +82 -73
  311. package/Rendering/Core/InteractorStyle/Constants.js +2 -2
  312. package/Rendering/Core/InteractorStyle.js +56 -58
  313. package/Rendering/Core/Light.js +43 -49
  314. package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
  315. package/Rendering/Core/Mapper/Constants.js +6 -6
  316. package/Rendering/Core/Mapper/Static.js +15 -12
  317. package/Rendering/Core/Mapper.js +194 -259
  318. package/Rendering/Core/Mapper2D.js +61 -100
  319. package/Rendering/Core/Picker.js +124 -143
  320. package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
  321. package/Rendering/Core/PointPicker.js +68 -79
  322. package/Rendering/Core/Prop/Constants.js +2 -2
  323. package/Rendering/Core/Prop.js +58 -106
  324. package/Rendering/Core/Prop3D.js +54 -83
  325. package/Rendering/Core/Property/Constants.js +6 -6
  326. package/Rendering/Core/Property.js +45 -74
  327. package/Rendering/Core/Property2D/Constants.js +2 -2
  328. package/Rendering/Core/Property2D.js +33 -42
  329. package/Rendering/Core/RenderWindow.js +70 -82
  330. package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
  331. package/Rendering/Core/RenderWindowInteractor.js +324 -439
  332. package/Rendering/Core/Renderer.js +193 -257
  333. package/Rendering/Core/ScalarBarActor.js +267 -272
  334. package/Rendering/Core/Skybox.js +26 -24
  335. package/Rendering/Core/SphereMapper.js +22 -12
  336. package/Rendering/Core/StickMapper.js +22 -12
  337. package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
  338. package/Rendering/Core/SurfaceLICInterface.js +13 -9
  339. package/Rendering/Core/SurfaceLICMapper.js +23 -15
  340. package/Rendering/Core/Texture.js +99 -141
  341. package/Rendering/Core/Viewport.js +60 -88
  342. package/Rendering/Core/Volume.js +55 -77
  343. package/Rendering/Core/VolumeMapper/Constants.js +4 -4
  344. package/Rendering/Core/VolumeMapper.js +59 -91
  345. package/Rendering/Core/VolumeProperty/Constants.js +4 -4
  346. package/Rendering/Core/VolumeProperty.js +78 -115
  347. package/Rendering/Core.js +47 -49
  348. package/Rendering/Misc/CanvasView.js +62 -61
  349. package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
  350. package/Rendering/Misc/GenericRenderWindow.js +48 -37
  351. package/Rendering/Misc/RemoteView.js +86 -80
  352. package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
  353. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
  354. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
  355. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
  356. package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
  357. package/Rendering/Misc/TextureLODsDownloader.js +72 -74
  358. package/Rendering/Misc.js +7 -7
  359. package/Rendering/OpenGL/Actor.js +57 -68
  360. package/Rendering/OpenGL/Actor2D.js +56 -56
  361. package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
  362. package/Rendering/OpenGL/BufferObject.js +50 -65
  363. package/Rendering/OpenGL/Camera.js +35 -29
  364. package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
  365. package/Rendering/OpenGL/Convolution2DPass.js +87 -81
  366. package/Rendering/OpenGL/CubeAxesActor.js +28 -21
  367. package/Rendering/OpenGL/ForwardPass.js +53 -64
  368. package/Rendering/OpenGL/Framebuffer.js +61 -101
  369. package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
  370. package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
  371. package/Rendering/OpenGL/HardwareSelector.js +272 -397
  372. package/Rendering/OpenGL/Helper.js +58 -73
  373. package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
  374. package/Rendering/OpenGL/ImageMapper.js +268 -361
  375. package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
  376. package/Rendering/OpenGL/ImageSlice.js +48 -54
  377. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
  378. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
  379. package/Rendering/OpenGL/PolyDataMapper.js +358 -492
  380. package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
  381. package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
  382. package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
  383. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
  384. package/Rendering/OpenGL/RenderWindow.js +356 -510
  385. package/Rendering/OpenGL/Renderer.js +77 -89
  386. package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
  387. package/Rendering/OpenGL/ScalarBarActor.js +28 -21
  388. package/Rendering/OpenGL/Shader.js +37 -31
  389. package/Rendering/OpenGL/ShaderCache.js +67 -74
  390. package/Rendering/OpenGL/ShaderProgram.js +136 -248
  391. package/Rendering/OpenGL/Skybox.js +99 -60
  392. package/Rendering/OpenGL/SphereMapper.js +94 -108
  393. package/Rendering/OpenGL/StickMapper.js +110 -114
  394. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
  395. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
  396. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
  397. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
  398. package/Rendering/OpenGL/SurfaceLIC.js +2 -2
  399. package/Rendering/OpenGL/Texture/Constants.js +4 -4
  400. package/Rendering/OpenGL/Texture.js +444 -609
  401. package/Rendering/OpenGL/TextureUnitManager.js +47 -43
  402. package/Rendering/OpenGL/VertexArrayObject.js +92 -131
  403. package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
  404. package/Rendering/OpenGL/Volume.js +38 -34
  405. package/Rendering/OpenGL/VolumeMapper.js +437 -547
  406. package/Rendering/OpenGL.js +28 -28
  407. package/Rendering/SceneGraph/RenderPass.js +34 -31
  408. package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
  409. package/Rendering/SceneGraph/ViewNode.js +82 -111
  410. package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
  411. package/Rendering/SceneGraph.js +4 -4
  412. package/Rendering/WebGPU/Actor.js +49 -49
  413. package/Rendering/WebGPU/Actor2D.js +45 -44
  414. package/Rendering/WebGPU/BindGroup.js +43 -50
  415. package/Rendering/WebGPU/Buffer.js +41 -50
  416. package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
  417. package/Rendering/WebGPU/BufferManager.js +111 -141
  418. package/Rendering/WebGPU/Camera.js +65 -67
  419. package/Rendering/WebGPU/CellArrayMapper.js +621 -388
  420. package/Rendering/WebGPU/CubeAxesActor.js +28 -19
  421. package/Rendering/WebGPU/Device.js +78 -133
  422. package/Rendering/WebGPU/ForwardPass.js +75 -72
  423. package/Rendering/WebGPU/FullScreenQuad.js +25 -18
  424. package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
  425. package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
  426. package/Rendering/WebGPU/HardwareSelector.js +200 -276
  427. package/Rendering/WebGPU/ImageMapper.js +180 -171
  428. package/Rendering/WebGPU/ImageSlice.js +45 -44
  429. package/Rendering/WebGPU/IndexBuffer.js +166 -200
  430. package/Rendering/WebGPU/OpaquePass.js +37 -36
  431. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
  432. package/Rendering/WebGPU/Pipeline.js +37 -51
  433. package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
  434. package/Rendering/WebGPU/PolyDataMapper.js +50 -53
  435. package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
  436. package/Rendering/WebGPU/RenderEncoder.js +68 -88
  437. package/Rendering/WebGPU/RenderWindow.js +262 -376
  438. package/Rendering/WebGPU/Renderer.js +224 -208
  439. package/Rendering/WebGPU/Sampler.js +27 -21
  440. package/Rendering/WebGPU/ScalarBarActor.js +28 -19
  441. package/Rendering/WebGPU/ShaderCache.js +43 -41
  442. package/Rendering/WebGPU/ShaderDescription.js +52 -59
  443. package/Rendering/WebGPU/ShaderModule.js +26 -17
  444. package/Rendering/WebGPU/SimpleMapper.js +185 -121
  445. package/Rendering/WebGPU/SphereMapper.js +200 -130
  446. package/Rendering/WebGPU/StickMapper.js +289 -152
  447. package/Rendering/WebGPU/StorageBuffer.js +100 -115
  448. package/Rendering/WebGPU/Texture.js +79 -99
  449. package/Rendering/WebGPU/TextureManager.js +52 -54
  450. package/Rendering/WebGPU/TextureView.js +40 -43
  451. package/Rendering/WebGPU/Types.js +53 -70
  452. package/Rendering/WebGPU/UniformBuffer.js +158 -184
  453. package/Rendering/WebGPU/VertexInput.js +64 -90
  454. package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
  455. package/Rendering/WebGPU/Volume.js +52 -51
  456. package/Rendering/WebGPU/VolumePass.js +218 -239
  457. package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
  458. package/Rendering/WebGPU.js +1 -1
  459. package/Rendering/index.js +5 -5
  460. package/Widgets/Core/AbstractWidget/Constants.js +2 -2
  461. package/Widgets/Core/AbstractWidget.js +49 -58
  462. package/Widgets/Core/AbstractWidgetFactory.js +101 -122
  463. package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
  464. package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
  465. package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
  466. package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
  467. package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
  468. package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
  469. package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
  470. package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
  471. package/Widgets/Core/StateBuilder/originMixin.js +25 -32
  472. package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
  473. package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
  474. package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
  475. package/Widgets/Core/StateBuilder/textMixin.js +10 -6
  476. package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
  477. package/Widgets/Core/StateBuilder.js +120 -149
  478. package/Widgets/Core/WidgetManager/Constants.js +7 -7
  479. package/Widgets/Core/WidgetManager.js +249 -421
  480. package/Widgets/Core/WidgetState.js +48 -57
  481. package/Widgets/Core.js +5 -5
  482. package/Widgets/Manipulators/AbstractManipulator.js +20 -14
  483. package/Widgets/Manipulators/CPRManipulator.js +55 -71
  484. package/Widgets/Manipulators/LineManipulator.js +31 -28
  485. package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
  486. package/Widgets/Manipulators/PickerManipulator.js +65 -0
  487. package/Widgets/Manipulators/PlaneManipulator.js +26 -23
  488. package/Widgets/Manipulators/TrackballManipulator.js +39 -35
  489. package/Widgets/Manipulators.js +4 -2
  490. package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
  491. package/Widgets/Representations/CircleContextRepresentation.js +44 -38
  492. package/Widgets/Representations/ContextRepresentation.js +17 -14
  493. package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
  494. package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
  495. package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
  496. package/Widgets/Representations/GlyphRepresentation.js +107 -152
  497. package/Widgets/Representations/HandleRepresentation.js +17 -14
  498. package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
  499. package/Widgets/Representations/LineHandleRepresentation.js +44 -41
  500. package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
  501. package/Widgets/Representations/PolyLineRepresentation.js +60 -75
  502. package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
  503. package/Widgets/Representations/SphereContextRepresentation.js +19 -27
  504. package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
  505. package/Widgets/Representations/SplineContextRepresentation.js +46 -70
  506. package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
  507. package/Widgets/Representations/WidgetRepresentation.js +99 -134
  508. package/Widgets/Representations.js +13 -13
  509. package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
  510. package/Widgets/Widgets3D/AngleWidget.js +41 -39
  511. package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
  512. package/Widgets/Widgets3D/DistanceWidget.js +38 -36
  513. package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
  514. package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
  515. package/Widgets/Widgets3D/EllipseWidget.js +37 -26
  516. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
  517. package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
  518. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
  519. package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
  520. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
  521. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
  522. package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
  523. package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
  524. package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
  525. package/Widgets/Widgets3D/LabelWidget.js +31 -25
  526. package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
  527. package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
  528. package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
  529. package/Widgets/Widgets3D/LineWidget/state.js +2 -1
  530. package/Widgets/Widgets3D/LineWidget.js +39 -35
  531. package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
  532. package/Widgets/Widgets3D/PaintWidget.js +39 -37
  533. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
  534. package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
  535. package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
  536. package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
  537. package/Widgets/Widgets3D/RectangleWidget.js +37 -25
  538. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
  539. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +134 -210
  540. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  541. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +90 -117
  542. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
  543. package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
  544. package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
  545. package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
  546. package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
  547. package/Widgets/Widgets3D/SeedWidget.js +43 -0
  548. package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
  549. package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
  550. package/Widgets/Widgets3D/ShapeWidget.js +24 -27
  551. package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
  552. package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
  553. package/Widgets/Widgets3D/SphereWidget.js +34 -44
  554. package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
  555. package/Widgets/Widgets3D/SplineWidget.js +43 -39
  556. package/Widgets/Widgets3D.js +15 -15
  557. package/Widgets/index.js +4 -4
  558. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
  559. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  560. package/favicon.js +5 -6
  561. package/index.d.ts +4 -2
  562. package/index.js +4 -3
  563. package/macros.js +4 -1931
  564. package/macros2.js +1684 -0
  565. package/package.json +6 -6
  566. package/vtk.js +18 -31
@@ -1,4 +1,4 @@
1
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
2
2
  import vtkBoundingBox from '../../Common/DataModel/BoundingBox.js';
3
3
  import vtkDataArray from '../../Common/Core/DataArray.js';
4
4
  import { f as vtkMath } from '../../Common/Core/Math/index.js';
@@ -7,113 +7,110 @@ import vtkPoints from '../../Common/Core/Points.js';
7
7
  import vtkPolyData from '../../Common/DataModel/PolyData.js';
8
8
  import vtkTriangle from '../../Common/DataModel/Triangle.js';
9
9
 
10
- var VertexType = {
10
+ const VertexType = {
11
11
  VTK_SIMPLE_VERTEX: 0,
12
12
  VTK_FIXED_VERTEX: 1,
13
13
  VTK_FEATURE_EDGE_VERTEX: 2,
14
14
  VTK_BOUNDARY_EDGE_VERTEX: 3
15
- }; // ----------------------------------------------------------------------------
15
+ };
16
+
17
+ // ----------------------------------------------------------------------------
16
18
  // vtkWindowedSincPolyDataFilter methods
17
19
  // ----------------------------------------------------------------------------
18
20
 
19
21
  function vtkWindowedSincPolyDataFilter(publicAPI, model) {
20
22
  // Set our className
21
23
  model.classHierarchy.push('vtkWindowedSincPolyDataFilter');
22
-
23
- publicAPI.vtkWindowedSincPolyDataFilterExecute = function (inPts, inputPolyData, output) {
24
+ publicAPI.vtkWindowedSincPolyDataFilterExecute = (inPts, inputPolyData, output) => {
24
25
  if (!inPts || model.numberOfIterations <= 0) {
25
26
  return inPts;
26
27
  }
27
-
28
- var inPtsData = inPts.getData();
29
- var inVerts = inputPolyData.getVerts().getData();
30
- var inLines = inputPolyData.getLines().getData();
31
- var inPolys = inputPolyData.getPolys().getData();
32
- var inStrips = inputPolyData.getStrips().getData();
33
- var cosFeatureAngle = Math.cos(vtkMath.radiansFromDegrees(model.featureAngle));
34
- var cosEdgeAngle = Math.cos(vtkMath.radiansFromDegrees(model.edgeAngle));
35
- var numPts = inPts.getNumberOfPoints(); // Perform topological analysis. What we're going to do is build a connectivity
28
+ const inPtsData = inPts.getData();
29
+ const inVerts = inputPolyData.getVerts().getData();
30
+ const inLines = inputPolyData.getLines().getData();
31
+ const inPolys = inputPolyData.getPolys().getData();
32
+ const inStrips = inputPolyData.getStrips().getData();
33
+ const cosFeatureAngle = Math.cos(vtkMath.radiansFromDegrees(model.featureAngle));
34
+ const cosEdgeAngle = Math.cos(vtkMath.radiansFromDegrees(model.edgeAngle));
35
+ const numPts = inPts.getNumberOfPoints();
36
+
37
+ // Perform topological analysis. What we're going to do is build a connectivity
36
38
  // array of connected vertices. The outcome will be one of three
37
39
  // classifications for a vertex: VTK_SIMPLE_VERTEX, VTK_FIXED_VERTEX. or
38
40
  // VTK_EDGE_VERTEX. Simple vertices are smoothed using all connected
39
41
  // vertices. FIXED vertices are never smoothed. Edge vertices are smoothed
40
42
  // using a subset of the attached vertices.
41
-
42
- var verts = new Array(numPts);
43
-
44
- for (var i = 0; i < numPts; ++i) {
43
+ const verts = new Array(numPts);
44
+ for (let i = 0; i < numPts; ++i) {
45
45
  verts[i] = {
46
46
  type: VertexType.VTK_SIMPLE_VERTEX,
47
47
  edges: null
48
48
  };
49
- } // check vertices first. Vertices are never smoothed_--------------
50
-
51
-
52
- var npts = 0;
53
-
54
- for (var _i = 0; _i < inVerts.length; _i += npts + 1) {
55
- npts = inVerts[_i];
56
- var pts = inVerts.slice(_i + 1, _i + 1 + npts);
49
+ }
57
50
 
58
- for (var j = 0; j < pts.length; ++j) {
51
+ // check vertices first. Vertices are never smoothed_--------------
52
+ let npts = 0;
53
+ for (let i = 0; i < inVerts.length; i += npts + 1) {
54
+ npts = inVerts[i];
55
+ const pts = inVerts.slice(i + 1, i + 1 + npts);
56
+ for (let j = 0; j < pts.length; ++j) {
59
57
  verts[pts[j]].type = VertexType.VTK_FIXED_VERTEX;
60
58
  }
61
- } // now check lines. Only manifold lines can be smoothed------------
62
-
59
+ }
63
60
 
64
- for (var _i2 = 0; _i2 < inLines.length; _i2 += npts + 1) {
65
- npts = inLines[_i2];
61
+ // now check lines. Only manifold lines can be smoothed------------
62
+ for (let i = 0; i < inLines.length; i += npts + 1) {
63
+ npts = inLines[i];
64
+ const pts = inLines.slice(i + 1, i + 1 + npts);
66
65
 
67
- var _pts = inLines.slice(_i2 + 1, _i2 + 1 + npts); // Check for closed loop which are treated specially. Basically the
66
+ // Check for closed loop which are treated specially. Basically the
68
67
  // last point is ignored (set to fixed).
69
-
70
-
71
- var closedLoop = _pts[0] === _pts[npts - 1] && npts > 3;
72
-
73
- for (var _j = 0; _j < npts; ++_j) {
74
- if (verts[_pts[_j]].type === VertexType.VTK_SIMPLE_VERTEX) {
68
+ const closedLoop = pts[0] === pts[npts - 1] && npts > 3;
69
+ for (let j = 0; j < npts; ++j) {
70
+ if (verts[pts[j]].type === VertexType.VTK_SIMPLE_VERTEX) {
75
71
  // First point
76
- if (_j === 0) {
72
+ if (j === 0) {
77
73
  if (!closedLoop) {
78
- verts[_pts[0]].type = VertexType.VTK_FIXED_VERTEX;
74
+ verts[pts[0]].type = VertexType.VTK_FIXED_VERTEX;
79
75
  } else {
80
- verts[_pts[0]].type = VertexType.VTK_FEATURE_EDGE_VERTEX;
81
- verts[_pts[0]].edges = [_pts[npts - 2], _pts[1]];
76
+ verts[pts[0]].type = VertexType.VTK_FEATURE_EDGE_VERTEX;
77
+ verts[pts[0]].edges = [pts[npts - 2], pts[1]];
82
78
  }
83
- } // Last point
84
- else if (_j === npts - 1 && !closedLoop) {
85
- verts[_pts[_j]].type = VertexType.VTK_FIXED_VERTEX;
86
- } // In between point // is edge vertex (unless already edge vertex!)
79
+ }
80
+ // Last point
81
+ else if (j === npts - 1 && !closedLoop) {
82
+ verts[pts[j]].type = VertexType.VTK_FIXED_VERTEX;
83
+ }
84
+ // In between point // is edge vertex (unless already edge vertex!)
87
85
  else {
88
- verts[_pts[_j]].type = VertexType.VTK_FEATURE_EDGE_VERTEX;
89
- verts[_pts[_j]].edges = [_pts[_j - 1], _pts[closedLoop && _j === npts - 2 ? 0 : _j + 1]];
86
+ verts[pts[j]].type = VertexType.VTK_FEATURE_EDGE_VERTEX;
87
+ verts[pts[j]].edges = [pts[j - 1], pts[closedLoop && j === npts - 2 ? 0 : j + 1]];
90
88
  }
91
89
  } // if simple vertex
90
+
92
91
  // Vertex has been visited before, need to fix it. Special case
93
92
  // when working on closed loop.
94
- else if (verts[_pts[_j]].type === VertexType.VTK_FEATURE_EDGE_VERTEX && !(closedLoop && _j === npts - 1)) {
95
- verts[_pts[_j]].type = VertexType.VTK_FIXED_VERTEX;
96
- verts[_pts[_j]].edges = null;
93
+ else if (verts[pts[j]].type === VertexType.VTK_FEATURE_EDGE_VERTEX && !(closedLoop && j === npts - 1)) {
94
+ verts[pts[j]].type = VertexType.VTK_FIXED_VERTEX;
95
+ verts[pts[j]].edges = null;
97
96
  }
98
97
  } // for all points in this line
99
-
100
98
  } // for all lines
101
- // now polygons and triangle strips-------------------------------
102
-
103
-
104
- var numPolys = inPolys.length;
105
- var numStrips = inStrips.length;
106
99
 
100
+ // now polygons and triangle strips-------------------------------
101
+ const numPolys = inPolys.length;
102
+ const numStrips = inStrips.length;
107
103
  if (numPolys > 0 || numStrips > 0) {
108
- var inMesh = vtkPolyData.newInstance();
104
+ const inMesh = vtkPolyData.newInstance();
109
105
  inMesh.setPoints(inputPolyData.getPoints());
110
106
  inMesh.setPolys(inputPolyData.getPolys());
111
- var mesh = inMesh;
112
- var neighbors = [];
113
- var nei = 0; // const numNeiPts = 0;
107
+ const mesh = inMesh;
108
+ let neighbors = [];
109
+ let nei = 0;
110
+ // const numNeiPts = 0;
111
+ const normal = [];
112
+ const neiNormal = [];
114
113
 
115
- var normal = [];
116
- var neiNormal = [];
117
114
  /* TODO: Add vtkTriangleFilter
118
115
  if ( (numStrips = inputPolyData.getStrips().GetNumberOfCells()) > 0 )
119
116
  { // convert data to triangles
@@ -126,64 +123,51 @@ function vtkWindowedSincPolyDataFilter(publicAPI, model) {
126
123
  */
127
124
 
128
125
  mesh.buildLinks(); // to do neighborhood searching
129
-
130
- var polys = mesh.getPolys().getData();
131
- var cellId = 0;
132
-
133
- for (var _c = 0; _c < polys.length; _c += npts + 1, ++cellId) {
134
- npts = polys[_c];
135
-
136
- var _pts2 = polys.slice(_c + 1, _c + 1 + npts);
137
-
138
- for (var _i3 = 0; _i3 < npts; ++_i3) {
139
- var p1 = _pts2[_i3];
140
- var p2 = _pts2[(_i3 + 1) % npts];
141
-
126
+ const polys = mesh.getPolys().getData();
127
+ let cellId = 0;
128
+ for (let c = 0; c < polys.length; c += npts + 1, ++cellId) {
129
+ npts = polys[c];
130
+ const pts = polys.slice(c + 1, c + 1 + npts);
131
+ for (let i = 0; i < npts; ++i) {
132
+ const p1 = pts[i];
133
+ const p2 = pts[(i + 1) % npts];
142
134
  if (verts[p1].edges === null) {
143
135
  verts[p1].edges = [];
144
136
  }
145
-
146
137
  if (verts[p2].edges == null) {
147
138
  verts[p2].edges = [];
148
139
  }
149
-
150
140
  neighbors = mesh.getCellEdgeNeighbors(cellId, p1, p2);
151
- var numNei = neighbors.length; // neighbors->GetNumberOfIds();
152
-
153
- var edge = VertexType.VTK_SIMPLE_VERTEX;
141
+ const numNei = neighbors.length; // neighbors->GetNumberOfIds();
154
142
 
143
+ let edge = VertexType.VTK_SIMPLE_VERTEX;
155
144
  if (numNei === 0) {
156
145
  edge = VertexType.VTK_BOUNDARY_EDGE_VERTEX;
157
146
  } else if (numNei >= 2) {
158
147
  // non-manifold case, check nonmanifold smoothing state
159
148
  if (!model.nonManifoldSmoothing) {
160
149
  // check to make sure that this edge hasn't been marked already
161
- var _j2 = 0;
162
-
163
- for (; _j2 < numNei; ++_j2) {
164
- if (neighbors[_j2] < cellId) {
150
+ let j = 0;
151
+ for (; j < numNei; ++j) {
152
+ if (neighbors[j] < cellId) {
165
153
  break;
166
154
  }
167
155
  }
168
-
169
- if (_j2 >= numNei) {
156
+ if (j >= numNei) {
170
157
  edge = VertexType.VTK_FEATURE_EDGE_VERTEX;
171
158
  }
172
159
  }
173
160
  /* eslint-disable no-cond-assign */
174
-
175
161
  } else if (numNei === 1 && (nei = neighbors[0]) > cellId) {
176
162
  if (model.featureEdgeSmoothing) {
177
163
  // TODO: support polygons
178
164
  // vtkPolygon::ComputeNormal(inPts,npts,pts,normal);
179
- vtkTriangle.computeNormal(inPts.getPoint(_pts2[0]), inPts.getPoint(_pts2[1]), inPts.getPoint(_pts2[2]), normal);
180
-
181
- var _mesh$getCellPoints = mesh.getCellPoints(nei),
182
- cellPointIds = _mesh$getCellPoints.cellPointIds; // vtkPolygon::ComputeNormal(inPts,numNeiPts,neiPts,neiNormal);
183
-
184
-
165
+ vtkTriangle.computeNormal(inPts.getPoint(pts[0]), inPts.getPoint(pts[1]), inPts.getPoint(pts[2]), normal);
166
+ const {
167
+ cellPointIds
168
+ } = mesh.getCellPoints(nei);
169
+ // vtkPolygon::ComputeNormal(inPts,numNeiPts,neiPts,neiNormal);
185
170
  vtkTriangle.computeNormal(inPts.getPoint(cellPointIds[0]), inPts.getPoint(cellPointIds[1]), inPts.getPoint(cellPointIds[2]), neiNormal);
186
-
187
171
  if (vtkMath.dot(normal, neiNormal) <= cosFeatureAngle) {
188
172
  edge = VertexType.VTK_FEATURE_EDGE_VERTEX;
189
173
  }
@@ -193,24 +177,20 @@ function vtkWindowedSincPolyDataFilter(publicAPI, model) {
193
177
  /* eslint-disable no-continue */
194
178
  continue;
195
179
  }
196
-
197
180
  if (edge && verts[p1].type === VertexType.VTK_SIMPLE_VERTEX) {
198
181
  verts[p1].edges = [p2];
199
182
  verts[p1].type = edge;
200
183
  } else if (edge && verts[p1].type === VertexType.VTK_BOUNDARY_EDGE_VERTEX || edge && verts[p1].type === VertexType.VTK_FEATURE_EDGE_VERTEX || !edge && verts[p1].type === VertexType.VTK_SIMPLE_VERTEX) {
201
184
  verts[p1].edges.push(p2);
202
-
203
185
  if (verts[p1].type && edge === VertexType.VTK_BOUNDARY_EDGE_VERTEX) {
204
186
  verts[p1].type = VertexType.VTK_BOUNDARY_EDGE_VERTEX;
205
187
  }
206
188
  }
207
-
208
189
  if (edge && verts[p2].type === VertexType.VTK_SIMPLE_VERTEX) {
209
190
  verts[p2].edges = [p1];
210
191
  verts[p2].type = edge;
211
192
  } else if (edge && verts[p2].type === VertexType.VTK_BOUNDARY_EDGE_VERTEX || edge && verts[p2].type === VertexType.VTK_FEATURE_EDGE_VERTEX || !edge && verts[p2].type === VertexType.VTK_SIMPLE_VERTEX) {
212
193
  verts[p2].edges.push(p1);
213
-
214
194
  if (verts[p2].type && edge === VertexType.VTK_BOUNDARY_EDGE_VERTEX) {
215
195
  verts[p2].type = VertexType.VTK_BOUNDARY_EDGE_VERTEX;
216
196
  }
@@ -218,49 +198,42 @@ function vtkWindowedSincPolyDataFilter(publicAPI, model) {
218
198
  }
219
199
  }
220
200
  } // if strips or polys
221
-
222
- for (var _i4 = 0; _i4 < numPts; ++_i4) {
223
- if (verts[_i4].type === VertexType.VTK_SIMPLE_VERTEX) ; else if (verts[_i4].type === VertexType.VTK_FIXED_VERTEX) ; else if (verts[_i4].type === VertexType.VTK_FEATURE_EDGE_VERTEX || verts[_i4].type === VertexType.VTK_BOUNDARY_EDGE_VERTEX) {
201
+ for (let i = 0; i < numPts; ++i) {
202
+ if (verts[i].type === VertexType.VTK_SIMPLE_VERTEX) ; else if (verts[i].type === VertexType.VTK_FIXED_VERTEX) ; else if (verts[i].type === VertexType.VTK_FEATURE_EDGE_VERTEX || verts[i].type === VertexType.VTK_BOUNDARY_EDGE_VERTEX) {
224
203
  // see how many edges; if two, what the angle is
225
- if (!model.boundarySmoothing && verts[_i4].type === VertexType.VTK_BOUNDARY_EDGE_VERTEX) {
226
- verts[_i4].type = VertexType.VTK_FIXED_VERTEX;
227
- } else if ((npts = verts[_i4].edges.length) !== 2) {
204
+
205
+ if (!model.boundarySmoothing && verts[i].type === VertexType.VTK_BOUNDARY_EDGE_VERTEX) {
206
+ verts[i].type = VertexType.VTK_FIXED_VERTEX;
207
+ } else if ((npts = verts[i].edges.length) !== 2) {
228
208
  // can only smooth edges on 2-manifold surfaces
229
- verts[_i4].type = VertexType.VTK_FIXED_VERTEX;
209
+ verts[i].type = VertexType.VTK_FIXED_VERTEX;
230
210
  } // check angle between edges
231
211
  else {
232
- var _x = inPts.getPoint(verts[_i4].edges[0]);
233
-
234
- var _x2 = inPts.getPoint(_i4);
235
-
236
- var x3 = inPts.getPoint(verts[_i4].edges[1]);
237
- var l1 = [0, 0, 0];
238
- var l2 = [0, 0, 0];
239
-
240
- for (var k = 0; k < 3; ++k) {
241
- l1[k] = _x2[k] - _x[k];
242
- l2[k] = x3[k] - _x2[k];
212
+ const x1 = inPts.getPoint(verts[i].edges[0]);
213
+ const x2 = inPts.getPoint(i);
214
+ const x3 = inPts.getPoint(verts[i].edges[1]);
215
+ const l1 = [0, 0, 0];
216
+ const l2 = [0, 0, 0];
217
+ for (let k = 0; k < 3; ++k) {
218
+ l1[k] = x2[k] - x1[k];
219
+ l2[k] = x3[k] - x2[k];
243
220
  }
244
-
245
221
  if (vtkMath.normalize(l1) >= 0.0 && vtkMath.normalize(l2) >= 0.0 && vtkMath.dot(l1, l2) < cosEdgeAngle) {
246
- verts[_i4].type = VertexType.VTK_FIXED_VERTEX;
247
- } else if (verts[_i4].type === VertexType.VTK_FEATURE_EDGE_VERTEX) ; else ;
222
+ verts[i].type = VertexType.VTK_FIXED_VERTEX;
223
+ } else if (verts[i].type === VertexType.VTK_FEATURE_EDGE_VERTEX) ; else ;
248
224
  } // if along edge
249
-
250
225
  } // if edge vertex
251
-
252
226
  } // for all points
227
+
253
228
  // Perform Windowed Sinc function interpolation
254
229
  //
255
230
  // console.log('Beginning smoothing iterations...');
256
231
  // need 4 vectors of points
257
-
258
-
259
- var zero = 0;
260
- var one = 1;
261
- var two = 2;
262
- var three = 3;
263
- var newPts = [];
232
+ let zero = 0;
233
+ let one = 1;
234
+ let two = 2;
235
+ const three = 3;
236
+ const newPts = [];
264
237
  newPts.push(vtkPoints.newInstance());
265
238
  newPts[zero].setNumberOfPoints(numPts);
266
239
  newPts.push(vtkPoints.newInstance());
@@ -268,106 +241,99 @@ function vtkWindowedSincPolyDataFilter(publicAPI, model) {
268
241
  newPts.push(vtkPoints.newInstance());
269
242
  newPts[two].setNumberOfPoints(numPts);
270
243
  newPts.push(vtkPoints.newInstance());
271
- newPts[three].setNumberOfPoints(numPts); // Get the center and length of the input dataset
272
-
273
- var inCenter = vtkBoundingBox.getCenter(inputPolyData.getBounds());
274
- var inLength = vtkBoundingBox.getDiagonalLength(inputPolyData.getBounds());
244
+ newPts[three].setNumberOfPoints(numPts);
275
245
 
246
+ // Get the center and length of the input dataset
247
+ const inCenter = vtkBoundingBox.getCenter(inputPolyData.getBounds());
248
+ const inLength = vtkBoundingBox.getDiagonalLength(inputPolyData.getBounds());
276
249
  if (!model.normalizeCoordinates) {
277
250
  // initialize to old coordinates
278
251
  // for (let i = 0; i < numPts; ++i) {
279
252
  // newPts[zero].setPoint(i, inPts.subarray(i));
280
253
  // }
281
- var copy = macro.newTypedArray(newPts[zero].getDataType(), inPtsData);
254
+ const copy = macro.newTypedArray(newPts[zero].getDataType(), inPtsData);
282
255
  newPts[zero].setData(copy, 3);
283
256
  } else {
284
257
  // center the data and scale to be within unit cube [-1, 1]
285
258
  // initialize to old coordinates
286
- var normalizedPoint = [0, 0, 0];
287
-
288
- for (var _i5 = 0; _i5 < numPts; ++_i5) {
289
- var _newPts$zero;
290
-
291
- inPts.getPoint(_i5, normalizedPoint);
259
+ const normalizedPoint = [0, 0, 0];
260
+ for (let i = 0; i < numPts; ++i) {
261
+ inPts.getPoint(i, normalizedPoint);
292
262
  normalizedPoint[0] = (normalizedPoint[0] - inCenter[0]) / inLength;
293
263
  normalizedPoint[1] = (normalizedPoint[1] - inCenter[1]) / inLength;
294
264
  normalizedPoint[2] = (normalizedPoint[2] - inCenter[2]) / inLength;
295
-
296
- (_newPts$zero = newPts[zero]).setPoint.apply(_newPts$zero, [_i5].concat(normalizedPoint));
265
+ newPts[zero].setPoint(i, ...normalizedPoint);
297
266
  }
298
- } // Smooth with a low pass filter defined as a windowed sinc function.
267
+ }
268
+
269
+ // Smooth with a low pass filter defined as a windowed sinc function.
299
270
  // Taubin describes this methodology is the IBM tech report RC-20404
300
271
  // (#90237, dated 3/12/96) "Optimal Surface Smoothing as Filter Design"
301
272
  // G. Taubin, T. Zhang and G. Golub. (Zhang and Golub are at Stanford
302
273
  // University)
274
+
303
275
  // The formulas here follow the notation of Taubin's TR, i.e.
304
276
  // newPts[zero], newPts[one], etc.
305
- // calculate weights and filter coefficients
306
277
 
278
+ // calculate weights and filter coefficients
279
+ const kPb = model.passBand; // reasonable default for kPb in [0, 2] is 0.1
280
+ const thetaPb = Math.acos(1.0 - 0.5 * kPb); // thetaPb in [0, M_PI/2]
307
281
 
308
- var kPb = model.passBand; // reasonable default for kPb in [0, 2] is 0.1
309
-
310
- var thetaPb = Math.acos(1.0 - 0.5 * kPb); // thetaPb in [0, M_PI/2]
311
282
  // vtkDebugMacro(<< "thetaPb = " << thetaPb);
312
283
 
313
- var w = new Array(model.numberOfIterations + 1);
314
- var c = new Array(model.numberOfIterations + 1);
315
- var cprime = new Array(model.numberOfIterations + 1);
316
- var zerovector = [0, 0, 0]; // Calculate the weights and the Chebychev coefficients c.
284
+ const w = new Array(model.numberOfIterations + 1);
285
+ const c = new Array(model.numberOfIterations + 1);
286
+ const cprime = new Array(model.numberOfIterations + 1);
287
+ const zerovector = [0, 0, 0];
288
+
289
+ // Calculate the weights and the Chebychev coefficients c.
317
290
  //
291
+
318
292
  // Windowed sinc function weights. This is for a Hamming window. Other
319
293
  // windowing function could be implemented here.
294
+ for (let i = 0; i <= model.numberOfIterations; ++i) {
295
+ w[i] = 0.54 + 0.46 * Math.cos(i * Math.PI / (model.numberOfIterations + 1));
296
+ }
320
297
 
321
- for (var _i6 = 0; _i6 <= model.numberOfIterations; ++_i6) {
322
- w[_i6] = 0.54 + 0.46 * Math.cos(_i6 * Math.PI / (model.numberOfIterations + 1));
323
- } // Calculate the optimal sigma (offset or fudge factor for the filter).
298
+ // Calculate the optimal sigma (offset or fudge factor for the filter).
324
299
  // This is a Newton-Raphson Search.
325
-
326
-
327
- var fKpb = 0;
328
- var fPrimeKpb = 0;
329
- var done = false;
330
- var sigma = 0.0;
331
-
332
- for (var _j3 = 0; !done && _j3 < 500; ++_j3) {
300
+ let fKpb = 0;
301
+ let fPrimeKpb = 0;
302
+ let done = false;
303
+ let sigma = 0.0;
304
+ for (let j = 0; !done && j < 500; ++j) {
333
305
  // Chebyshev coefficients
334
306
  c[0] = w[0] * (thetaPb + sigma) / Math.PI;
307
+ for (let i = 1; i <= model.numberOfIterations; ++i) {
308
+ c[i] = 2.0 * w[i] * Math.sin(i * (thetaPb + sigma)) / (i * Math.PI);
309
+ }
335
310
 
336
- for (var _i7 = 1; _i7 <= model.numberOfIterations; ++_i7) {
337
- c[_i7] = 2.0 * w[_i7] * Math.sin(_i7 * (thetaPb + sigma)) / (_i7 * Math.PI);
338
- } // calculate the Chebyshev coefficients for the derivative of the filter
339
-
340
-
311
+ // calculate the Chebyshev coefficients for the derivative of the filter
341
312
  cprime[model.numberOfIterations] = 0.0;
342
313
  cprime[model.numberOfIterations - 1] = 0.0;
343
-
344
314
  if (model.numberOfIterations > 1) {
345
315
  cprime[model.numberOfIterations - 2] = 2.0 * (model.numberOfIterations - 1) * c[model.numberOfIterations - 1];
346
316
  }
347
-
348
- for (var _i8 = model.numberOfIterations - 3; _i8 >= 0; --_i8) {
349
- cprime[_i8] = cprime[_i8 + 2] + 2.0 * (_i8 + 1) * c[_i8 + 1];
350
- } // Evaluate the filter and its derivative at kPb (note the discrepancy
317
+ for (let i = model.numberOfIterations - 3; i >= 0; --i) {
318
+ cprime[i] = cprime[i + 2] + 2.0 * (i + 1) * c[i + 1];
319
+ }
320
+ // Evaluate the filter and its derivative at kPb (note the discrepancy
351
321
  // of calculating the c's based on thetaPb + sigma and evaluating the
352
322
  // filter at kPb (which is equivalent to thetaPb)
353
-
354
-
355
323
  fKpb = 0.0;
356
324
  fPrimeKpb = 0.0;
357
325
  fKpb += c[0];
358
326
  fPrimeKpb += cprime[0];
359
-
360
- for (var _i9 = 1; _i9 <= model.numberOfIterations; ++_i9) {
361
- if (_i9 === 1) {
362
- fKpb += c[_i9] * (1.0 - 0.5 * kPb);
363
- fPrimeKpb += cprime[_i9] * (1.0 - 0.5 * kPb);
327
+ for (let i = 1; i <= model.numberOfIterations; ++i) {
328
+ if (i === 1) {
329
+ fKpb += c[i] * (1.0 - 0.5 * kPb);
330
+ fPrimeKpb += cprime[i] * (1.0 - 0.5 * kPb);
364
331
  } else {
365
- fKpb += c[_i9] * Math.cos(_i9 * Math.acos(1.0 - 0.5 * kPb));
366
- fPrimeKpb += cprime[_i9] * Math.cos(_i9 * Math.acos(1.0 - 0.5 * kPb));
332
+ fKpb += c[i] * Math.cos(i * Math.acos(1.0 - 0.5 * kPb));
333
+ fPrimeKpb += cprime[i] * Math.cos(i * Math.acos(1.0 - 0.5 * kPb));
367
334
  }
368
- } // if fKpb is not close enough to 1.0, then adjust sigma
369
-
370
-
335
+ }
336
+ // if fKpb is not close enough to 1.0, then adjust sigma
371
337
  if (model.numberOfIterations > 1) {
372
338
  if (Math.abs(fKpb - 1.0) >= 1e-3) {
373
339
  sigma -= (fKpb - 1.0) / fPrimeKpb; // Newton-Rhapson (want f=1)
@@ -381,220 +347,174 @@ function vtkWindowedSincPolyDataFilter(publicAPI, model) {
381
347
  sigma = 0.0;
382
348
  }
383
349
  }
384
-
385
350
  if (Math.abs(fKpb - 1.0) >= 1e-3) {
386
351
  console.log('An optimal offset for the smoothing filter could not be found. Unpredictable smoothing/shrinkage may result.');
387
352
  }
388
-
389
- var x = [0, 0, 0];
390
- var y = [0, 0, 0];
391
- var deltaX = [0, 0, 0];
392
- var xNew = [0, 0, 0];
393
- var x1 = [0, 0, 0];
394
- var x2 = [0, 0, 0]; // first iteration
395
-
396
- for (var _i10 = 0; _i10 < numPts; ++_i10) {
397
- if (verts[_i10].edges != null && (npts = verts[_i10].edges.length) > 0) {
398
- var _newPts$one, _newPts$three;
399
-
353
+ const x = [0, 0, 0];
354
+ const y = [0, 0, 0];
355
+ const deltaX = [0, 0, 0];
356
+ const xNew = [0, 0, 0];
357
+ const x1 = [0, 0, 0];
358
+ const x2 = [0, 0, 0];
359
+
360
+ // first iteration
361
+ for (let i = 0; i < numPts; ++i) {
362
+ if (verts[i].edges != null && (npts = verts[i].edges.length) > 0) {
400
363
  // point is allowed to move
401
- newPts[zero].getPoint(_i10, x); // use current points
402
-
364
+ newPts[zero].getPoint(i, x); // use current points
403
365
  deltaX[0] = 0.0;
404
366
  deltaX[1] = 0.0;
405
- deltaX[2] = 0.0; // calculate the negative of the laplacian
406
- // for all connected points
367
+ deltaX[2] = 0.0;
407
368
 
408
- for (var _j4 = 0; _j4 < npts; ++_j4) {
409
- newPts[zero].getPoint(verts[_i10].edges[_j4], y);
410
-
411
- for (var _k = 0; _k < 3; ++_k) {
412
- deltaX[_k] += (x[_k] - y[_k]) / npts;
369
+ // calculate the negative of the laplacian
370
+ // for all connected points
371
+ for (let j = 0; j < npts; ++j) {
372
+ newPts[zero].getPoint(verts[i].edges[j], y);
373
+ for (let k = 0; k < 3; ++k) {
374
+ deltaX[k] += (x[k] - y[k]) / npts;
413
375
  }
414
- } // newPts[one] = newPts[zero] - 0.5 newPts[one]
415
-
416
-
417
- for (var _k2 = 0; _k2 < 3; ++_k2) {
418
- deltaX[_k2] = x[_k2] - 0.5 * deltaX[_k2];
419
376
  }
420
-
421
- (_newPts$one = newPts[one]).setPoint.apply(_newPts$one, [_i10].concat(deltaX));
422
-
423
- if (verts[_i10].type === VertexType.VTK_FIXED_VERTEX) {
424
- newPts[zero].getPoint(_i10, deltaX);
377
+ // newPts[one] = newPts[zero] - 0.5 newPts[one]
378
+ for (let k = 0; k < 3; ++k) {
379
+ deltaX[k] = x[k] - 0.5 * deltaX[k];
380
+ }
381
+ newPts[one].setPoint(i, ...deltaX);
382
+ if (verts[i].type === VertexType.VTK_FIXED_VERTEX) {
383
+ newPts[zero].getPoint(i, deltaX);
425
384
  } else {
426
385
  // calculate newPts[three] = c0 newPts[zero] + c1 newPts[one]
427
- for (var _k3 = 0; _k3 < 3; ++_k3) {
428
- deltaX[_k3] = c[0] * x[_k3] + c[1] * deltaX[_k3];
386
+ for (let k = 0; k < 3; ++k) {
387
+ deltaX[k] = c[0] * x[k] + c[1] * deltaX[k];
429
388
  }
430
389
  }
431
-
432
- (_newPts$three = newPts[three]).setPoint.apply(_newPts$three, [_i10].concat(deltaX));
390
+ newPts[three].setPoint(i, ...deltaX);
433
391
  } // if can move point
434
392
  else {
435
- var _newPts$one2, _newPts$three2;
436
-
437
393
  // point is not allowed to move, just use the old point...
438
394
  // (zero out the Laplacian)
439
- (_newPts$one2 = newPts[one]).setPoint.apply(_newPts$one2, [_i10].concat(zerovector));
440
-
441
- newPts[zero].getPoint(_i10, deltaX);
442
-
443
- (_newPts$three2 = newPts[three]).setPoint.apply(_newPts$three2, [_i10].concat(deltaX));
395
+ newPts[one].setPoint(i, ...zerovector);
396
+ newPts[zero].getPoint(i, deltaX);
397
+ newPts[three].setPoint(i, ...deltaX);
444
398
  }
445
399
  } // for all points
446
- // for the rest of the iterations
447
-
448
-
449
- var pX0 = [0, 0, 0];
450
- var pX1 = [0, 0, 0];
451
- var pX3 = [0, 0, 0];
452
- var iterationNumber = 2;
453
400
 
401
+ // for the rest of the iterations
402
+ const pX0 = [0, 0, 0];
403
+ const pX1 = [0, 0, 0];
404
+ const pX3 = [0, 0, 0];
405
+ let iterationNumber = 2;
454
406
  for (; iterationNumber <= model.numberOfIterations; iterationNumber++) {
455
-
456
- for (var _i11 = 0; _i11 < numPts; ++_i11) {
457
- npts = verts[_i11].edges != null ? verts[_i11].edges.length : 0;
458
-
407
+ for (let i = 0; i < numPts; ++i) {
408
+ npts = verts[i].edges != null ? verts[i].edges.length : 0;
459
409
  if (npts > 0) {
460
- var _newPts$two;
461
-
462
410
  // point is allowed to move
463
- newPts[zero].getPoint(_i11, pX0); // use current points
464
-
465
- newPts[one].getPoint(_i11, pX1);
411
+ newPts[zero].getPoint(i, pX0); // use current points
412
+ newPts[one].getPoint(i, pX1);
466
413
  deltaX[0] = 0.0;
467
414
  deltaX[1] = 0.0;
468
- deltaX[2] = 0.0; // calculate the negative laplacian of x1
469
-
470
- for (var _j5 = 0; _j5 < npts; ++_j5) {
471
- newPts[one].getPoint(verts[_i11].edges[_j5], y);
415
+ deltaX[2] = 0.0;
472
416
 
473
- for (var _k4 = 0; _k4 < 3; ++_k4) {
474
- deltaX[_k4] += (pX1[_k4] - y[_k4]) / npts;
417
+ // calculate the negative laplacian of x1
418
+ for (let j = 0; j < npts; ++j) {
419
+ newPts[one].getPoint(verts[i].edges[j], y);
420
+ for (let k = 0; k < 3; ++k) {
421
+ deltaX[k] += (pX1[k] - y[k]) / npts;
475
422
  }
476
423
  } // for all connected points
477
- // Taubin: x2 = (x1 - x0) + (x1 - x2)
478
-
479
424
 
480
- for (var _k5 = 0; _k5 < 3; ++_k5) {
481
- deltaX[_k5] = pX1[_k5] - pX0[_k5] + pX1[_k5] - deltaX[_k5];
425
+ // Taubin: x2 = (x1 - x0) + (x1 - x2)
426
+ for (let k = 0; k < 3; ++k) {
427
+ deltaX[k] = pX1[k] - pX0[k] + pX1[k] - deltaX[k];
482
428
  }
429
+ newPts[two].setPoint(i, ...deltaX);
483
430
 
484
- (_newPts$two = newPts[two]).setPoint.apply(_newPts$two, [_i11].concat(deltaX)); // smooth the vertex (x3 = x3 + cj x2)
485
-
486
-
487
- newPts[three].getPoint(_i11, pX3);
488
-
489
- for (var _k6 = 0; _k6 < 3; ++_k6) {
490
- xNew[_k6] = pX3[_k6] + c[iterationNumber] * deltaX[_k6];
431
+ // smooth the vertex (x3 = x3 + cj x2)
432
+ newPts[three].getPoint(i, pX3);
433
+ for (let k = 0; k < 3; ++k) {
434
+ xNew[k] = pX3[k] + c[iterationNumber] * deltaX[k];
491
435
  }
492
-
493
- if (verts[_i11].type !== VertexType.VTK_FIXED_VERTEX) {
494
- var _newPts$three3;
495
-
496
- (_newPts$three3 = newPts[three]).setPoint.apply(_newPts$three3, [_i11].concat(xNew));
436
+ if (verts[i].type !== VertexType.VTK_FIXED_VERTEX) {
437
+ newPts[three].setPoint(i, ...xNew);
497
438
  }
498
439
  } // if can move point
499
440
  else {
500
- var _newPts$one3, _newPts$two2;
501
-
502
441
  // point is not allowed to move, just use the old point...
503
442
  // (zero out the Laplacian)
504
- (_newPts$one3 = newPts[one]).setPoint.apply(_newPts$one3, [_i11].concat(zerovector));
505
-
506
- (_newPts$two2 = newPts[two]).setPoint.apply(_newPts$two2, [_i11].concat(zerovector));
443
+ newPts[one].setPoint(i, ...zerovector);
444
+ newPts[two].setPoint(i, ...zerovector);
507
445
  }
508
446
  } // for all points
447
+
509
448
  // update the pointers. three is always three. all other pointers
510
449
  // shift by one and wrap.
511
-
512
-
513
450
  zero = (1 + zero) % 3;
514
451
  one = (1 + one) % 3;
515
452
  two = (1 + two) % 3;
516
453
  } // for all iterations or until converge
454
+
517
455
  // move the iteration count back down so that it matches the
518
456
  // actual number of iterations executed
457
+ --iterationNumber;
519
458
 
459
+ // set zero to three so the correct set of positions is outputted
460
+ zero = three;
520
461
 
521
- --iterationNumber; // set zero to three so the correct set of positions is outputted
522
-
523
- zero = three; // console.log('Performed', iterationNumber, 'smoothing passes');
462
+ // console.log('Performed', iterationNumber, 'smoothing passes');
524
463
  // if we scaled the data down to the unit cube, then scale data back
525
464
  // up to the original space
526
-
527
465
  if (model.normalizeCoordinates) {
528
466
  // Re-position the coordinated
529
- var repositionedPoint = [0, 0, 0];
530
-
531
- for (var _i12 = 0; _i12 < numPts; ++_i12) {
532
- var _newPts$zero2;
533
-
534
- newPts[zero].getPoint(_i12, repositionedPoint);
535
-
536
- for (var _j6 = 0; _j6 < 3; ++_j6) {
537
- repositionedPoint[_j6] = repositionedPoint[_j6] * inLength + inCenter[_j6];
467
+ const repositionedPoint = [0, 0, 0];
468
+ for (let i = 0; i < numPts; ++i) {
469
+ newPts[zero].getPoint(i, repositionedPoint);
470
+ for (let j = 0; j < 3; ++j) {
471
+ repositionedPoint[j] = repositionedPoint[j] * inLength + inCenter[j];
538
472
  }
539
-
540
- (_newPts$zero2 = newPts[zero]).setPoint.apply(_newPts$zero2, [_i12].concat(repositionedPoint));
473
+ newPts[zero].setPoint(i, ...repositionedPoint);
541
474
  }
542
475
  }
543
-
544
476
  if (model.generateErrorScalars) {
545
- var newScalars = new Float32Array(numPts);
546
-
547
- for (var _i13 = 0; _i13 < numPts; ++_i13) {
548
- inPts.getPoint(_i13, x1);
549
- newPts[zero].getPoint(_i13, x2);
550
- newScalars[_i13] = Math.sqrt(Math.distance2BetweenPoints(x1, x2));
477
+ const newScalars = new Float32Array(numPts);
478
+ for (let i = 0; i < numPts; ++i) {
479
+ inPts.getPoint(i, x1);
480
+ newPts[zero].getPoint(i, x2);
481
+ newScalars[i] = Math.sqrt(Math.distance2BetweenPoints(x1, x2));
551
482
  }
552
-
553
- var newScalarsArray = vtkDataArray.newInstance({
483
+ const newScalarsArray = vtkDataArray.newInstance({
554
484
  numberOfComponents: 1,
555
485
  values: newScalars
556
486
  });
557
- var idx = output.getPointData().addArray(newScalarsArray);
487
+ const idx = output.getPointData().addArray(newScalarsArray);
558
488
  output.getPointData().setActiveAttribute(idx, AttributeTypes.SCALARS);
559
489
  }
560
-
561
490
  if (model.generateErrorVectors) {
562
- var newVectors = new Float32Array(3 * numPts);
563
-
564
- for (var _i14 = 0; _i14 < numPts; ++_i14) {
565
- inPts.getPoint(_i14, x1);
566
- newPts[zero].getPoint(_i14, x2);
567
-
568
- for (var _j7 = 0; _j7 < 3; ++_j7) {
569
- newVectors[3 * _i14 + _j7] = x2[_j7] - x1[_j7];
491
+ const newVectors = new Float32Array(3 * numPts);
492
+ for (let i = 0; i < numPts; ++i) {
493
+ inPts.getPoint(i, x1);
494
+ newPts[zero].getPoint(i, x2);
495
+ for (let j = 0; j < 3; ++j) {
496
+ newVectors[3 * i + j] = x2[j] - x1[j];
570
497
  }
571
498
  }
572
-
573
- var newVectorsArray = vtkDataArray.newInstance({
499
+ const newVectorsArray = vtkDataArray.newInstance({
574
500
  numberOfComponents: 3,
575
501
  values: newVectors
576
502
  });
577
503
  output.getPointData().setVectors(newVectorsArray);
578
504
  }
579
-
580
505
  return newPts[zero];
581
506
  };
582
-
583
- publicAPI.requestData = function (inData, outData) {
584
- var numberOfInputs = publicAPI.getNumberOfInputPorts();
585
-
507
+ publicAPI.requestData = (inData, outData) => {
508
+ const numberOfInputs = publicAPI.getNumberOfInputPorts();
586
509
  if (!numberOfInputs) {
587
510
  return;
588
511
  }
589
-
590
- var input = inData[0];
591
-
512
+ const input = inData[0];
592
513
  if (!input) {
593
514
  return;
594
515
  }
595
-
596
- var output = vtkPolyData.newInstance();
597
- var outputPoints = publicAPI.vtkWindowedSincPolyDataFilterExecute(input.getPoints(), input, output);
516
+ const output = vtkPolyData.newInstance();
517
+ const outputPoints = publicAPI.vtkWindowedSincPolyDataFilterExecute(input.getPoints(), input, output);
598
518
  output.setPointData(input.getPointData());
599
519
  output.setCellData(input.getCellData());
600
520
  output.setFieldData(input.getFieldData());
@@ -605,12 +525,12 @@ function vtkWindowedSincPolyDataFilter(publicAPI, model) {
605
525
  output.setStrips(input.getStrips());
606
526
  outData[0] = output;
607
527
  };
608
- } // ----------------------------------------------------------------------------
528
+ }
529
+
530
+ // ----------------------------------------------------------------------------
609
531
  // Object factory
610
532
  // ----------------------------------------------------------------------------
611
-
612
-
613
- var DEFAULT_VALUES = {
533
+ const DEFAULT_VALUES = {
614
534
  numberOfIterations: 20,
615
535
  passBand: 0.1,
616
536
  featureAngle: 45.0,
@@ -621,30 +541,38 @@ var DEFAULT_VALUES = {
621
541
  generateErrorScalars: 0,
622
542
  generateErrorVectors: 0,
623
543
  normalizeCoordinates: 0
624
- }; // ----------------------------------------------------------------------------
544
+ };
625
545
 
546
+ // ----------------------------------------------------------------------------
626
547
  function extend(publicAPI, model) {
627
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
548
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
628
549
  Object.assign(model, DEFAULT_VALUES, initialValues);
550
+
629
551
  /* Make this a VTK object */
630
552
 
631
553
  macro.obj(publicAPI, model);
554
+
632
555
  /* Also make it an algorithm with one input and one output */
633
556
 
634
557
  macro.algo(publicAPI, model, 1, 1);
635
- /* Setters */
636
558
 
559
+ /* Setters */
637
560
  macro.setGet(publicAPI, model, ['numberOfIterations', 'passBand', 'featureAngle', 'edgeAngle', 'featureEdgeSmoothing', 'boundarySmoothing', 'nonManifoldSmoothing', 'generateErrorScalars', 'generateErrorVectors', 'normalizeCoordinates']);
561
+
638
562
  /* Object specific methods */
639
563
 
640
564
  vtkWindowedSincPolyDataFilter(publicAPI, model);
641
- } // ----------------------------------------------------------------------------
565
+ }
642
566
 
643
- var newInstance = macro.newInstance(extend, 'vtkWindowedSincPolyDataFilter'); // ----------------------------------------------------------------------------
567
+ // ----------------------------------------------------------------------------
568
+
569
+ const newInstance = macro.newInstance(extend, 'vtkWindowedSincPolyDataFilter');
570
+
571
+ // ----------------------------------------------------------------------------
644
572
 
645
573
  var vtkWindowedSincPolyDataFilter$1 = {
646
- newInstance: newInstance,
647
- extend: extend
574
+ newInstance,
575
+ extend
648
576
  };
649
577
 
650
578
  export { vtkWindowedSincPolyDataFilter$1 as default, extend, newInstance };