@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,16 +1,21 @@
1
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
2
2
 
3
- var vtkErrorMacro = macro.vtkErrorMacro; // ----------------------------------------------------------------------------
3
+ const {
4
+ vtkErrorMacro
5
+ } = macro;
6
+
7
+ // ----------------------------------------------------------------------------
4
8
  // vtkPiecewiseFunction methods
5
9
  // ----------------------------------------------------------------------------
6
10
 
7
11
  function vtkPiecewiseFunction(publicAPI, model) {
8
12
  // Set our className
9
- model.classHierarchy.push('vtkPiecewiseFunction'); // Return the number of points which specify this function
13
+ model.classHierarchy.push('vtkPiecewiseFunction');
14
+
15
+ // Return the number of points which specify this function
16
+ publicAPI.getSize = () => model.nodes.length;
10
17
 
11
- publicAPI.getSize = function () {
12
- return model.nodes.length;
13
- }; // Return the type of function stored in object:
18
+ // Return the type of function stored in object:
14
19
  // Function Types:
15
20
  // 0 : Constant (No change in slope between end points)
16
21
  // 1 : NonDecreasing (Always increasing or zero slope)
@@ -18,20 +23,17 @@ function vtkPiecewiseFunction(publicAPI, model) {
18
23
  // 3 : Varied (Contains both decreasing and increasing slopes)
19
24
  // 4 : Unknown (Error condition)
20
25
  //
21
-
22
-
23
- publicAPI.getType = function () {
24
- var value;
25
- var prevValue = 0.0;
26
- var functionType = 0;
27
-
26
+ publicAPI.getType = () => {
27
+ let value;
28
+ let prevValue = 0.0;
29
+ let functionType = 0;
28
30
  if (model.nodes.length > 0) {
29
31
  prevValue = model.nodes[0].y;
30
32
  }
33
+ for (let i = 1; i < model.nodes.length; i++) {
34
+ value = model.nodes[i].y;
31
35
 
32
- for (var i = 1; i < model.nodes.length; i++) {
33
- value = model.nodes[i].y; // Do not change the function type if equal
34
-
36
+ // Do not change the function type if equal
35
37
  if (value !== prevValue) {
36
38
  if (value > prevValue) {
37
39
  switch (functionType) {
@@ -40,7 +42,6 @@ function vtkPiecewiseFunction(publicAPI, model) {
40
42
  // NonDecreasing
41
43
  functionType = 1;
42
44
  break;
43
-
44
45
  case 2:
45
46
  default:
46
47
  // Varied
@@ -55,7 +56,6 @@ function vtkPiecewiseFunction(publicAPI, model) {
55
56
  // NonIncreasing
56
57
  functionType = 2;
57
58
  break;
58
-
59
59
  case 1:
60
60
  default:
61
61
  // Varied
@@ -64,70 +64,61 @@ function vtkPiecewiseFunction(publicAPI, model) {
64
64
  }
65
65
  }
66
66
  }
67
+ prevValue = value;
67
68
 
68
- prevValue = value; // Exit loop if we find a Varied function
69
-
69
+ // Exit loop if we find a Varied function
70
70
  if (functionType === 3) {
71
71
  break;
72
72
  }
73
73
  }
74
-
75
74
  switch (functionType) {
76
75
  case 0:
77
76
  return 'Constant';
78
-
79
77
  case 1:
80
78
  return 'NonDecreasing';
81
-
82
79
  case 2:
83
80
  return 'NonIncreasing';
84
-
85
81
  case 3:
86
82
  default:
87
83
  return 'Varied';
88
84
  }
89
- }; // Since we no longer store the data in an array, we must
85
+ };
86
+
87
+ // Since we no longer store the data in an array, we must
90
88
  // copy out of the vector into an array. No modified check -
91
89
  // could be added if performance is a problem
92
-
93
-
94
- publicAPI.getDataPointer = function () {
95
- var size = model.nodes.length;
90
+ publicAPI.getDataPointer = () => {
91
+ const size = model.nodes.length;
96
92
  model.function = null;
97
-
98
93
  if (size > 0) {
99
94
  model.function = [];
100
-
101
- for (var i = 0; i < size; i++) {
95
+ for (let i = 0; i < size; i++) {
102
96
  model.function[2 * i] = model.nodes[i].x;
103
97
  model.function[2 * i + 1] = model.nodes[i].y;
104
98
  }
105
99
  }
106
-
107
100
  return model.function;
108
- }; // Returns the first point location which starts a non-zero segment of the
109
- // function. Note that the value at this point may be zero.
110
-
101
+ };
111
102
 
112
- publicAPI.getFirstNonZeroValue = function () {
103
+ // Returns the first point location which starts a non-zero segment of the
104
+ // function. Note that the value at this point may be zero.
105
+ publicAPI.getFirstNonZeroValue = () => {
113
106
  // Check if no points specified
114
107
  if (model.nodes.length === 0) {
115
108
  return 0;
116
109
  }
117
-
118
- var allZero = 1;
119
- var x = 0.0;
120
- var i = 0;
121
-
110
+ let allZero = 1;
111
+ let x = 0.0;
112
+ let i = 0;
122
113
  for (; i < model.nodes.length; i++) {
123
114
  if (model.nodes[i].y !== 0.0) {
124
115
  allZero = 0;
125
116
  break;
126
117
  }
127
- } // If every specified point has a zero value then return
128
- // a large value
129
-
118
+ }
130
119
 
120
+ // If every specified point has a zero value then return
121
+ // a large value
131
122
  if (allZero) {
132
123
  x = Number.MAX_VALUE;
133
124
  } else if (i > 0) {
@@ -142,348 +133,320 @@ function vtkPiecewiseFunction(publicAPI, model) {
142
133
  } else {
143
134
  x = model.nodes[0].x;
144
135
  }
145
-
146
136
  return x;
147
- }; // For a specified index value, get the node parameters
148
-
149
-
150
- publicAPI.getNodeValue = function (index, val) {
151
- var size = model.nodes.length;
137
+ };
152
138
 
139
+ // For a specified index value, get the node parameters
140
+ publicAPI.getNodeValue = (index, val) => {
141
+ const size = model.nodes.length;
153
142
  if (index < 0 || index >= size) {
154
143
  vtkErrorMacro('Index out of range!');
155
144
  return -1;
156
145
  }
157
-
158
146
  val[0] = model.nodes[index].x;
159
147
  val[1] = model.nodes[index].y;
160
148
  val[2] = model.nodes[index].midpoint;
161
149
  val[3] = model.nodes[index].sharpness;
162
150
  return 1;
163
- }; // For a specified index value, get the node parameters
164
-
165
-
166
- publicAPI.setNodeValue = function (index, val) {
167
- var size = model.nodes.length;
151
+ };
168
152
 
153
+ // For a specified index value, get the node parameters
154
+ publicAPI.setNodeValue = (index, val) => {
155
+ const size = model.nodes.length;
169
156
  if (index < 0 || index >= size) {
170
157
  vtkErrorMacro('Index out of range!');
171
158
  return -1;
172
159
  }
173
-
174
- var oldX = model.nodes[index].x;
160
+ const oldX = model.nodes[index].x;
175
161
  model.nodes[index].x = val[0];
176
162
  model.nodes[index].y = val[1];
177
163
  model.nodes[index].midpoint = val[2];
178
164
  model.nodes[index].sharpness = val[3];
179
-
180
165
  if (oldX !== val[0]) {
181
166
  // The point has been moved, the order of points or the range might have
182
167
  // been modified.
183
- publicAPI.sortAndUpdateRange(); // No need to call Modified() here because SortAndUpdateRange() has done it
168
+ publicAPI.sortAndUpdateRange();
169
+ // No need to call Modified() here because SortAndUpdateRange() has done it
184
170
  // already.
185
171
  } else {
186
172
  publicAPI.modified();
187
173
  }
188
-
189
174
  return 1;
190
- }; // Adds a point to the function. If a duplicate point is inserted
175
+ };
176
+
177
+ // Adds a point to the function. If a duplicate point is inserted
191
178
  // then the function value at that location is set to the new value.
192
179
  // This is the legacy version that assumes midpoint = 0.5 and
193
180
  // sharpness = 0.0
181
+ publicAPI.addPoint = (x, y) => publicAPI.addPointLong(x, y, 0.5, 0.0);
194
182
 
195
-
196
- publicAPI.addPoint = function (x, y) {
197
- return publicAPI.addPointLong(x, y, 0.5, 0.0);
198
- }; // Adds a point to the function and returns the array index of the point.
199
-
200
-
201
- publicAPI.addPointLong = function (x, y, midpoint, sharpness) {
183
+ // Adds a point to the function and returns the array index of the point.
184
+ publicAPI.addPointLong = (x, y, midpoint, sharpness) => {
202
185
  // Error check
203
186
  if (midpoint < 0.0 || midpoint > 1.0) {
204
187
  vtkErrorMacro('Midpoint outside range [0.0, 1.0]');
205
188
  return -1;
206
189
  }
207
-
208
190
  if (sharpness < 0.0 || sharpness > 1.0) {
209
191
  vtkErrorMacro('Sharpness outside range [0.0, 1.0]');
210
192
  return -1;
211
- } // remove any node already at this X location
212
-
193
+ }
213
194
 
195
+ // remove any node already at this X location
214
196
  if (!model.allowDuplicateScalars) {
215
197
  publicAPI.removePoint(x);
216
- } // Create the new node
217
-
198
+ }
218
199
 
219
- var node = {
220
- x: x,
221
- y: y,
222
- midpoint: midpoint,
223
- sharpness: sharpness
224
- }; // Add it, then sort to get everything in order
200
+ // Create the new node
201
+ const node = {
202
+ x,
203
+ y,
204
+ midpoint,
205
+ sharpness
206
+ };
225
207
 
208
+ // Add it, then sort to get everything in order
226
209
  model.nodes.push(node);
227
- publicAPI.sortAndUpdateRange(); // Now find this node so we can return the index
228
-
229
- var i;
210
+ publicAPI.sortAndUpdateRange();
230
211
 
212
+ // Now find this node so we can return the index
213
+ let i;
231
214
  for (i = 0; i < model.nodes.length; i++) {
232
215
  if (model.nodes[i].x === x) {
233
216
  break;
234
217
  }
235
- } // If we didn't find it, something went horribly wrong so
236
- // return -1
237
-
218
+ }
238
219
 
220
+ // If we didn't find it, something went horribly wrong so
221
+ // return -1
239
222
  if (i < model.nodes.length) {
240
223
  return i;
241
224
  }
242
-
243
225
  return -1;
244
226
  };
245
-
246
- publicAPI.setNodes = function (nodes) {
227
+ publicAPI.setNodes = nodes => {
247
228
  if (model.nodes !== nodes) {
248
229
  model.nodes = nodes;
249
230
  publicAPI.sortAndUpdateRange();
250
231
  }
251
- }; // Sort the vector in increasing order, then fill in
252
- // the Range
253
-
254
-
255
- publicAPI.sortAndUpdateRange = function () {
256
- model.nodes.sort(function (a, b) {
257
- return a.x - b.x;
258
- });
259
- var modifiedInvoked = publicAPI.updateRange(); // If range is updated, Modified() has been called, don't call it again.
232
+ };
260
233
 
234
+ // Sort the vector in increasing order, then fill in
235
+ // the Range
236
+ publicAPI.sortAndUpdateRange = () => {
237
+ model.nodes.sort((a, b) => a.x - b.x);
238
+ const modifiedInvoked = publicAPI.updateRange();
239
+ // If range is updated, Modified() has been called, don't call it again.
261
240
  if (!modifiedInvoked) {
262
241
  publicAPI.modified();
263
242
  }
264
- }; //----------------------------------------------------------------------------
265
-
266
-
267
- publicAPI.updateRange = function () {
268
- var oldRange = model.range.slice();
269
- var size = model.nodes.length;
243
+ };
270
244
 
245
+ //----------------------------------------------------------------------------
246
+ publicAPI.updateRange = () => {
247
+ const oldRange = model.range.slice();
248
+ const size = model.nodes.length;
271
249
  if (size) {
272
250
  model.range[0] = model.nodes[0].x;
273
251
  model.range[1] = model.nodes[size - 1].x;
274
252
  } else {
275
253
  model.range[0] = 0;
276
254
  model.range[1] = 0;
277
- } // If the rage is the same, then no need to call Modified()
278
-
279
-
255
+ }
256
+ // If the rage is the same, then no need to call Modified()
280
257
  if (oldRange[0] === model.range[0] && oldRange[1] === model.range[1]) {
281
258
  return false;
282
259
  }
283
-
284
260
  publicAPI.modified();
285
261
  return true;
286
- }; // Removes a point from the function. If no point is found then function
287
- // remains the same.
288
-
262
+ };
289
263
 
290
- publicAPI.removePoint = function (x) {
264
+ // Removes a point from the function. If no point is found then function
265
+ // remains the same.
266
+ publicAPI.removePoint = x => {
291
267
  // First find the node since we need to know its
292
268
  // index as our return value
293
- var i;
294
-
269
+ let i;
295
270
  for (i = 0; i < model.nodes.length; i++) {
296
271
  if (model.nodes[i].x === x) {
297
272
  break;
298
273
  }
299
- } // If the node doesn't exist, we return -1
300
-
274
+ }
301
275
 
276
+ // If the node doesn't exist, we return -1
302
277
  if (i >= model.nodes.length) {
303
278
  return -1;
304
279
  }
280
+ const retVal = i;
305
281
 
306
- var retVal = i; // If the first or last point has been removed, then we update the range
282
+ // If the first or last point has been removed, then we update the range
307
283
  // No need to sort here as the order of points hasn't changed.
308
-
309
- var modifiedInvoked = false;
284
+ let modifiedInvoked = false;
310
285
  model.nodes.splice(i, 1);
311
-
312
286
  if (i === 0 || i === model.nodes.length) {
313
287
  modifiedInvoked = publicAPI.updateRange();
314
288
  }
315
-
316
289
  if (!modifiedInvoked) {
317
290
  publicAPI.modified();
318
291
  }
319
-
320
292
  return retVal;
321
- }; // Removes all points from the function.
322
-
293
+ };
323
294
 
324
- publicAPI.removeAllPoints = function () {
295
+ // Removes all points from the function.
296
+ publicAPI.removeAllPoints = () => {
325
297
  model.nodes = [];
326
298
  publicAPI.sortAndUpdateRange();
327
- }; // Add in end points of line and remove any points between them
328
- // Legacy method with no way to specify midpoint and sharpness
329
-
299
+ };
330
300
 
331
- publicAPI.addSegment = function (x1, y1, x2, y2) {
301
+ // Add in end points of line and remove any points between them
302
+ // Legacy method with no way to specify midpoint and sharpness
303
+ publicAPI.addSegment = (x1, y1, x2, y2) => {
332
304
  // First, find all points in this range and remove them
333
305
  publicAPI.sortAndUpdateRange();
334
-
335
- for (var i = 0; i < model.nodes.length;) {
306
+ for (let i = 0; i < model.nodes.length;) {
336
307
  if (model.nodes[i].x >= x1 && model.nodes[i].x <= x2) {
337
308
  model.nodes.splice(i, 1);
338
309
  } else {
339
310
  i++;
340
311
  }
341
- } // Now add the points
342
-
312
+ }
343
313
 
314
+ // Now add the points
344
315
  publicAPI.addPoint(x1, y1, 0.5, 0.0);
345
316
  publicAPI.addPoint(x2, y2, 0.5, 0.0);
346
- }; // Return the value of the function at a position
347
-
317
+ };
348
318
 
349
- publicAPI.getValue = function (x) {
350
- var table = [];
319
+ // Return the value of the function at a position
320
+ publicAPI.getValue = x => {
321
+ const table = [];
351
322
  publicAPI.getTable(x, x, 1, table);
352
323
  return table[0];
353
- }; // Remove all points outside the range, and make sure a point
324
+ };
325
+
326
+ // Remove all points outside the range, and make sure a point
354
327
  // exists at each end of the range. Used as a convenience method
355
328
  // for transfer function editors
356
-
357
-
358
- publicAPI.adjustRange = function (range) {
329
+ publicAPI.adjustRange = range => {
359
330
  if (range.length < 2) {
360
331
  return 0;
361
332
  }
333
+ const functionRange = publicAPI.getRange();
362
334
 
363
- var functionRange = publicAPI.getRange(); // Make sure we have points at each end of the range
364
-
335
+ // Make sure we have points at each end of the range
365
336
  if (functionRange[0] < range[0]) {
366
337
  publicAPI.addPoint(range[0], publicAPI.getValue(range[0]));
367
338
  } else {
368
339
  publicAPI.addPoint(range[0], publicAPI.getValue(functionRange[0]));
369
340
  }
370
-
371
341
  if (functionRange[1] > range[1]) {
372
342
  publicAPI.addPoint(range[1], publicAPI.getValue(range[1]));
373
343
  } else {
374
344
  publicAPI.addPoint(range[1], publicAPI.getValue(functionRange[1]));
375
- } // Remove all points out-of-range
376
-
345
+ }
377
346
 
347
+ // Remove all points out-of-range
378
348
  publicAPI.sortAndUpdateRange();
379
-
380
- for (var i = 0; i < model.nodes.length;) {
349
+ for (let i = 0; i < model.nodes.length;) {
381
350
  if (model.nodes[i].x >= range[0] && model.nodes[i].x <= range[1]) {
382
351
  model.nodes.splice(i, 1);
383
352
  } else {
384
353
  ++i;
385
354
  }
386
355
  }
387
-
388
356
  publicAPI.sortAndUpdateRange();
389
357
  return 1;
390
- }; //--------------------------------------------------------------------------
391
-
358
+ };
392
359
 
393
- publicAPI.estimateMinNumberOfSamples = function (x1, x2) {
394
- var d = publicAPI.findMinimumXDistance();
360
+ //--------------------------------------------------------------------------
361
+ publicAPI.estimateMinNumberOfSamples = (x1, x2) => {
362
+ const d = publicAPI.findMinimumXDistance();
395
363
  return Math.ceil((x2 - x1) / d);
396
- }; //----------------------------------------------------------------------------
397
-
398
-
399
- publicAPI.findMinimumXDistance = function () {
400
- var size = model.nodes.length;
364
+ };
401
365
 
366
+ //----------------------------------------------------------------------------
367
+ publicAPI.findMinimumXDistance = () => {
368
+ const size = model.nodes.length;
402
369
  if (size < 2) {
403
370
  return -1.0;
404
371
  }
405
-
406
- var distance = model.nodes[1].x - model.nodes[0].x;
407
-
408
- for (var i = 0; i < size - 1; i++) {
409
- var currentDist = model.nodes[i + 1].x - model.nodes[i].x;
410
-
372
+ let distance = model.nodes[1].x - model.nodes[0].x;
373
+ for (let i = 0; i < size - 1; i++) {
374
+ const currentDist = model.nodes[i + 1].x - model.nodes[i].x;
411
375
  if (currentDist < distance) {
412
376
  distance = currentDist;
413
377
  }
414
378
  }
415
-
416
379
  return distance;
417
- }; // Returns a table of function values evaluated at regular intervals
380
+ };
418
381
 
382
+ // Returns a table of function values evaluated at regular intervals
419
383
  /* eslint-disable prefer-destructuring */
420
-
421
384
  /* eslint-disable no-continue */
422
-
423
-
424
385
  publicAPI.getTable = function (xStart, xEnd, size, table) {
425
- var stride = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
426
- var i;
427
- var idx = 0;
428
- var numNodes = model.nodes.length; // Need to keep track of the last value so that
386
+ let stride = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
387
+ let i;
388
+ let idx = 0;
389
+ const numNodes = model.nodes.length;
390
+
391
+ // Need to keep track of the last value so that
429
392
  // we can fill in table locations past this with
430
393
  // this value if Clamping is On.
431
-
432
- var lastValue = 0.0;
433
-
394
+ let lastValue = 0.0;
434
395
  if (numNodes !== 0) {
435
396
  lastValue = model.nodes[numNodes - 1].y;
436
397
  }
437
-
438
- var x = 0.0;
439
- var x1 = 0.0;
440
- var x2 = 0.0;
441
- var y1 = 0.0;
442
- var y2 = 0.0;
443
- var midpoint = 0.0;
444
- var sharpness = 0.0; // For each table entry
445
-
398
+ let x = 0.0;
399
+ let x1 = 0.0;
400
+ let x2 = 0.0;
401
+ let y1 = 0.0;
402
+ let y2 = 0.0;
403
+ let midpoint = 0.0;
404
+ let sharpness = 0.0;
405
+
406
+ // For each table entry
446
407
  for (i = 0; i < size; i++) {
447
408
  // Find our location in the table
448
- var tidx = stride * i; // Find our X location. If we are taking only 1 sample, make
409
+ const tidx = stride * i;
410
+
411
+ // Find our X location. If we are taking only 1 sample, make
449
412
  // it halfway between start and end (usually start and end will
450
413
  // be the same in this case)
451
-
452
414
  if (size > 1) {
453
415
  x = xStart + i / (size - 1.0) * (xEnd - xStart);
454
416
  } else {
455
417
  x = 0.5 * (xStart + xEnd);
456
- } // Do we need to move to the next node?
457
-
418
+ }
458
419
 
420
+ // Do we need to move to the next node?
459
421
  while (idx < numNodes && x > model.nodes[idx].x) {
460
- idx++; // If we are at a valid point index, fill in
422
+ idx++;
423
+ // If we are at a valid point index, fill in
461
424
  // the value at this node, and the one before (the
462
425
  // two that surround our current sample location)
463
426
  // idx cannot be 0 since we just incremented it.
464
-
465
427
  if (idx < numNodes) {
466
428
  x1 = model.nodes[idx - 1].x;
467
429
  x2 = model.nodes[idx].x;
468
430
  y1 = model.nodes[idx - 1].y;
469
- y2 = model.nodes[idx].y; // We only need the previous midpoint and sharpness
470
- // since these control this region
431
+ y2 = model.nodes[idx].y;
471
432
 
433
+ // We only need the previous midpoint and sharpness
434
+ // since these control this region
472
435
  midpoint = model.nodes[idx - 1].midpoint;
473
- sharpness = model.nodes[idx - 1].sharpness; // Move midpoint away from extreme ends of range to avoid
474
- // degenerate math
436
+ sharpness = model.nodes[idx - 1].sharpness;
475
437
 
438
+ // Move midpoint away from extreme ends of range to avoid
439
+ // degenerate math
476
440
  if (midpoint < 0.00001) {
477
441
  midpoint = 0.00001;
478
442
  }
479
-
480
443
  if (midpoint > 0.99999) {
481
444
  midpoint = 0.99999;
482
445
  }
483
446
  }
484
- } // Are we at the end? If so, just use the last value
485
-
447
+ }
486
448
 
449
+ // Are we at the end? If so, just use the last value
487
450
  if (idx >= numNodes) {
488
451
  table[tidx] = model.clamping ? lastValue : 0.0;
489
452
  } else if (idx === 0) {
@@ -495,16 +458,17 @@ function vtkPiecewiseFunction(publicAPI, model) {
495
458
  // we will be modifying this based on midpoint and
496
459
  // sharpness to get the curve shape we want and to have
497
460
  // it pass through (y1+y2)/2 at the midpoint.
498
- var s = (x - x1) / (x2 - x1); // Readjust based on the midpoint - linear adjustment
461
+ let s = (x - x1) / (x2 - x1);
499
462
 
463
+ // Readjust based on the midpoint - linear adjustment
500
464
  if (s < midpoint) {
501
465
  s = 0.5 * s / midpoint;
502
466
  } else {
503
467
  s = 0.5 + 0.5 * (s - midpoint) / (1.0 - midpoint);
504
- } // override for sharpness > 0.99
505
- // In this case we just want piecewise constant
506
-
468
+ }
507
469
 
470
+ // override for sharpness > 0.99
471
+ // In this case we just want piecewise constant
508
472
  if (sharpness > 0.99) {
509
473
  // Use the first value since we are below the midpoint
510
474
  if (s < 0.5) {
@@ -515,44 +479,48 @@ function vtkPiecewiseFunction(publicAPI, model) {
515
479
  table[tidx] = y2;
516
480
  continue;
517
481
  }
518
- } // Override for sharpness < 0.01
519
- // In this case we want piecewise linear
520
-
482
+ }
521
483
 
484
+ // Override for sharpness < 0.01
485
+ // In this case we want piecewise linear
522
486
  if (sharpness < 0.01) {
523
487
  // Simple linear interpolation
524
488
  table[tidx] = (1 - s) * y1 + s * y2;
525
489
  continue;
526
- } // We have a sharpness between [0.01, 0.99] - we will
490
+ }
491
+
492
+ // We have a sharpness between [0.01, 0.99] - we will
527
493
  // used a modified hermite curve interpolation where we
528
494
  // derive the slope based on the sharpness, and we compress
529
495
  // the curve non-linearly based on the sharpness
496
+
530
497
  // First, we will adjust our position based on sharpness in
531
498
  // order to make the curve sharper (closer to piecewise constant)
532
-
533
-
534
499
  if (s < 0.5) {
535
- s = 0.5 * Math.pow(s * 2, 1.0 + 10 * sharpness);
500
+ s = 0.5 * (s * 2) ** (1.0 + 10 * sharpness);
536
501
  } else if (s > 0.5) {
537
- s = 1.0 - 0.5 * Math.pow((1.0 - s) * 2, 1 + 10 * sharpness);
538
- } // Compute some coefficients we will need for the hermite curve
502
+ s = 1.0 - 0.5 * ((1.0 - s) * 2) ** (1 + 10 * sharpness);
503
+ }
539
504
 
505
+ // Compute some coefficients we will need for the hermite curve
506
+ const ss = s * s;
507
+ const sss = ss * s;
508
+ const h1 = 2 * sss - 3 * ss + 1;
509
+ const h2 = -2 * sss + 3 * ss;
510
+ const h3 = sss - 2 * ss + s;
511
+ const h4 = sss - ss;
540
512
 
541
- var ss = s * s;
542
- var sss = ss * s;
543
- var h1 = 2 * sss - 3 * ss + 1;
544
- var h2 = -2 * sss + 3 * ss;
545
- var h3 = sss - 2 * ss + s;
546
- var h4 = sss - ss; // Use one slope for both end points
513
+ // Use one slope for both end points
514
+ const slope = y2 - y1;
515
+ const t = (1.0 - sharpness) * slope;
547
516
 
548
- var slope = y2 - y1;
549
- var t = (1.0 - sharpness) * slope; // Compute the value
517
+ // Compute the value
518
+ table[tidx] = h1 * y1 + h2 * y2 + h3 * t + h4 * t;
550
519
 
551
- table[tidx] = h1 * y1 + h2 * y2 + h3 * t + h4 * t; // Final error check to make sure we don't go outside
520
+ // Final error check to make sure we don't go outside
552
521
  // the Y range
553
-
554
- var min = y1 < y2 ? y1 : y2;
555
- var max = y1 > y2 ? y1 : y2;
522
+ const min = y1 < y2 ? y1 : y2;
523
+ const max = y1 > y2 ? y1 : y2;
556
524
  table[tidx] = table[tidx] < min ? min : table[tidx];
557
525
  table[tidx] = table[tidx] > max ? max : table[tidx];
558
526
  }
@@ -560,42 +528,53 @@ function vtkPiecewiseFunction(publicAPI, model) {
560
528
  };
561
529
  }
562
530
  /* eslint-enable prefer-destructuring */
563
-
564
531
  /* eslint-enable no-continue */
532
+
565
533
  // ----------------------------------------------------------------------------
566
534
  // Object factory
567
535
  // ----------------------------------------------------------------------------
568
536
 
569
-
570
- var DEFAULT_VALUES = {
537
+ const DEFAULT_VALUES = {
571
538
  // model.function = NULL;
572
539
  range: [0, 0],
573
540
  clamping: true,
574
541
  allowDuplicateScalars: false
575
- }; // ----------------------------------------------------------------------------
542
+ };
543
+
544
+ // ----------------------------------------------------------------------------
576
545
 
577
546
  function extend(publicAPI, model) {
578
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
579
- Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance
547
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
548
+ Object.assign(model, DEFAULT_VALUES, initialValues);
580
549
 
581
- macro.obj(publicAPI, model); // Internal objects initialization
550
+ // Inheritance
551
+ macro.obj(publicAPI, model);
582
552
 
583
- model.nodes = []; // Create get-set macros
553
+ // Internal objects initialization
554
+ model.nodes = [];
584
555
 
556
+ // Create get-set macros
585
557
  macro.setGet(publicAPI, model, ['allowDuplicateScalars', 'clamping']);
586
- macro.setArray(publicAPI, model, ['range'], 2); // Create get macros for array
558
+ macro.setArray(publicAPI, model, ['range'], 2);
587
559
 
588
- macro.getArray(publicAPI, model, ['range']); // For more macro methods, see "Sources/macros.js"
589
- // Object specific methods
560
+ // Create get macros for array
561
+ macro.getArray(publicAPI, model, ['range']);
590
562
 
563
+ // For more macro methods, see "Sources/macros.js"
564
+
565
+ // Object specific methods
591
566
  vtkPiecewiseFunction(publicAPI, model);
592
- } // ----------------------------------------------------------------------------
567
+ }
568
+
569
+ // ----------------------------------------------------------------------------
593
570
 
594
- var newInstance = macro.newInstance(extend, 'vtkPiecewiseFunction'); // ----------------------------------------------------------------------------
571
+ const newInstance = macro.newInstance(extend, 'vtkPiecewiseFunction');
572
+
573
+ // ----------------------------------------------------------------------------
595
574
 
596
575
  var vtkPiecewiseFunction$1 = {
597
- newInstance: newInstance,
598
- extend: extend
576
+ newInstance,
577
+ extend
599
578
  };
600
579
 
601
580
  export { vtkPiecewiseFunction$1 as default, extend, newInstance };