@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,6 +1,4 @@
1
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
4
2
  import { d as dot, e as distance2BetweenPoints } from '../../Common/Core/Math/index.js';
5
3
  import vtkCellArray from '../../Common/Core/CellArray.js';
6
4
  import vtkDataArray from '../../Common/Core/DataArray.js';
@@ -12,22 +10,18 @@ import vtkContourTriangulator from './ContourTriangulator.js';
12
10
  import vtkEdgeLocator from '../../Common/DataModel/EdgeLocator.js';
13
11
  import Constants from './ClipClosedSurface/Constants.js';
14
12
 
15
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
-
17
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
- var vtkErrorMacro = macro.vtkErrorMacro,
19
- capitalize = macro.capitalize;
20
- var ScalarMode = Constants.ScalarMode;
21
-
13
+ const {
14
+ vtkErrorMacro,
15
+ capitalize
16
+ } = macro;
17
+ const {
18
+ ScalarMode
19
+ } = Constants;
22
20
  function vtkClipClosedSurface(publicAPI, model) {
23
21
  // Set our className
24
22
  model.classHierarchy.push('vtkClipClosedSurface');
23
+ publicAPI.getMTime = () => model.clippingPlanes.reduce((a, b) => b.getMTime() > a ? b.getMTime() : a, model.mtime);
25
24
 
26
- publicAPI.getMTime = function () {
27
- return model.clippingPlanes.reduce(function (a, b) {
28
- return b.getMTime() > a ? b.getMTime() : a;
29
- }, model.mtime);
30
- };
31
25
  /**
32
26
  * Take three colors as doubles, and convert to unsigned char.
33
27
  *
@@ -36,21 +30,16 @@ function vtkClipClosedSurface(publicAPI, model) {
36
30
  * @param {Number} color3
37
31
  * @param {Number[3][3]} colors
38
32
  */
39
-
40
-
41
33
  function createColorValues(color1, color2, color3, colors) {
42
- var dcolors = [color1, color2, color3];
43
-
44
- var clamp = function clamp(n, min, max) {
45
- return Math.min(Math.max(n, min), max);
46
- };
47
-
48
- for (var i = 0; i < 3; i++) {
49
- for (var j = 0; j < 3; j++) {
34
+ const dcolors = [color1, color2, color3];
35
+ const clamp = (n, min, max) => Math.min(Math.max(n, min), max);
36
+ for (let i = 0; i < 3; i++) {
37
+ for (let j = 0; j < 3; j++) {
50
38
  colors[i][j] = Math.round(clamp(dcolors[i][j], 0, 1) * 255);
51
39
  }
52
40
  }
53
41
  }
42
+
54
43
  /**
55
44
  * Point interpolation for clipping and contouring, given the scalar
56
45
  * values (v0, v1) for the two endpoints (p0, p1). The use of this
@@ -67,52 +56,46 @@ function vtkClipClosedSurface(publicAPI, model) {
67
56
  * @param {Number} i
68
57
  * @returns {Number}
69
58
  */
70
-
71
-
72
59
  function interpolateEdge(points, pointData, locator, tol, i0, i1, v0, v1) {
73
60
  // This swap guarantees that exactly the same point is computed
74
61
  // for both line directions, as long as the endpoints are the same.
75
62
  if (v1 > 0) {
76
63
  // eslint-disable-next-line no-param-reassign
77
- var _ref = [i1, i0];
78
- i0 = _ref[0];
79
- i1 = _ref[1];
80
- var _ref2 = [v1, v0];
81
- v0 = _ref2[0];
82
- v1 = _ref2[1];
83
- } // After the above swap, i0 will be kept, and i1 will be clipped
84
- // Check to see if this point has already been computed
85
-
86
-
87
- var edge = locator.insertUniqueEdge(i0, i1);
64
+ [i0, i1] = [i1, i0];
65
+ // eslint-disable-next-line no-param-reassign
66
+ [v0, v1] = [v1, v0];
67
+ }
68
+ // After the above swap, i0 will be kept, and i1 will be clipped
88
69
 
70
+ // Check to see if this point has already been computed
71
+ const edge = locator.insertUniqueEdge(i0, i1);
89
72
  if (edge.value != null) {
90
73
  return edge.value;
91
- } // Get the edge and interpolate the new point
92
-
74
+ }
93
75
 
94
- var p0 = points.getPoint(i0);
95
- var p1 = points.getPoint(i1);
96
- var f = v0 / (v0 - v1);
97
- var s = 1.0 - f;
98
- var t = 1.0 - s;
99
- var p = [s * p0[0] + t * p1[0], s * p0[1] + t * p1[1], s * p0[2] + t * p1[2]];
100
- var tol2 = tol * tol; // Make sure that new point is far enough from kept point
76
+ // Get the edge and interpolate the new point
77
+ const p0 = points.getPoint(i0);
78
+ const p1 = points.getPoint(i1);
79
+ const f = v0 / (v0 - v1);
80
+ const s = 1.0 - f;
81
+ const t = 1.0 - s;
82
+ const p = [s * p0[0] + t * p1[0], s * p0[1] + t * p1[1], s * p0[2] + t * p1[2]];
83
+ const tol2 = tol * tol;
101
84
 
85
+ // Make sure that new point is far enough from kept point
102
86
  if (distance2BetweenPoints(p, p0) < tol2) {
103
87
  edge.value = i0;
104
88
  return i0;
105
89
  }
106
-
107
90
  if (distance2BetweenPoints(p, p1) < tol2) {
108
91
  edge.value = i1;
109
92
  return i1;
110
93
  }
111
-
112
94
  edge.value = points.insertNextTuple(p);
113
95
  pointData.interpolateData(pointData, i0, i1, edge.value, t);
114
96
  return edge.value;
115
97
  }
98
+
116
99
  /**
117
100
  * Method for clipping lines and copying the scalar data.
118
101
  *
@@ -125,52 +108,50 @@ function vtkClipClosedSurface(publicAPI, model) {
125
108
  * @param {vtkDataSetAttributes} inLineData
126
109
  * @param {vtkDataSetAttributes} outLineData
127
110
  */
128
-
129
-
130
111
  function clipLines(points, pointScalars, pointData, edgeLocator, inputLines, outputLines, inLineData, outLineData) {
131
- var numPts;
132
- var i0;
133
- var i1;
134
- var v0;
135
- var v1;
136
- var c0;
137
- var c1;
138
- var linePts = [];
139
- var values = inputLines.getData();
140
- var cellId = 0;
141
-
142
- for (var i = 0; i < values.length; i += numPts + 1, cellId++) {
112
+ let numPts;
113
+ let i0;
114
+ let i1;
115
+ let v0;
116
+ let v1;
117
+ let c0;
118
+ let c1;
119
+ const linePts = [];
120
+ const values = inputLines.getData();
121
+ let cellId = 0;
122
+ for (let i = 0; i < values.length; i += numPts + 1, cellId++) {
143
123
  numPts = values[i];
144
124
  i1 = values[i + 1];
145
125
  v1 = pointScalars.getData()[i1];
146
126
  c1 = v1 > 0;
147
-
148
- for (var j = 2; j <= numPts; j++) {
127
+ for (let j = 2; j <= numPts; j++) {
149
128
  i0 = i1;
150
129
  v0 = v1;
151
130
  c0 = c1;
152
131
  i1 = values[i + j];
153
132
  v1 = pointScalars.getData()[i1];
154
- c1 = v1 > 0; // If at least one point wasn't clipped
133
+ c1 = v1 > 0;
155
134
 
135
+ // If at least one point wasn't clipped
156
136
  if (c0 || c1) {
157
137
  // If only one end was clipped, interpolate new point
158
138
  if (c0 ? !c1 : c1) {
159
139
  linePts[c0 ? 1 : 0] = interpolateEdge(points, pointData, edgeLocator, model.tolerance, i0, i1, v0, v1);
160
- } // If endpoints are different, insert the line segment
161
-
140
+ }
162
141
 
142
+ // If endpoints are different, insert the line segment
163
143
  if (i0 !== i1) {
164
144
  linePts[0] = i0;
165
145
  linePts[1] = i1;
166
- var newCellId = outputLines.insertNextCell(linePts); // outLineData.copyData(inLineData, cellId, newCellId);
167
-
146
+ const newCellId = outputLines.insertNextCell(linePts);
147
+ // outLineData.copyData(inLineData, cellId, newCellId);
168
148
  outLineData.passData(inLineData, cellId, newCellId);
169
149
  }
170
150
  }
171
151
  }
172
152
  }
173
153
  }
154
+
174
155
  /**
175
156
  * Break polylines into individual lines, copying scalar values from
176
157
  * inputScalars starting at firstLineScalar. If inputScalars is zero,
@@ -184,31 +165,25 @@ function vtkClipClosedSurface(publicAPI, model) {
184
165
  * @param {vtkDataArray} scalars
185
166
  * @param {Vector3} color
186
167
  */
187
-
188
-
189
168
  function breakPolylines(inputLines, outputLines, inputScalars, firstLineScalar, scalars, color) {
190
- var cellColor = _toConsumableArray(color);
191
-
192
- var cellId = 0;
193
- var values = inputLines.getData();
194
- var numPts;
195
-
196
- for (var i = 0; i < values.length; i += numPts + 1) {
169
+ const cellColor = [...color];
170
+ let cellId = 0;
171
+ const values = inputLines.getData();
172
+ let numPts;
173
+ for (let i = 0; i < values.length; i += numPts + 1) {
197
174
  numPts = values[i];
198
-
199
175
  if (inputScalars) {
200
176
  inputScalars.getTuple(firstLineScalar + cellId++, cellColor);
201
177
  }
202
-
203
- for (var j = 1; j < numPts; j++) {
178
+ for (let j = 1; j < numPts; j++) {
204
179
  outputLines.insertNextCell([values[i + j], values[i + j + 1]]);
205
-
206
180
  if (scalars) {
207
181
  scalars.insertNextTuple(cellColor);
208
182
  }
209
183
  }
210
184
  }
211
185
  }
186
+
212
187
  /**
213
188
  * Copy polygons and their associated scalars to a new array.
214
189
  * If inputScalars is set to zero, set polyScalars to color instead.
@@ -221,84 +196,68 @@ function vtkClipClosedSurface(publicAPI, model) {
221
196
  * @param {vtkDataArray} polyScalars
222
197
  * @param {Vector3} color
223
198
  */
224
-
225
-
226
199
  function copyPolygons(inputPolys, outputPolys, inputScalars, firstPolyScalar, polyScalars, color) {
227
200
  if (!inputPolys) {
228
201
  return;
229
202
  }
230
-
231
203
  outputPolys.deepCopy(inputPolys);
232
-
233
204
  if (polyScalars) {
234
- var scalarValue = _toConsumableArray(color);
235
-
236
- var n = outputPolys.getNumberOfCells();
205
+ const scalarValue = [...color];
206
+ const n = outputPolys.getNumberOfCells();
237
207
  polyScalars.insertTuple(n - 1, scalarValue);
238
-
239
208
  if (inputScalars) {
240
- for (var i = 0; i < n; i++) {
209
+ for (let i = 0; i < n; i++) {
241
210
  inputScalars.getTuple(i + firstPolyScalar, scalarValue);
242
211
  polyScalars.setTuple(i, scalarValue);
243
212
  }
244
213
  } else {
245
- for (var _i = 0; _i < n; _i++) {
246
- polyScalars.setTuple(_i, scalarValue);
214
+ for (let i = 0; i < n; i++) {
215
+ polyScalars.setTuple(i, scalarValue);
247
216
  }
248
217
  }
249
218
  }
250
219
  }
251
-
252
220
  function breakTriangleStrips(inputStrips, polys, inputScalars, firstStripScalar, polyScalars, color) {
253
221
  if (inputStrips.getNumberOfCells() === 0) {
254
222
  return;
255
223
  }
256
-
257
- var values = inputStrips.getData();
258
- var cellId = firstStripScalar;
259
- var numPts;
260
-
261
- for (var i = 0; i < values.length; i += numPts + 1, cellId++) {
262
- numPts = values[i]; // vtkTriangleStrip.decomposeStrip(numPts, values, polys);
263
-
264
- var p1 = values[i + 1];
265
- var p2 = values[i + 2];
266
-
267
- for (var j = 0; j < numPts - 2; j++) {
268
- var p3 = values[i + j + 3];
269
-
224
+ const values = inputStrips.getData();
225
+ let cellId = firstStripScalar;
226
+ let numPts;
227
+ for (let i = 0; i < values.length; i += numPts + 1, cellId++) {
228
+ numPts = values[i];
229
+ // vtkTriangleStrip.decomposeStrip(numPts, values, polys);
230
+ let p1 = values[i + 1];
231
+ let p2 = values[i + 2];
232
+ for (let j = 0; j < numPts - 2; j++) {
233
+ const p3 = values[i + j + 3];
270
234
  if (j % 2) {
271
235
  polys.insertNextCell([p2, p1, p3]);
272
236
  } else {
273
237
  polys.insertNextCell([p1, p2, p3]);
274
238
  }
275
-
276
239
  p1 = p2;
277
240
  p2 = p3;
278
241
  }
279
-
280
242
  if (polyScalars) {
281
- var scalarValue = _toConsumableArray(color);
282
-
243
+ const scalarValue = [...color];
283
244
  if (inputScalars) {
284
245
  // If there are input scalars, use them instead of "color"
285
246
  inputScalars.getTuple(cellId, scalarValue);
286
247
  }
287
-
288
- var n = numPts - 3;
289
- var m = polyScalars.getNumberOfTuples();
290
-
248
+ const n = numPts - 3;
249
+ const m = polyScalars.getNumberOfTuples();
291
250
  if (n >= 0) {
292
251
  // First insert is just to allocate space
293
252
  polyScalars.insertTuple(m + n, scalarValue);
294
-
295
- for (var k = 0; k < n; k++) {
253
+ for (let k = 0; k < n; k++) {
296
254
  polyScalars.setTuple(m + k, scalarValue);
297
255
  }
298
256
  }
299
257
  }
300
258
  }
301
259
  }
260
+
302
261
  /**
303
262
  * Given some closed contour lines, create a triangle mesh that
304
263
  * fills those lines. The input lines must be single-segment lines,
@@ -314,20 +273,17 @@ function vtkClipClosedSurface(publicAPI, model) {
314
273
  * @param {vtkCellArray} outputPolys
315
274
  * @param {Vector3} normal
316
275
  */
317
-
318
-
319
276
  function triangulateContours(polyData, firstLine, numLines, outputPolys, normal) {
320
277
  // If no cut lines were generated, there's nothing to do
321
278
  if (numLines <= 0) {
322
279
  return;
323
280
  }
324
-
325
- var triangulationError = !vtkContourTriangulator.triangulateContours(polyData, firstLine, numLines, outputPolys, [-normal[0], -normal[1], -normal[2]]);
326
-
281
+ const triangulationError = !vtkContourTriangulator.triangulateContours(polyData, firstLine, numLines, outputPolys, [-normal[0], -normal[1], -normal[2]]);
327
282
  if (triangulationError && model.triangulationErrorDisplay) {
328
283
  vtkErrorMacro('Triangulation failed, polyData may not be watertight.');
329
284
  }
330
285
  }
286
+
331
287
  /**
332
288
  * Break polylines into individual lines, copying scalar values from
333
289
  * inputScalars starting at firstLineScalar. If inputScalars is zero,
@@ -339,11 +295,10 @@ function vtkClipClosedSurface(publicAPI, model) {
339
295
  * @param {vtkCellArray} triangles
340
296
  * @returns {Boolean}
341
297
  */
342
-
343
-
344
298
  function triangulatePolygon(polygon, points, triangles) {
345
299
  return vtkContourTriangulator.triangulatePolygon(polygon, points, triangles);
346
300
  }
301
+
347
302
  /**
348
303
  * Clip and contour polys in one step, in order to guarantee
349
304
  * that the contour lines exactly match the new free edges of
@@ -362,13 +317,10 @@ function vtkClipClosedSurface(publicAPI, model) {
362
317
  * @param {vtkDataSetAttributes} outPolyData
363
318
  * @param {vtkDataSetAttributes} outLineData
364
319
  */
365
-
366
-
367
320
  function clipAndContourPolys(points, pointScalars, pointData, edgeLocator, triangulate, inputPolys, outputPolys, outputLines, inCellData, outPolyData, outLineData) {
368
- var idList = model._idList; // How many sides for output polygons?
369
-
370
- var polyMax = Number.MAX_VALUE;
371
-
321
+ const idList = model._idList;
322
+ // How many sides for output polygons?
323
+ let polyMax = Number.MAX_VALUE;
372
324
  if (triangulate) {
373
325
  if (triangulate < 4) {
374
326
  // triangles only
@@ -377,103 +329,98 @@ function vtkClipClosedSurface(publicAPI, model) {
377
329
  // allow triangles and quads
378
330
  polyMax = 4;
379
331
  }
380
- } // eslint-disable-next-line prefer-const
381
-
382
-
383
- var triangulationFailure = false; // Go through all cells and clip them
332
+ }
384
333
 
385
- var values = inputPolys.getData();
386
- var linePts = [];
387
- var cellId = 0;
388
- var numPts;
334
+ // eslint-disable-next-line prefer-const
335
+ let triangulationFailure = false;
389
336
 
390
- for (var i = 0; i < values.length; i += numPts + 1, cellId++) {
337
+ // Go through all cells and clip them
338
+ const values = inputPolys.getData();
339
+ const linePts = [];
340
+ let cellId = 0;
341
+ let numPts;
342
+ for (let i = 0; i < values.length; i += numPts + 1, cellId++) {
391
343
  numPts = values[i];
392
- var i1 = values[i + numPts];
393
- var v1 = pointScalars.getData()[i1];
394
- var c1 = v1 > 0; // The ids for the current edge: init j0 to -1 if i1 will be clipped
344
+ let i1 = values[i + numPts];
345
+ let v1 = pointScalars.getData()[i1];
346
+ let c1 = v1 > 0;
395
347
 
396
- var j0 = c1 ? i1 : -1;
397
- var j1 = 0; // To store the ids of the contour line
348
+ // The ids for the current edge: init j0 to -1 if i1 will be clipped
349
+ let j0 = c1 ? i1 : -1;
350
+ let j1 = 0;
398
351
 
352
+ // To store the ids of the contour line
399
353
  linePts[0] = 0;
400
354
  linePts[1] = 0;
401
- var idListIdx = 0;
402
-
403
- for (var j = 1; j <= numPts; j++) {
355
+ let idListIdx = 0;
356
+ for (let j = 1; j <= numPts; j++) {
404
357
  // Save previous point info
405
- var i0 = i1;
406
- var v0 = v1;
407
- var c0 = c1; // Generate new point info
358
+ const i0 = i1;
359
+ const v0 = v1;
360
+ const c0 = c1;
408
361
 
362
+ // Generate new point info
409
363
  i1 = values[i + j];
410
364
  v1 = pointScalars.getData()[i1];
411
- c1 = v1 > 0; // If at least one edge end point wasn't clipped
365
+ c1 = v1 > 0;
412
366
 
367
+ // If at least one edge end point wasn't clipped
413
368
  if (c0 || c1) {
414
369
  // If only one end was clipped, interpolate new point
415
370
  if (c0 ? !c1 : c1) {
416
371
  j1 = interpolateEdge(points, pointData, edgeLocator, model.tolerance, i0, i1, v0, v1);
417
-
418
372
  if (j1 !== j0) {
419
373
  idList[idListIdx++] = j1;
420
374
  j0 = j1;
421
- } // Save as one end of the contour line
422
-
375
+ }
423
376
 
377
+ // Save as one end of the contour line
424
378
  linePts[c0 ? 1 : 0] = j1;
425
379
  }
426
-
427
380
  if (c1) {
428
381
  j1 = i1;
429
-
430
382
  if (j1 !== j0) {
431
383
  idList[idListIdx++] = j1;
432
384
  j0 = j1;
433
385
  }
434
386
  }
435
387
  }
436
- } // Insert the clipped poly
437
-
388
+ }
438
389
 
439
- var numPoints = idListIdx;
390
+ // Insert the clipped poly
391
+ const numPoints = idListIdx;
440
392
  idList.length = numPoints;
441
-
442
393
  if (model.triangulatePolys && numPoints > polyMax) {
443
394
  // TODO: Support triangulatePolygon
444
- var newCellId = outputPolys.getNumberOfCells(); // Triangulate the poly and insert triangles into output.
445
-
446
- var success = triangulatePolygon(idList, points, outputPolys);
447
-
395
+ let newCellId = outputPolys.getNumberOfCells();
396
+ // Triangulate the poly and insert triangles into output.
397
+ const success = triangulatePolygon(idList, points, outputPolys);
448
398
  if (!success) {
449
399
  triangulationFailure = true;
450
- } // Copy the attribute data to the triangle cells
451
-
452
-
453
- var ncells = outputPolys.getNumberOfCells();
400
+ }
454
401
 
402
+ // Copy the attribute data to the triangle cells
403
+ const ncells = outputPolys.getNumberOfCells();
455
404
  for (; newCellId < ncells; newCellId++) {
456
405
  outPolyData.passData(inCellData, cellId, newCellId);
457
406
  }
458
407
  } else if (numPoints > 2) {
459
408
  // Insert the polygon without triangulating it
460
- var _newCellId = outputPolys.insertNextCell(idList);
461
-
462
- outPolyData.passData(inCellData, cellId, _newCellId);
463
- } // Insert the contour line if one was created
464
-
409
+ const newCellId = outputPolys.insertNextCell(idList);
410
+ outPolyData.passData(inCellData, cellId, newCellId);
411
+ }
465
412
 
413
+ // Insert the contour line if one was created
466
414
  if (linePts[0] !== linePts[1]) {
467
- var _newCellId2 = outputLines.insertNextCell(linePts);
468
-
469
- outLineData.passData(inCellData, cellId, _newCellId2);
415
+ const newCellId = outputLines.insertNextCell(linePts);
416
+ outLineData.passData(inCellData, cellId, newCellId);
470
417
  }
471
418
  }
472
-
473
419
  if (triangulationFailure && model.triangulationErrorDisplay) {
474
420
  vtkErrorMacro('Triangulation failed, output may not be watertight');
475
421
  }
476
422
  }
423
+
477
424
  /**
478
425
  * Squeeze the points and store them in the output. Only the points that
479
426
  * are used by the cells will be saved, and the pointIds of the cells will
@@ -484,71 +431,64 @@ function vtkClipClosedSurface(publicAPI, model) {
484
431
  * @param {vtkDataSetAttributes} pointData
485
432
  * @param {String} outputPointDataType
486
433
  */
487
-
488
-
489
434
  function squeezeOutputPoints(output, points, pointData, outputPointDataType) {
490
435
  // Create a list of points used by cells
491
- var n = points.getNumberOfPoints();
492
- var numNewPoints = 0;
493
- var outPointData = output.getPointData();
494
- var pointMap = [];
436
+ const n = points.getNumberOfPoints();
437
+ let numNewPoints = 0;
438
+ const outPointData = output.getPointData();
439
+ const pointMap = [];
495
440
  pointMap.length = n;
496
- var cellArrays = [output.getVerts(), output.getLines(), output.getPolys(), output.getStrips()]; // Find all the newPoints that are used by cells
441
+ const cellArrays = [output.getVerts(), output.getLines(), output.getPolys(), output.getStrips()];
497
442
 
498
- cellArrays.forEach(function (cellArray) {
443
+ // Find all the newPoints that are used by cells
444
+ cellArrays.forEach(cellArray => {
499
445
  if (!cellArray) {
500
446
  return;
501
447
  }
502
-
503
- var values = cellArray.getData();
504
- var numPts;
505
- var pointId;
506
-
507
- for (var i = 0; i < values.length; i += numPts + 1) {
448
+ const values = cellArray.getData();
449
+ let numPts;
450
+ let pointId;
451
+ for (let i = 0; i < values.length; i += numPts + 1) {
508
452
  numPts = values[i];
509
-
510
- for (var j = 1; j <= numPts; j++) {
453
+ for (let j = 1; j <= numPts; j++) {
511
454
  pointId = values[i + j];
512
-
513
455
  if (pointMap[pointId] === undefined) {
514
456
  pointMap[pointId] = numNewPoints++;
515
457
  }
516
458
  }
517
459
  }
518
- }); // Create exactly the number of points that are required
460
+ });
519
461
 
520
- var newPoints = vtkPoints.newInstance({
462
+ // Create exactly the number of points that are required
463
+ const newPoints = vtkPoints.newInstance({
521
464
  size: numNewPoints * 3,
522
465
  dataType: outputPointDataType
523
- }); // outPointData.copyAllocate(pointData, numNewPoints, 0);
524
-
525
- var p = [];
526
- var newPointId;
466
+ });
467
+ // outPointData.copyAllocate(pointData, numNewPoints, 0);
527
468
 
528
- for (var pointId = 0; pointId < n; pointId++) {
469
+ const p = [];
470
+ let newPointId;
471
+ for (let pointId = 0; pointId < n; pointId++) {
529
472
  newPointId = pointMap[pointId];
530
-
531
473
  if (newPointId !== undefined) {
532
474
  points.getPoint(pointId, p);
533
475
  newPoints.setTuple(newPointId, p);
534
- outPointData.passData(pointData, pointId, newPointId); // outPointData.copyData(pointData, pointId, newPointId);
476
+ outPointData.passData(pointData, pointId, newPointId);
477
+ // outPointData.copyData(pointData, pointId, newPointId);
535
478
  }
536
- } // Change the cell pointIds to reflect the new point array
537
-
479
+ }
538
480
 
539
- cellArrays.forEach(function (cellArray) {
481
+ // Change the cell pointIds to reflect the new point array
482
+ cellArrays.forEach(cellArray => {
540
483
  if (!cellArray) {
541
484
  return;
542
485
  }
543
-
544
- var values = cellArray.getData();
545
- var numPts;
546
- var pointId;
547
-
548
- for (var i = 0; i < values.length; i += numPts + 1) {
486
+ const values = cellArray.getData();
487
+ let numPts;
488
+ let pointId;
489
+ for (let i = 0; i < values.length; i += numPts + 1) {
549
490
  numPts = values[i];
550
-
551
- for (var j = 1; j <= numPts; j++) {
491
+ for (let j = 1; j <= numPts; j++) {
552
492
  pointId = values[i + j];
553
493
  values[i + j] = pointMap[pointId];
554
494
  }
@@ -556,76 +496,71 @@ function vtkClipClosedSurface(publicAPI, model) {
556
496
  });
557
497
  output.setPoints(newPoints);
558
498
  }
559
-
560
- publicAPI.requestData = function (inData, outData) {
561
- var _input$getVerts, _input$getStrips;
562
-
499
+ publicAPI.requestData = (inData, outData) => {
563
500
  // implement requestData
564
- var input = inData[0];
565
- var output = vtkPolyData.newInstance();
501
+ const input = inData[0];
502
+ const output = vtkPolyData.newInstance();
566
503
  outData[0] = output;
567
-
568
504
  if (!input) {
569
505
  vtkErrorMacro('Invalid or missing input');
570
506
  return;
571
507
  }
572
-
573
508
  if (model._idList == null) {
574
509
  model._idList = [];
575
510
  } else {
576
511
  model._idList.length = 0;
577
- } // Get the input points
578
-
579
-
580
- var inputPoints = input.getPoints();
581
- var numPts = 0;
582
- var inputPointsType = VtkDataTypes.FLOAT;
512
+ }
583
513
 
514
+ // Get the input points
515
+ const inputPoints = input.getPoints();
516
+ let numPts = 0;
517
+ let inputPointsType = VtkDataTypes.FLOAT;
584
518
  if (inputPoints) {
585
519
  numPts = inputPoints.getNumberOfPoints();
586
520
  inputPointsType = inputPoints.getDataType();
587
- } // Force points to double precision, copy the point attributes
588
-
521
+ }
589
522
 
590
- var points = vtkPoints.newInstance({
523
+ // Force points to double precision, copy the point attributes
524
+ const points = vtkPoints.newInstance({
591
525
  size: numPts * 3,
592
526
  dataType: VtkDataTypes.DOUBLE
593
527
  });
594
- var pointData = vtkDataSetAttributes.newInstance();
595
- var inPointData = null;
596
-
528
+ const pointData = vtkDataSetAttributes.newInstance();
529
+ let inPointData = null;
597
530
  if (model.passPointData) {
598
- inPointData = input.getPointData(); // pointData.interpolateAllocate(inPointData, numPts, 0);
531
+ inPointData = input.getPointData();
532
+ // pointData.interpolateAllocate(inPointData, numPts, 0);
599
533
  }
600
534
 
601
- var point = [];
602
-
603
- for (var ptId = 0; ptId < numPts; ptId++) {
535
+ const point = [];
536
+ for (let ptId = 0; ptId < numPts; ptId++) {
604
537
  inputPoints.getPoint(ptId, point);
605
538
  points.setTuple(ptId, point);
606
-
607
539
  if (inPointData) {
608
540
  // pointData.copyData(inPointData, ptId, ptId);
609
541
  pointData.passData(inPointData, ptId, ptId);
610
542
  }
611
- } // An edge locator to avoid point duplication while clipping
612
-
613
-
614
- var edgeLocator = vtkEdgeLocator.newInstance(); // A temporary polydata for the contour lines that are triangulated
543
+ }
615
544
 
616
- var tmpContourData = vtkPolyData.newInstance(); // The cell scalars
545
+ // An edge locator to avoid point duplication while clipping
546
+ const edgeLocator = vtkEdgeLocator.newInstance();
617
547
 
618
- var lineScalars;
619
- var polyScalars;
620
- var inputScalars; // For input scalars: the offsets to the various cell types
548
+ // A temporary polydata for the contour lines that are triangulated
549
+ const tmpContourData = vtkPolyData.newInstance();
621
550
 
622
- var firstLineScalar = 0;
623
- var firstPolyScalar = 0;
624
- var firstStripScalar = 0; // Make the colors to be used on the data
551
+ // The cell scalars
552
+ let lineScalars;
553
+ let polyScalars;
554
+ let inputScalars;
625
555
 
626
- var numberOfScalarComponents = 1;
627
- var colors = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
556
+ // For input scalars: the offsets to the various cell types
557
+ let firstLineScalar = 0;
558
+ let firstPolyScalar = 0;
559
+ let firstStripScalar = 0;
628
560
 
561
+ // Make the colors to be used on the data
562
+ let numberOfScalarComponents = 1;
563
+ const colors = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
629
564
  if (model.scalarMode === ScalarMode.COLORS) {
630
565
  numberOfScalarComponents = 3;
631
566
  createColorValues(model.baseColor, model.clipColor, model.activePlaneColor, colors);
@@ -633,18 +568,17 @@ function vtkClipClosedSurface(publicAPI, model) {
633
568
  colors[0][0] = 0;
634
569
  colors[1][0] = 1;
635
570
  colors[2][0] = 2;
636
- } // This is set if we have to work with scalars. The input scalars
571
+ }
572
+
573
+ // This is set if we have to work with scalars. The input scalars
637
574
  // will be copied if they are unsigned char with 3 components, otherwise
638
575
  // new scalars will be generated.
639
-
640
-
641
- var numVerts = ((_input$getVerts = input.getVerts()) === null || _input$getVerts === void 0 ? void 0 : _input$getVerts.getNumberOfCells()) || 0;
642
- var inputLines = input.getLines();
643
- var numLines = (inputLines === null || inputLines === void 0 ? void 0 : inputLines.getNumberOfCells()) || 0;
644
- var inputPolys = input.getPolys();
645
- var numPolys = (inputPolys === null || inputPolys === void 0 ? void 0 : inputPolys.getNumberOfCells()) || 0;
646
- var numStrips = ((_input$getStrips = input.getStrips()) === null || _input$getStrips === void 0 ? void 0 : _input$getStrips.getNumberOfCells()) || 0;
647
-
576
+ const numVerts = input.getVerts()?.getNumberOfCells() || 0;
577
+ const inputLines = input.getLines();
578
+ const numLines = inputLines?.getNumberOfCells() || 0;
579
+ const inputPolys = input.getPolys();
580
+ const numPolys = inputPolys?.getNumberOfCells() || 0;
581
+ const numStrips = input.getStrips()?.getNumberOfCells() || 0;
648
582
  if (model.scalarMode !== ScalarMode.NONE) {
649
583
  lineScalars = vtkDataArray.newInstance({
650
584
  dataType: VtkDataTypes.UNSIGNED_CHAR,
@@ -653,19 +587,18 @@ function vtkClipClosedSurface(publicAPI, model) {
653
587
  // values: new Uint8Array(numLines * 3),
654
588
  numberOfComponents: numberOfScalarComponents
655
589
  });
656
- var tryInputScalars = input.getCellData().getScalars(); // Get input scalars if they are RGB color scalars
657
-
590
+ const tryInputScalars = input.getCellData().getScalars();
591
+ // Get input scalars if they are RGB color scalars
658
592
  if (tryInputScalars && tryInputScalars.getDataType() === VtkDataTypes.UNSIGNED_CHAR && numberOfScalarComponents === 3 && tryInputScalars.getNumberOfComponents() === 3) {
659
593
  inputScalars = input.getCellData().getScalars();
660
594
  firstLineScalar = numVerts;
661
595
  firstPolyScalar = numVerts + numLines;
662
596
  firstStripScalar = numVerts + numLines + numPolys;
663
597
  }
664
- } // Break the input lines into segments, generate scalars for lines
665
-
666
-
667
- var lines;
598
+ }
668
599
 
600
+ // Break the input lines into segments, generate scalars for lines
601
+ let lines;
669
602
  if (numLines > 0) {
670
603
  lines = vtkCellArray.newInstance({
671
604
  dataType: inputLines.getDataType(),
@@ -679,10 +612,8 @@ function vtkClipClosedSurface(publicAPI, model) {
679
612
  empty: true
680
613
  });
681
614
  }
682
-
683
- var polys = null;
684
- var polyMax = 3;
685
-
615
+ let polys = null;
616
+ let polyMax = 3;
686
617
  if (numPolys > 0 || numStrips > 0) {
687
618
  // If there are line scalars, then poly scalars are needed too
688
619
  if (lineScalars) {
@@ -694,204 +625,188 @@ function vtkClipClosedSurface(publicAPI, model) {
694
625
  numberOfComponents: numberOfScalarComponents
695
626
  });
696
627
  }
697
-
698
628
  polys = vtkCellArray.newInstance();
699
- copyPolygons(inputPolys, polys, inputScalars, firstPolyScalar, polyScalars, colors[0]); // TODO: Support triangle strips
700
-
701
- breakTriangleStrips(input.getStrips(), polys, inputScalars, firstStripScalar, polyScalars, colors[0]); // Check if the input has polys and quads or just triangles
702
-
703
- polyMax = inputPolys.getCellSizes().reduce(function (a, b) {
704
- return a > b ? a : b;
705
- }, 0);
706
- } // Arrays for storing the clipped lines and polys
629
+ copyPolygons(inputPolys, polys, inputScalars, firstPolyScalar, polyScalars, colors[0]);
630
+ // TODO: Support triangle strips
631
+ breakTriangleStrips(input.getStrips(), polys, inputScalars, firstStripScalar, polyScalars, colors[0]);
707
632
 
633
+ // Check if the input has polys and quads or just triangles
634
+ polyMax = inputPolys.getCellSizes().reduce((a, b) => a > b ? a : b, 0);
635
+ }
708
636
 
709
- var newLines = vtkCellArray.newInstance({
637
+ // Arrays for storing the clipped lines and polys
638
+ let newLines = vtkCellArray.newInstance({
710
639
  dataType: lines.getDataType(),
711
640
  empty: true
712
641
  });
713
- var newPolys = null;
714
-
642
+ let newPolys = null;
715
643
  if (polys) {
716
644
  newPolys = vtkCellArray.newInstance({
717
645
  dataType: polys.getDataType(),
718
646
  empty: true
719
647
  });
720
- } // The line scalars, for coloring the outline
721
-
648
+ }
722
649
 
723
- var inLineData = vtkDataSetAttributes.newInstance();
650
+ // The line scalars, for coloring the outline
651
+ let inLineData = vtkDataSetAttributes.newInstance();
724
652
  inLineData.copyScalarsOn();
725
- inLineData.setScalars(lineScalars); // The poly scalars, for coloring the faces
653
+ inLineData.setScalars(lineScalars);
726
654
 
727
- var inPolyData = vtkDataSetAttributes.newInstance();
655
+ // The poly scalars, for coloring the faces
656
+ let inPolyData = vtkDataSetAttributes.newInstance();
728
657
  inPolyData.copyScalarsOn();
729
- inPolyData.setScalars(polyScalars); // Also create output attribute data
658
+ inPolyData.setScalars(polyScalars);
730
659
 
731
- var outLineData = vtkDataSetAttributes.newInstance();
660
+ // Also create output attribute data
661
+ let outLineData = vtkDataSetAttributes.newInstance();
732
662
  outLineData.copyScalarsOn();
733
- var outPolyData = vtkDataSetAttributes.newInstance();
663
+ let outPolyData = vtkDataSetAttributes.newInstance();
734
664
  outPolyData.copyScalarsOn();
735
- var planes = model.clippingPlanes; // Go through the clipping planes and clip the input with each plane
736
-
737
- for (var planeId = 0; planeId < planes.length; planeId++) {
738
- var plane = planes[planeId];
739
- var triangulate = 5;
665
+ const planes = model.clippingPlanes;
740
666
 
667
+ // Go through the clipping planes and clip the input with each plane
668
+ for (let planeId = 0; planeId < planes.length; planeId++) {
669
+ const plane = planes[planeId];
670
+ let triangulate = 5;
741
671
  if (planeId === planes.length - 1) {
742
672
  triangulate = polyMax;
743
673
  }
674
+ const active = planeId === model.activePlaneId;
744
675
 
745
- var active = planeId === model.activePlaneId; // Convert the plane into an easy-to-evaluate function
746
-
747
- var pc = plane.getNormal(); // OK to modify pc because vtkPlane.getNormal() returns a copy
676
+ // Convert the plane into an easy-to-evaluate function
677
+ const pc = plane.getNormal();
678
+ // OK to modify pc because vtkPlane.getNormal() returns a copy
679
+ pc[3] = -dot(pc, plane.getOrigin());
748
680
 
749
- pc[3] = -dot(pc, plane.getOrigin()); // Create the clip scalars by evaluating the plane at each point
681
+ // Create the clip scalars by evaluating the plane at each point
682
+ const numPoints = points.getNumberOfPoints();
750
683
 
751
- var numPoints = points.getNumberOfPoints(); // The point scalars, needed for clipping (not for the output!)
752
-
753
- var pointScalars = vtkDataArray.newInstance({
684
+ // The point scalars, needed for clipping (not for the output!)
685
+ const pointScalars = vtkDataArray.newInstance({
754
686
  dataType: VtkDataTypes.DOUBLE,
755
687
  size: numPoints
756
688
  });
757
- var pointScalarsData = pointScalars.getData();
758
- var pointsData = points.getData();
759
- var i = 0;
760
-
761
- for (var pointId = 0; pointId < numPoints; pointId) {
689
+ const pointScalarsData = pointScalars.getData();
690
+ const pointsData = points.getData();
691
+ let i = 0;
692
+ for (let pointId = 0; pointId < numPoints; pointId) {
762
693
  pointScalarsData[pointId++] = pointsData[i++] * pc[0] + pointsData[i++] * pc[1] + pointsData[i++] * pc[2] + pc[3];
763
- } // Prepare the output scalars
694
+ }
695
+
696
+ // Prepare the output scalars
764
697
  // outLineData.copyAllocate(inLineData, 0, 0);
765
698
  // outPolyData.copyAllocate(inPolyData, 0, 0);
766
- // Reset the locator
767
-
768
699
 
769
- edgeLocator.initialize(); // Clip the lines
700
+ // Reset the locator
701
+ edgeLocator.initialize();
770
702
 
771
- clipLines(points, pointScalars, pointData, edgeLocator, lines, newLines, inLineData, outLineData); // Clip the polys
703
+ // Clip the lines
704
+ clipLines(points, pointScalars, pointData, edgeLocator, lines, newLines, inLineData, outLineData);
772
705
 
706
+ // Clip the polys
773
707
  if (polys) {
774
708
  // Get the number of lines remaining after the clipping
775
- var numClipLines = newLines.getNumberOfCells(); // Cut the polys to generate more lines
776
-
777
- clipAndContourPolys(points, pointScalars, pointData, edgeLocator, triangulate, polys, newPolys, newLines, inPolyData, outPolyData, outLineData); // Add scalars for the newly-created contour lines
709
+ const numClipLines = newLines.getNumberOfCells();
778
710
 
779
- var _scalars = outLineData.getScalars();
711
+ // Cut the polys to generate more lines
712
+ clipAndContourPolys(points, pointScalars, pointData, edgeLocator, triangulate, polys, newPolys, newLines, inPolyData, outPolyData, outLineData);
780
713
 
781
- if (_scalars) {
714
+ // Add scalars for the newly-created contour lines
715
+ let scalars = outLineData.getScalars();
716
+ if (scalars) {
782
717
  // Set the color to the active color if plane is active
783
- var color = colors[1 + (active ? 1 : 0)];
784
- var activeColor = colors[2];
785
- var numNewLines = newLines.getNumberOfCells();
786
- var oldColor = [];
787
-
788
- for (var lineId = numClipLines; lineId < numNewLines; lineId++) {
789
- _scalars.getTuple(lineId, oldColor);
790
-
718
+ const color = colors[1 + (active ? 1 : 0)];
719
+ const activeColor = colors[2];
720
+ const numNewLines = newLines.getNumberOfCells();
721
+ const oldColor = [];
722
+ for (let lineId = numClipLines; lineId < numNewLines; lineId++) {
723
+ scalars.getTuple(lineId, oldColor);
791
724
  if (numberOfScalarComponents !== 3 || oldColor[0] !== activeColor[0] || oldColor[1] !== activeColor[1] || oldColor[2] !== activeColor[2]) {
792
- _scalars.setTuple(lineId, color);
725
+ scalars.setTuple(lineId, color);
793
726
  }
794
727
  }
795
- } // Generate new polys from the cut lines
796
-
728
+ }
797
729
 
798
- var cellId = newPolys.getNumberOfCells();
799
- var numClipAndContourLines = newLines.getNumberOfCells(); // Create a polydata for the lines
730
+ // Generate new polys from the cut lines
731
+ let cellId = newPolys.getNumberOfCells();
732
+ const numClipAndContourLines = newLines.getNumberOfCells();
800
733
 
734
+ // Create a polydata for the lines
801
735
  tmpContourData.setPoints(points);
802
736
  tmpContourData.setLines(newLines);
803
737
  tmpContourData.buildCells();
804
- triangulateContours(tmpContourData, numClipLines, numClipAndContourLines - numClipLines, newPolys, pc); // Add scalars for the newly-created polys
805
-
806
- _scalars = outPolyData.getScalars();
807
-
808
- if (_scalars) {
809
- var _color = colors[1 + (active ? 1 : 0)];
810
- var numCells = newPolys.getNumberOfCells();
738
+ triangulateContours(tmpContourData, numClipLines, numClipAndContourLines - numClipLines, newPolys, pc);
811
739
 
740
+ // Add scalars for the newly-created polys
741
+ scalars = outPolyData.getScalars();
742
+ if (scalars) {
743
+ const color = colors[1 + (active ? 1 : 0)];
744
+ const numCells = newPolys.getNumberOfCells();
812
745
  if (numCells > cellId) {
813
746
  // The insert allocates space up to numCells - 1
814
- _scalars.insertTuple(numCells - 1, _color);
815
-
747
+ scalars.insertTuple(numCells - 1, color);
816
748
  for (; cellId < numCells; cellId++) {
817
- _scalars.setTuple(cellId, _color);
749
+ scalars.setTuple(cellId, color);
818
750
  }
819
751
  }
820
- } // Add scalars to any diagnostic lines that added by
821
- // triangulateContours(). In usual operation, no lines are added.
822
-
823
-
824
- _scalars = outLineData.getScalars();
825
-
826
- if (_scalars) {
827
- var _color2 = [0, 255, 255];
828
-
829
- var _numCells = newLines.getNumberOfCells();
752
+ }
830
753
 
831
- if (_numCells > numClipAndContourLines) {
754
+ // Add scalars to any diagnostic lines that added by
755
+ // triangulateContours(). In usual operation, no lines are added.
756
+ scalars = outLineData.getScalars();
757
+ if (scalars) {
758
+ const color = [0, 255, 255];
759
+ const numCells = newLines.getNumberOfCells();
760
+ if (numCells > numClipAndContourLines) {
832
761
  // The insert allocates space up to numCells - 1
833
- _scalars.insertTuple(_numCells - 1, _color2);
834
-
835
- for (var lineCellId = numClipAndContourLines; lineCellId < _numCells; lineCellId++) {
836
- _scalars.setTuple(lineCellId, _color2);
762
+ scalars.insertTuple(numCells - 1, color);
763
+ for (let lineCellId = numClipAndContourLines; lineCellId < numCells; lineCellId++) {
764
+ scalars.setTuple(lineCellId, color);
837
765
  }
838
766
  }
839
767
  }
840
- } // Swap the lines, points, etcetera: old output becomes new input
841
-
768
+ }
842
769
 
843
- var _ref3 = [newLines, lines];
844
- lines = _ref3[0];
845
- newLines = _ref3[1];
770
+ // Swap the lines, points, etcetera: old output becomes new input
771
+ [lines, newLines] = [newLines, lines];
846
772
  newLines.initialize();
847
-
848
773
  if (polys) {
849
- var _ref4 = [newPolys, polys];
850
- polys = _ref4[0];
851
- newPolys = _ref4[1];
774
+ [polys, newPolys] = [newPolys, polys];
852
775
  newPolys.initialize();
853
776
  }
854
-
855
- var _ref5 = [outLineData, inLineData];
856
- inLineData = _ref5[0];
857
- outLineData = _ref5[1];
777
+ [inLineData, outLineData] = [outLineData, inLineData];
858
778
  outLineData.initialize();
859
- var _ref6 = [outPolyData, inPolyData];
860
- inPolyData = _ref6[0];
861
- outPolyData = _ref6[1];
779
+ [inPolyData, outPolyData] = [outPolyData, inPolyData];
862
780
  outPolyData.initialize();
863
- } // Get the line scalars
864
-
865
-
866
- var scalars = inLineData.getScalars();
781
+ }
867
782
 
783
+ // Get the line scalars
784
+ const scalars = inLineData.getScalars();
868
785
  if (model.generateOutline) {
869
786
  output.setLines(lines);
870
787
  } else if (scalars) {
871
788
  scalars.initialize();
872
789
  }
873
-
874
790
  if (model.generateFaces) {
875
791
  output.setPolys(polys);
876
-
877
792
  if (polys && scalars) {
878
- var pScalars = inPolyData.getScalars();
879
- var m = scalars.getNumberOfTuples();
880
- var n = pScalars.getNumberOfTuples();
881
-
793
+ const pScalars = inPolyData.getScalars();
794
+ const m = scalars.getNumberOfTuples();
795
+ const n = pScalars.getNumberOfTuples();
882
796
  if (n > 0) {
883
- var _color3 = [0, 0, 0]; // This is just to expand the array
797
+ const color = [0, 0, 0];
884
798
 
885
- scalars.insertTuple(n + m - 1, _color3); // Fill in the poly scalars
799
+ // This is just to expand the array
800
+ scalars.insertTuple(n + m - 1, color);
886
801
 
887
- for (var _i2 = 0; _i2 < n; _i2++) {
888
- pScalars.getTuple(_i2, _color3);
889
- scalars.setTuple(_i2 + m, _color3);
802
+ // Fill in the poly scalars
803
+ for (let i = 0; i < n; i++) {
804
+ pScalars.getTuple(i, color);
805
+ scalars.setTuple(i + m, color);
890
806
  }
891
807
  }
892
808
  }
893
809
  }
894
-
895
810
  if (scalars && model.scalarMode === ScalarMode.COLORS) {
896
811
  scalars.setName('Colors');
897
812
  output.getCellData().setScalars(scalars);
@@ -903,34 +818,33 @@ function vtkClipClosedSurface(publicAPI, model) {
903
818
  // output.getCellData().setScalars(categories);
904
819
  // categories.delete();
905
820
  // TODO: Check
906
- var categories = scalars.newClone();
821
+ const categories = scalars.newClone();
907
822
  categories.setData(scalars.getData().slice());
908
823
  categories.setName('Labels');
909
824
  output.getCellData().setScalars(categories);
910
825
  } else {
911
826
  output.getCellData().setScalars(null);
912
- } // Finally, store the points in the output
913
-
827
+ }
914
828
 
915
- squeezeOutputPoints(output, points, pointData, inputPointsType); // TODO: Check
829
+ // Finally, store the points in the output
830
+ squeezeOutputPoints(output, points, pointData, inputPointsType);
831
+ // TODO: Check
916
832
  // output.squeeze();
917
-
918
833
  outData[0] = output;
919
834
  };
920
-
921
- Object.keys(ScalarMode).forEach(function (key) {
922
- var name = capitalize(key.toLowerCase());
923
-
924
- publicAPI["setScalarModeTo".concat(name)] = function () {
835
+ Object.keys(ScalarMode).forEach(key => {
836
+ const name = capitalize(key.toLowerCase());
837
+ publicAPI[`setScalarModeTo${name}`] = () => {
925
838
  model.scalarMode = ScalarMode[key];
926
839
  };
927
840
  });
928
- } // ----------------------------------------------------------------------------
841
+ }
842
+
843
+ // ----------------------------------------------------------------------------
929
844
  // Object factory
930
845
  // ----------------------------------------------------------------------------
931
846
 
932
-
933
- var DEFAULT_VALUES = {
847
+ const DEFAULT_VALUES = {
934
848
  clippingPlanes: null,
935
849
  tolerance: 1e-6,
936
850
  passPointData: false,
@@ -945,28 +859,39 @@ var DEFAULT_VALUES = {
945
859
  // Sandy brown
946
860
  activePlaneColor: [227 / 255, 207 / 255, 87 / 255],
947
861
  // Banana
948
- triangulationErrorDisplay: false // _idList: null,
949
862
 
950
- }; // ----------------------------------------------------------------------------
863
+ triangulationErrorDisplay: false
864
+ // _idList: null,
865
+ };
866
+
867
+ // ----------------------------------------------------------------------------
951
868
 
952
869
  function extend(publicAPI, model) {
953
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
954
- Object.assign(model, DEFAULT_VALUES, initialValues); // Make this a VTK object
870
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
871
+ Object.assign(model, DEFAULT_VALUES, initialValues);
955
872
 
956
- macro.obj(publicAPI, model); // Also make it an algorithm with one input and one output
873
+ // Make this a VTK object
874
+ macro.obj(publicAPI, model);
957
875
 
876
+ // Also make it an algorithm with one input and one output
958
877
  macro.algo(publicAPI, model, 1, 1);
959
878
  macro.setGet(publicAPI, model, ['clippingPlanes', 'tolerance', 'passPointData', 'triangulatePolys', 'scalarMode', 'generateOutline', 'generateFaces', 'activePlaneId', 'triangulationErrorDisplay']);
960
- macro.setGetArray(publicAPI, model, ['baseColor', 'clipColor', 'activePlaneColor'], 3); // Object specific methods
879
+ macro.setGetArray(publicAPI, model, ['baseColor', 'clipColor', 'activePlaneColor'], 3);
961
880
 
881
+ // Object specific methods
962
882
  vtkClipClosedSurface(publicAPI, model);
963
- } // ----------------------------------------------------------------------------
883
+ }
884
+
885
+ // ----------------------------------------------------------------------------
886
+
887
+ const newInstance = macro.newInstance(extend, 'vtkClipClosedSurface');
964
888
 
965
- var newInstance = macro.newInstance(extend, 'vtkClipClosedSurface'); // ----------------------------------------------------------------------------
889
+ // ----------------------------------------------------------------------------
966
890
 
967
- var vtkClipClosedSurface$1 = _objectSpread({
968
- newInstance: newInstance,
969
- extend: extend
970
- }, Constants);
891
+ var vtkClipClosedSurface$1 = {
892
+ newInstance,
893
+ extend,
894
+ ...Constants
895
+ };
971
896
 
972
897
  export { vtkClipClosedSurface$1 as default, extend, newInstance };