@kitware/vtk.js 28.10.1 → 28.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/Common/Core/Base64.js +53 -82
  2. package/Common/Core/CellArray.js +52 -60
  3. package/Common/Core/ClassHierarchy.js +8 -36
  4. package/Common/Core/DataArray/Constants.js +6 -6
  5. package/Common/Core/DataArray.js +185 -270
  6. package/Common/Core/Endian.js +14 -17
  7. package/Common/Core/HalfFloat.js +17 -34
  8. package/Common/Core/ImageHelper.js +17 -25
  9. package/Common/Core/LookupTable.js +131 -144
  10. package/Common/Core/Math/Constants.js +8 -8
  11. package/Common/Core/Math/index.js +778 -903
  12. package/Common/Core/Math.d.ts +14 -0
  13. package/Common/Core/Math.js +2 -4
  14. package/Common/Core/MatrixBuilder.js +99 -151
  15. package/Common/Core/Points.js +43 -43
  16. package/Common/Core/PriorityQueue.js +30 -28
  17. package/Common/Core/ProgressHandler.js +31 -32
  18. package/Common/Core/ScalarsToColors/Constants.js +4 -4
  19. package/Common/Core/ScalarsToColors.js +196 -253
  20. package/Common/Core/StringArray.js +48 -73
  21. package/Common/Core/URLExtract.js +10 -29
  22. package/Common/Core/VariantArray.js +48 -73
  23. package/Common/Core.js +11 -11
  24. package/Common/DataModel/AbstractPointLocator.js +19 -17
  25. package/Common/DataModel/BoundingBox.js +322 -490
  26. package/Common/DataModel/Box.js +46 -63
  27. package/Common/DataModel/CardinalSpline1D.js +92 -102
  28. package/Common/DataModel/Cell.js +41 -61
  29. package/Common/DataModel/CellLinks.js +91 -127
  30. package/Common/DataModel/CellTypes/Constants.js +7 -6
  31. package/Common/DataModel/CellTypes.js +55 -74
  32. package/Common/DataModel/Collection.js +45 -61
  33. package/Common/DataModel/Cone.js +28 -20
  34. package/Common/DataModel/Cylinder.js +41 -35
  35. package/Common/DataModel/DataSet/Constants.js +11 -5
  36. package/Common/DataModel/DataSet.js +37 -25
  37. package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
  38. package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
  39. package/Common/DataModel/DataSetAttributes.js +96 -138
  40. package/Common/DataModel/EdgeLocator.js +45 -70
  41. package/Common/DataModel/ITKHelper.js +67 -137
  42. package/Common/DataModel/ImageData.js +115 -172
  43. package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
  44. package/Common/DataModel/ImplicitBoolean.js +66 -96
  45. package/Common/DataModel/IncrementalOctreeNode.js +201 -231
  46. package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
  47. package/Common/DataModel/KochanekSpline1D.js +78 -81
  48. package/Common/DataModel/Line/Constants.js +2 -2
  49. package/Common/DataModel/Line.js +82 -105
  50. package/Common/DataModel/Locator.js +17 -10
  51. package/Common/DataModel/Molecule.js +26 -17
  52. package/Common/DataModel/PiecewiseFunction.js +218 -239
  53. package/Common/DataModel/Plane.js +90 -113
  54. package/Common/DataModel/PointSet.js +30 -26
  55. package/Common/DataModel/PolyData/Constants.js +2 -2
  56. package/Common/DataModel/PolyData.js +95 -120
  57. package/Common/DataModel/PolyLine.js +44 -61
  58. package/Common/DataModel/Polygon/Constants.js +4 -4
  59. package/Common/DataModel/Polygon.js +128 -169
  60. package/Common/DataModel/Quad/Constants.js +2 -2
  61. package/Common/DataModel/Quad.js +61 -100
  62. package/Common/DataModel/SelectionNode/Constants.js +5 -4
  63. package/Common/DataModel/SelectionNode.js +25 -21
  64. package/Common/DataModel/Sphere.js +40 -35
  65. package/Common/DataModel/Spline1D/Constants.js +3 -2
  66. package/Common/DataModel/Spline1D.js +34 -18
  67. package/Common/DataModel/Spline3D/Constants.js +2 -2
  68. package/Common/DataModel/Spline3D.js +46 -41
  69. package/Common/DataModel/StructuredData/Constants.js +2 -2
  70. package/Common/DataModel/StructuredData.js +9 -20
  71. package/Common/DataModel/Triangle.js +207 -250
  72. package/Common/DataModel.js +19 -19
  73. package/Common/System/MobileVR.js +56 -61
  74. package/Common/System/TimerLog.js +1 -1
  75. package/Common/System.js +2 -2
  76. package/Common/Transform/LandmarkTransform/Constants.js +2 -2
  77. package/Common/Transform/LandmarkTransform.js +133 -117
  78. package/Common/Transform/Transform.js +42 -57
  79. package/Common/Transform.js +2 -2
  80. package/Common/index.js +4 -4
  81. package/Filters/Core/Cutter.js +134 -146
  82. package/Filters/Core/PolyDataNormals.js +44 -50
  83. package/Filters/Core.js +2 -2
  84. package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
  85. package/Filters/Cornerstone.js +1 -1
  86. package/Filters/General/AppendPolyData.js +84 -100
  87. package/Filters/General/Calculator.js +95 -163
  88. package/Filters/General/ClipClosedSurface/Constants.js +2 -2
  89. package/Filters/General/ClipClosedSurface.js +341 -416
  90. package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
  91. package/Filters/General/ContourTriangulator/Constants.js +2 -2
  92. package/Filters/General/ContourTriangulator/helper.js +684 -812
  93. package/Filters/General/ContourTriangulator.js +92 -89
  94. package/Filters/General/ImageCropFilter.js +77 -78
  95. package/Filters/General/ImageDataOutlineFilter.js +42 -36
  96. package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
  97. package/Filters/General/ImageMarchingCubes.js +99 -112
  98. package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
  99. package/Filters/General/ImageMarchingSquares.js +93 -118
  100. package/Filters/General/ImageOutlineFilter.js +53 -54
  101. package/Filters/General/ImageSliceFilter.js +39 -30
  102. package/Filters/General/ImageStreamline.js +107 -124
  103. package/Filters/General/LineFilter.js +26 -15
  104. package/Filters/General/MoleculeToRepresentation.js +136 -149
  105. package/Filters/General/OBBTree/OBBNode.js +36 -34
  106. package/Filters/General/OBBTree/helper.js +19 -24
  107. package/Filters/General/OBBTree.js +396 -488
  108. package/Filters/General/OutlineFilter.js +52 -34
  109. package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
  110. package/Filters/General/PaintFilter.js +150 -162
  111. package/Filters/General/ScalarToRGBA.js +38 -33
  112. package/Filters/General/TriangleFilter.js +65 -62
  113. package/Filters/General/TubeFilter/Constants.js +4 -4
  114. package/Filters/General/TubeFilter.js +376 -496
  115. package/Filters/General/WarpScalar.js +58 -60
  116. package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
  117. package/Filters/General.js +21 -21
  118. package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
  119. package/Filters/Sources/Arrow2DSource.js +56 -56
  120. package/Filters/Sources/ArrowSource.js +39 -29
  121. package/Filters/Sources/CircleSource.js +43 -43
  122. package/Filters/Sources/ConcentricCylinderSource.js +151 -174
  123. package/Filters/Sources/ConeSource.js +51 -42
  124. package/Filters/Sources/CubeSource.js +75 -96
  125. package/Filters/Sources/Cursor3D.js +94 -109
  126. package/Filters/Sources/CylinderSource.js +90 -90
  127. package/Filters/Sources/ImageGridSource.js +43 -43
  128. package/Filters/Sources/LineSource.js +49 -39
  129. package/Filters/Sources/PlaneSource.js +97 -104
  130. package/Filters/Sources/PointSource.js +46 -37
  131. package/Filters/Sources/RTAnalyticSource.js +50 -48
  132. package/Filters/Sources/SLICSource.js +63 -73
  133. package/Filters/Sources/SphereSource.js +88 -78
  134. package/Filters/Sources/ViewFinderSource.js +26 -23
  135. package/Filters/Sources.js +14 -14
  136. package/Filters/Texture/TextureMapToPlane.js +95 -97
  137. package/Filters/Texture/TextureMapToSphere.js +46 -54
  138. package/Filters/Texture.js +2 -2
  139. package/Filters/index.js +5 -5
  140. package/IO/Core/BinaryHelper.js +12 -18
  141. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
  142. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
  143. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
  144. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
  145. package/IO/Core/DataAccessHelper.js +6 -6
  146. package/IO/Core/HttpDataSetReader.js +136 -139
  147. package/IO/Core/HttpDataSetSeriesReader.js +64 -75
  148. package/IO/Core/HttpSceneLoader.js +130 -179
  149. package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
  150. package/IO/Core/ImageStream/ViewStream.js +100 -103
  151. package/IO/Core/ImageStream.js +62 -54
  152. package/IO/Core/ResourceLoader.js +10 -9
  153. package/IO/Core/Serializer/ArraySerializer.js +40 -40
  154. package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
  155. package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
  156. package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
  157. package/IO/Core/Serializer.js +6 -13
  158. package/IO/Core/WSLinkClient.js +90 -76
  159. package/IO/Core/ZipMultiDataSetReader.js +46 -44
  160. package/IO/Core/ZipMultiDataSetWriter.js +43 -34
  161. package/IO/Core.js +7 -7
  162. package/IO/Geometry/DracoReader.js +118 -121
  163. package/IO/Geometry/PLYReader.js +163 -223
  164. package/IO/Geometry/PLYWriter/Constants.js +5 -5
  165. package/IO/Geometry/PLYWriter.js +139 -154
  166. package/IO/Geometry/STLReader.js +123 -146
  167. package/IO/Geometry/STLWriter/Constants.js +2 -2
  168. package/IO/Geometry/STLWriter.js +83 -82
  169. package/IO/Geometry.js +5 -5
  170. package/IO/Legacy/LegacyAsciiParser.js +78 -139
  171. package/IO/Legacy/PolyDataReader.js +48 -36
  172. package/IO/Legacy.js +2 -2
  173. package/IO/Misc/ElevationReader.js +67 -60
  174. package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
  175. package/IO/Misc/ITKImageReader.js +58 -45
  176. package/IO/Misc/ITKPolyDataReader.js +50 -38
  177. package/IO/Misc/JSONNucleoReader.js +49 -42
  178. package/IO/Misc/JSONReader.js +38 -33
  179. package/IO/Misc/MTLReader.js +74 -119
  180. package/IO/Misc/OBJReader.js +153 -206
  181. package/IO/Misc/PDBReader.js +70 -68
  182. package/IO/Misc/SkyboxReader.js +77 -82
  183. package/IO/Misc.js +9 -9
  184. package/IO/XML/XMLImageDataReader.js +36 -38
  185. package/IO/XML/XMLImageDataWriter.js +28 -21
  186. package/IO/XML/XMLPolyDataReader.js +49 -46
  187. package/IO/XML/XMLPolyDataWriter.js +43 -42
  188. package/IO/XML/XMLReader.js +262 -304
  189. package/IO/XML/XMLWriter/Constants.js +3 -3
  190. package/IO/XML/XMLWriter.js +70 -84
  191. package/IO/XML.js +6 -6
  192. package/IO/index.js +5 -5
  193. package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
  194. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
  195. package/Imaging/Core/AbstractImageInterpolator.js +74 -87
  196. package/Imaging/Core/ImageInterpolator.js +201 -252
  197. package/Imaging/Core/ImagePointDataIterator.js +96 -122
  198. package/Imaging/Core/ImageReslice/Constants.js +2 -2
  199. package/Imaging/Core/ImageReslice.js +327 -464
  200. package/Imaging/Core.js +4 -4
  201. package/Imaging/Hybrid/SampleFunction.js +58 -51
  202. package/Imaging/Hybrid.js +1 -1
  203. package/Imaging/index.js +2 -2
  204. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
  205. package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
  206. package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
  207. package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
  208. package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
  209. package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
  210. package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
  211. package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
  212. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
  213. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
  214. package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
  215. package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
  216. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
  217. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
  218. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
  219. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
  220. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
  221. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
  222. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
  223. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
  224. package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
  225. package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
  226. package/Interaction/Manipulators.js +21 -21
  227. package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
  228. package/Interaction/Misc.js +1 -1
  229. package/Interaction/Style/InteractorStyleImage.js +101 -121
  230. package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
  231. package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
  232. package/Interaction/Style/InteractorStyleManipulator.js +254 -329
  233. package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
  234. package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
  235. package/Interaction/Style/InteractorStyleUnicam.js +30 -38
  236. package/Interaction/Style.js +5 -5
  237. package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
  238. package/Interaction/UI/CornerAnnotation.js +65 -48
  239. package/Interaction/UI/FPSMonitor.js +104 -105
  240. package/Interaction/UI/Icons.js +1 -1
  241. package/Interaction/UI/Slider/Constants.js +2 -2
  242. package/Interaction/UI/Slider.js +78 -95
  243. package/Interaction/UI/VolumeController.js +104 -97
  244. package/Interaction/UI.js +5 -5
  245. package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
  246. package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
  247. package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  248. package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
  249. package/Interaction/Widgets.js +2 -2
  250. package/Interaction/index.js +5 -5
  251. package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
  252. package/Proxy/Animation/AnimationProxyManager.js +43 -51
  253. package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
  254. package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
  255. package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
  256. package/Proxy/Core/LookupTableProxy.js +49 -52
  257. package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
  258. package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
  259. package/Proxy/Core/ProxyManager/core.js +83 -106
  260. package/Proxy/Core/ProxyManager/properties.js +53 -76
  261. package/Proxy/Core/ProxyManager/state.js +100 -110
  262. package/Proxy/Core/ProxyManager/view.js +45 -55
  263. package/Proxy/Core/ProxyManager.js +16 -8
  264. package/Proxy/Core/SourceProxy.js +41 -38
  265. package/Proxy/Core/View2DProxy.js +143 -199
  266. package/Proxy/Core/ViewProxy.js +223 -269
  267. package/Proxy/Core.js +7 -7
  268. package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
  269. package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
  270. package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
  271. package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
  272. package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
  273. package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
  274. package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
  275. package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
  276. package/Proxy/Representations.js +7 -7
  277. package/Proxy/index.js +2 -2
  278. package/Rendering/Core/AbstractImageMapper/helper.js +44 -49
  279. package/Rendering/Core/AbstractImageMapper.js +18 -19
  280. package/Rendering/Core/AbstractMapper.js +39 -55
  281. package/Rendering/Core/AbstractMapper3D.js +26 -31
  282. package/Rendering/Core/AbstractPicker.js +25 -21
  283. package/Rendering/Core/Actor.js +71 -93
  284. package/Rendering/Core/Actor2D.js +64 -78
  285. package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
  286. package/Rendering/Core/AnnotatedCubeActor.js +94 -79
  287. package/Rendering/Core/AxesActor.js +65 -87
  288. package/Rendering/Core/Camera.js +246 -271
  289. package/Rendering/Core/CellPicker.js +125 -148
  290. package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
  291. package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
  292. package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
  293. package/Rendering/Core/ColorTransferFunction.js +460 -546
  294. package/Rendering/Core/Coordinate/Constants.js +2 -2
  295. package/Rendering/Core/Coordinate.js +119 -198
  296. package/Rendering/Core/CubeAxesActor.js +294 -320
  297. package/Rendering/Core/Follower.js +46 -45
  298. package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
  299. package/Rendering/Core/Glyph3DMapper.js +96 -148
  300. package/Rendering/Core/HardwareSelector.js +36 -69
  301. package/Rendering/Core/ImageArrayMapper.js +87 -126
  302. package/Rendering/Core/ImageCPRMapper.js +134 -209
  303. package/Rendering/Core/ImageMapper/Constants.js +2 -2
  304. package/Rendering/Core/ImageMapper.js +92 -170
  305. package/Rendering/Core/ImageProperty/Constants.js +2 -2
  306. package/Rendering/Core/ImageProperty.js +66 -81
  307. package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
  308. package/Rendering/Core/ImageResliceMapper.js +36 -29
  309. package/Rendering/Core/ImageSlice.js +85 -127
  310. package/Rendering/Core/InteractorObserver.js +82 -73
  311. package/Rendering/Core/InteractorStyle/Constants.js +2 -2
  312. package/Rendering/Core/InteractorStyle.js +56 -58
  313. package/Rendering/Core/Light.js +43 -49
  314. package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
  315. package/Rendering/Core/Mapper/Constants.js +6 -6
  316. package/Rendering/Core/Mapper/Static.js +15 -12
  317. package/Rendering/Core/Mapper.js +194 -259
  318. package/Rendering/Core/Mapper2D.js +61 -100
  319. package/Rendering/Core/Picker.js +124 -143
  320. package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
  321. package/Rendering/Core/PointPicker.js +68 -79
  322. package/Rendering/Core/Prop/Constants.js +2 -2
  323. package/Rendering/Core/Prop.js +58 -106
  324. package/Rendering/Core/Prop3D.js +54 -83
  325. package/Rendering/Core/Property/Constants.js +6 -6
  326. package/Rendering/Core/Property.js +45 -74
  327. package/Rendering/Core/Property2D/Constants.js +2 -2
  328. package/Rendering/Core/Property2D.js +33 -42
  329. package/Rendering/Core/RenderWindow.js +70 -82
  330. package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
  331. package/Rendering/Core/RenderWindowInteractor.js +324 -439
  332. package/Rendering/Core/Renderer.js +193 -257
  333. package/Rendering/Core/ScalarBarActor.js +267 -272
  334. package/Rendering/Core/Skybox.js +26 -24
  335. package/Rendering/Core/SphereMapper.js +22 -12
  336. package/Rendering/Core/StickMapper.js +22 -12
  337. package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
  338. package/Rendering/Core/SurfaceLICInterface.js +13 -9
  339. package/Rendering/Core/SurfaceLICMapper.js +23 -15
  340. package/Rendering/Core/Texture.js +99 -141
  341. package/Rendering/Core/Viewport.js +60 -88
  342. package/Rendering/Core/Volume.js +55 -77
  343. package/Rendering/Core/VolumeMapper/Constants.js +4 -4
  344. package/Rendering/Core/VolumeMapper.js +59 -91
  345. package/Rendering/Core/VolumeProperty/Constants.js +4 -4
  346. package/Rendering/Core/VolumeProperty.js +78 -115
  347. package/Rendering/Core.js +47 -49
  348. package/Rendering/Misc/CanvasView.js +62 -61
  349. package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
  350. package/Rendering/Misc/GenericRenderWindow.js +48 -37
  351. package/Rendering/Misc/RemoteView.js +86 -80
  352. package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
  353. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
  354. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
  355. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
  356. package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
  357. package/Rendering/Misc/TextureLODsDownloader.js +72 -74
  358. package/Rendering/Misc.js +7 -7
  359. package/Rendering/OpenGL/Actor.js +57 -68
  360. package/Rendering/OpenGL/Actor2D.js +56 -56
  361. package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
  362. package/Rendering/OpenGL/BufferObject.js +50 -65
  363. package/Rendering/OpenGL/Camera.js +35 -29
  364. package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
  365. package/Rendering/OpenGL/Convolution2DPass.js +87 -81
  366. package/Rendering/OpenGL/CubeAxesActor.js +28 -21
  367. package/Rendering/OpenGL/ForwardPass.js +53 -64
  368. package/Rendering/OpenGL/Framebuffer.js +61 -101
  369. package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
  370. package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
  371. package/Rendering/OpenGL/HardwareSelector.js +272 -397
  372. package/Rendering/OpenGL/Helper.js +58 -73
  373. package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
  374. package/Rendering/OpenGL/ImageMapper.js +268 -361
  375. package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
  376. package/Rendering/OpenGL/ImageSlice.js +48 -54
  377. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
  378. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
  379. package/Rendering/OpenGL/PolyDataMapper.js +358 -492
  380. package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
  381. package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
  382. package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
  383. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
  384. package/Rendering/OpenGL/RenderWindow.js +356 -510
  385. package/Rendering/OpenGL/Renderer.js +77 -89
  386. package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
  387. package/Rendering/OpenGL/ScalarBarActor.js +28 -21
  388. package/Rendering/OpenGL/Shader.js +37 -31
  389. package/Rendering/OpenGL/ShaderCache.js +67 -74
  390. package/Rendering/OpenGL/ShaderProgram.js +136 -248
  391. package/Rendering/OpenGL/Skybox.js +99 -60
  392. package/Rendering/OpenGL/SphereMapper.js +94 -108
  393. package/Rendering/OpenGL/StickMapper.js +110 -114
  394. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
  395. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
  396. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
  397. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
  398. package/Rendering/OpenGL/SurfaceLIC.js +2 -2
  399. package/Rendering/OpenGL/Texture/Constants.js +4 -4
  400. package/Rendering/OpenGL/Texture.js +444 -609
  401. package/Rendering/OpenGL/TextureUnitManager.js +47 -43
  402. package/Rendering/OpenGL/VertexArrayObject.js +92 -131
  403. package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
  404. package/Rendering/OpenGL/Volume.js +38 -34
  405. package/Rendering/OpenGL/VolumeMapper.js +437 -547
  406. package/Rendering/OpenGL.js +28 -28
  407. package/Rendering/SceneGraph/RenderPass.js +34 -31
  408. package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
  409. package/Rendering/SceneGraph/ViewNode.js +82 -111
  410. package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
  411. package/Rendering/SceneGraph.js +4 -4
  412. package/Rendering/WebGPU/Actor.js +49 -49
  413. package/Rendering/WebGPU/Actor2D.js +45 -44
  414. package/Rendering/WebGPU/BindGroup.js +43 -50
  415. package/Rendering/WebGPU/Buffer.js +41 -50
  416. package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
  417. package/Rendering/WebGPU/BufferManager.js +111 -141
  418. package/Rendering/WebGPU/Camera.js +65 -67
  419. package/Rendering/WebGPU/CellArrayMapper.js +621 -388
  420. package/Rendering/WebGPU/CubeAxesActor.js +28 -19
  421. package/Rendering/WebGPU/Device.js +78 -133
  422. package/Rendering/WebGPU/ForwardPass.js +75 -72
  423. package/Rendering/WebGPU/FullScreenQuad.js +25 -18
  424. package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
  425. package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
  426. package/Rendering/WebGPU/HardwareSelector.js +200 -276
  427. package/Rendering/WebGPU/ImageMapper.js +180 -171
  428. package/Rendering/WebGPU/ImageSlice.js +45 -44
  429. package/Rendering/WebGPU/IndexBuffer.js +166 -200
  430. package/Rendering/WebGPU/OpaquePass.js +37 -36
  431. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
  432. package/Rendering/WebGPU/Pipeline.js +37 -51
  433. package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
  434. package/Rendering/WebGPU/PolyDataMapper.js +50 -53
  435. package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
  436. package/Rendering/WebGPU/RenderEncoder.js +68 -88
  437. package/Rendering/WebGPU/RenderWindow.js +262 -376
  438. package/Rendering/WebGPU/Renderer.js +224 -208
  439. package/Rendering/WebGPU/Sampler.js +27 -21
  440. package/Rendering/WebGPU/ScalarBarActor.js +28 -19
  441. package/Rendering/WebGPU/ShaderCache.js +43 -41
  442. package/Rendering/WebGPU/ShaderDescription.js +52 -59
  443. package/Rendering/WebGPU/ShaderModule.js +26 -17
  444. package/Rendering/WebGPU/SimpleMapper.js +185 -121
  445. package/Rendering/WebGPU/SphereMapper.js +200 -130
  446. package/Rendering/WebGPU/StickMapper.js +289 -152
  447. package/Rendering/WebGPU/StorageBuffer.js +100 -115
  448. package/Rendering/WebGPU/Texture.js +79 -99
  449. package/Rendering/WebGPU/TextureManager.js +52 -54
  450. package/Rendering/WebGPU/TextureView.js +40 -43
  451. package/Rendering/WebGPU/Types.js +53 -70
  452. package/Rendering/WebGPU/UniformBuffer.js +158 -184
  453. package/Rendering/WebGPU/VertexInput.js +64 -90
  454. package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
  455. package/Rendering/WebGPU/Volume.js +52 -51
  456. package/Rendering/WebGPU/VolumePass.js +218 -239
  457. package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
  458. package/Rendering/WebGPU.js +1 -1
  459. package/Rendering/index.js +5 -5
  460. package/Widgets/Core/AbstractWidget/Constants.js +2 -2
  461. package/Widgets/Core/AbstractWidget.js +49 -58
  462. package/Widgets/Core/AbstractWidgetFactory.js +101 -122
  463. package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
  464. package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
  465. package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
  466. package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
  467. package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
  468. package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
  469. package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
  470. package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
  471. package/Widgets/Core/StateBuilder/originMixin.js +25 -32
  472. package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
  473. package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
  474. package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
  475. package/Widgets/Core/StateBuilder/textMixin.js +10 -6
  476. package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
  477. package/Widgets/Core/StateBuilder.js +120 -149
  478. package/Widgets/Core/WidgetManager/Constants.js +7 -7
  479. package/Widgets/Core/WidgetManager.js +249 -421
  480. package/Widgets/Core/WidgetState.js +48 -57
  481. package/Widgets/Core.js +5 -5
  482. package/Widgets/Manipulators/AbstractManipulator.js +20 -14
  483. package/Widgets/Manipulators/CPRManipulator.js +55 -71
  484. package/Widgets/Manipulators/LineManipulator.js +31 -28
  485. package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
  486. package/Widgets/Manipulators/PickerManipulator.js +65 -0
  487. package/Widgets/Manipulators/PlaneManipulator.js +26 -23
  488. package/Widgets/Manipulators/TrackballManipulator.js +39 -35
  489. package/Widgets/Manipulators.js +4 -2
  490. package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
  491. package/Widgets/Representations/CircleContextRepresentation.js +44 -38
  492. package/Widgets/Representations/ContextRepresentation.js +17 -14
  493. package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
  494. package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
  495. package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
  496. package/Widgets/Representations/GlyphRepresentation.js +107 -152
  497. package/Widgets/Representations/HandleRepresentation.js +17 -14
  498. package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
  499. package/Widgets/Representations/LineHandleRepresentation.js +44 -41
  500. package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
  501. package/Widgets/Representations/PolyLineRepresentation.js +60 -75
  502. package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
  503. package/Widgets/Representations/SphereContextRepresentation.js +19 -27
  504. package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
  505. package/Widgets/Representations/SplineContextRepresentation.js +46 -70
  506. package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
  507. package/Widgets/Representations/WidgetRepresentation.js +99 -134
  508. package/Widgets/Representations.js +13 -13
  509. package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
  510. package/Widgets/Widgets3D/AngleWidget.js +41 -39
  511. package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
  512. package/Widgets/Widgets3D/DistanceWidget.js +38 -36
  513. package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
  514. package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
  515. package/Widgets/Widgets3D/EllipseWidget.js +37 -26
  516. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
  517. package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
  518. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
  519. package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
  520. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
  521. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
  522. package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
  523. package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
  524. package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
  525. package/Widgets/Widgets3D/LabelWidget.js +31 -25
  526. package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
  527. package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
  528. package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
  529. package/Widgets/Widgets3D/LineWidget/state.js +2 -1
  530. package/Widgets/Widgets3D/LineWidget.js +39 -35
  531. package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
  532. package/Widgets/Widgets3D/PaintWidget.js +39 -37
  533. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
  534. package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
  535. package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
  536. package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
  537. package/Widgets/Widgets3D/RectangleWidget.js +37 -25
  538. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
  539. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +134 -210
  540. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  541. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +90 -117
  542. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
  543. package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
  544. package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
  545. package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
  546. package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
  547. package/Widgets/Widgets3D/SeedWidget.js +43 -0
  548. package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
  549. package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
  550. package/Widgets/Widgets3D/ShapeWidget.js +24 -27
  551. package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
  552. package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
  553. package/Widgets/Widgets3D/SphereWidget.js +34 -44
  554. package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
  555. package/Widgets/Widgets3D/SplineWidget.js +43 -39
  556. package/Widgets/Widgets3D.js +15 -15
  557. package/Widgets/index.js +4 -4
  558. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
  559. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  560. package/favicon.js +5 -6
  561. package/index.d.ts +4 -2
  562. package/index.js +4 -3
  563. package/macros.js +4 -1931
  564. package/macros2.js +1684 -0
  565. package/package.json +6 -6
  566. package/vtk.js +18 -31
@@ -1,371 +1,325 @@
1
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
5
2
  import { f as vtkMath } from '../Core/Math/index.js';
6
3
  import vtkBoundingBox from './BoundingBox.js';
7
4
  import vtkIncrementalOctreeNode from './IncrementalOctreeNode.js';
8
5
  import vtkAbstractPointLocator from './AbstractPointLocator.js';
9
6
  import { VtkDataTypes } from '../Core/DataArray/Constants.js';
10
7
 
11
- 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; }
12
-
13
- 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; }
14
- var vtkErrorMacro = macro.vtkErrorMacro;
15
-
8
+ const {
9
+ vtkErrorMacro
10
+ } = macro;
16
11
  function vtkIncrementalOctreePointLocator(publicAPI, model) {
17
12
  // Set our className
18
13
  model.classHierarchy.push('vtkIncrementalOctreePointLocator');
19
-
20
14
  function getLeafContainer(node, pnt) {
21
15
  return node.isLeaf() ? node : getLeafContainer(node.getChild(node.getChildIndex(pnt)), pnt);
22
- } //------------------------------------------------------------------------------
16
+ }
23
17
 
24
-
25
- publicAPI.freeSearchStructure = function () {
18
+ //------------------------------------------------------------------------------
19
+ publicAPI.freeSearchStructure = () => {
26
20
  model.octreeRootNode = null;
27
21
  model.numberOfNodes = 0;
28
22
  model.locatorPoints = null;
29
- }; //------------------------------------------------------------------------------
30
-
23
+ };
31
24
 
32
- publicAPI.findClosestPointInLeafNode = function (leafNode, point) {
25
+ //------------------------------------------------------------------------------
26
+ publicAPI.findClosestPointInLeafNode = (leafNode, point) => {
33
27
  // NOTE: dist2 MUST be initiated with a very huge value below, but instead of
34
28
  // model.octreeMaxDimSize * model.octreeMaxDimSize * 4.0, because the point
35
29
  // under check may be outside the octree and hence the squared distance can
36
30
  // be greater than the latter or other similar octree-based specific values.
37
- var dist2 = Number.MAX_VALUE;
38
-
31
+ let dist2 = Number.MAX_VALUE;
39
32
  if (leafNode.getPointIdSet() == null) {
40
33
  return [-1, dist2];
41
34
  }
42
-
43
- var numPts = 0;
44
- var tmpDst = 0.0;
45
- var tmpPnt = [];
46
- var tmpIdx = -1;
47
- var pntIdx = -1;
48
- var idList = leafNode.getPointIdSet();
35
+ let numPts = 0;
36
+ let tmpDst = 0.0;
37
+ const tmpPnt = [];
38
+ let tmpIdx = -1;
39
+ let pntIdx = -1;
40
+ let idList = leafNode.getPointIdSet();
49
41
  numPts = idList.length;
50
-
51
- for (var i = 0; i < numPts; i++) {
42
+ for (let i = 0; i < numPts; i++) {
52
43
  tmpIdx = idList[i];
53
44
  model.locatorPoints.getPoint(tmpIdx, tmpPnt);
54
45
  tmpDst = vtkMath.distance2BetweenPoints(tmpPnt, point);
55
-
56
46
  if (tmpDst < dist2) {
57
47
  dist2 = tmpDst;
58
48
  pntIdx = tmpIdx;
59
49
  }
60
-
61
50
  if (dist2 === 0.0) {
62
51
  break;
63
52
  }
64
53
  }
65
-
66
54
  idList = null;
67
55
  return [pntIdx, dist2];
68
56
  };
69
-
70
- publicAPI.findClosestPointInSphere = function (point, radius2, maskNode, refDist2) {
71
- var pointIndx = -1;
72
- var minDist2 = Number.MAX_VALUE;
73
- var nodesBase = [];
57
+ publicAPI.findClosestPointInSphere = (point, radius2, maskNode, refDist2) => {
58
+ let pointIndx = -1;
59
+ let minDist2 = Number.MAX_VALUE;
60
+ const nodesBase = [];
74
61
  nodesBase.push(model.octreeRootNode);
75
- var checkNode;
76
- var childNode;
77
- var distToData;
78
- var tempDist2;
79
- var tempPntId;
80
-
62
+ let checkNode;
63
+ let childNode;
64
+ let distToData;
65
+ let tempDist2;
66
+ let tempPntId;
81
67
  while (!nodesBase.length === 0 && minDist2 > 0.0) {
82
68
  checkNode = nodesBase.top();
83
69
  nodesBase.pop();
84
-
85
70
  if (!checkNode.isLeaf()) {
86
- for (var i = 0; i < 8; i++) {
87
- childNode = checkNode.getChild(i); // use ( radius2 + radius2 ) to skip empty nodes
71
+ for (let i = 0; i < 8; i++) {
72
+ childNode = checkNode.getChild(i);
88
73
 
89
- distToData = childNode.getNumberOfPoints() ? childNode.getDistance2ToBoundary(point, model.octreeRootNode, 1) : radius2 + radius2; // If a child node is not the mask node AND its distance, specifically
74
+ // use ( radius2 + radius2 ) to skip empty nodes
75
+ distToData = childNode.getNumberOfPoints() ? childNode.getDistance2ToBoundary(point, model.octreeRootNode, 1) : radius2 + radius2;
76
+
77
+ // If a child node is not the mask node AND its distance, specifically
90
78
  // the data bounding box (determined by the points inside or under) to
91
79
  // the point, is less than the threshold radius (one exception is the
92
80
  // point's container nodes), it is pushed to the stack as a suspect.
93
-
94
81
  if (childNode !== maskNode && (distToData <= refDist2 || childNode.containsPoint(point) === 1)) {
95
82
  nodesBase.push(childNode);
96
83
  }
97
-
98
84
  childNode = null;
99
85
  }
100
86
  } else {
101
87
  // now that the node under check is a leaf, let's find the closest
102
88
  // point therein and the minimum distance
103
- var _publicAPI$findCloses = publicAPI.findClosestPointInLeafNode(checkNode, point);
104
-
105
- var _publicAPI$findCloses2 = _slicedToArray(_publicAPI$findCloses, 2);
106
-
107
- tempPntId = _publicAPI$findCloses2[0];
108
- tempDist2 = _publicAPI$findCloses2[1];
109
89
 
90
+ [tempPntId, tempDist2] = publicAPI.findClosestPointInLeafNode(checkNode, point);
110
91
  if (tempDist2 < minDist2) {
111
92
  minDist2 = tempDist2;
112
93
  pointIndx = tempPntId;
113
94
  }
114
95
  }
115
-
116
96
  checkNode = null;
117
97
  }
118
-
119
98
  return [minDist2 <= radius2 ? pointIndx : -1, minDist2];
120
- }; //------------------------------------------------------------------------------
121
-
99
+ };
122
100
 
101
+ //------------------------------------------------------------------------------
123
102
  publicAPI.initPointInsertion = function (points, bounds) {
124
- var _model$octreeRootNode;
125
- var i = 0;
126
- var bbIndex = 0;
127
-
103
+ let i = 0;
104
+ let bbIndex = 0;
128
105
  if (points == null) {
129
106
  vtkErrorMacro('a valid vtkPoints object required for point insertion');
130
107
  return false;
131
- } // destroy the existing octree, if any
132
-
108
+ }
133
109
 
110
+ // destroy the existing octree, if any
134
111
  publicAPI.freeSearchStructure();
135
- model.locatorPoints = points; // obtain the threshold squared distance
112
+ model.locatorPoints = points;
136
113
 
137
- model.insertTolerance2 = model.tolerance * model.tolerance; // Fix bounds
114
+ // obtain the threshold squared distance
115
+ model.insertTolerance2 = model.tolerance * model.tolerance;
116
+
117
+ // Fix bounds
138
118
  // (1) push out a little bit if the original volume is too flat --- a slab
139
119
  // (2) pull back the x, y, and z's lower bounds a little bit such that
140
120
  // points are clearly "inside" the spatial region. Point p is taken as
141
121
  // "inside" range r = [r1, r2] if and only if r1 < p <= r2.
142
-
143
122
  model.octreeMaxDimSize = 0.0;
144
-
145
- var tmpBbox = _toConsumableArray(bounds);
146
-
147
- var dimDiff = vtkBoundingBox.getLengths(bounds);
148
- model.octreeMaxDimSize = Math.max.apply(Math, _toConsumableArray(dimDiff));
149
-
123
+ const tmpBbox = [...bounds];
124
+ const dimDiff = vtkBoundingBox.getLengths(bounds);
125
+ model.octreeMaxDimSize = Math.max(...dimDiff);
150
126
  if (model.buildCubicOctree) {
151
127
  // make the bounding box a cube and hence descendant octants cubes too
152
128
  for (i = 0; i < 3; i++) {
153
129
  if (dimDiff[i] !== model.octreeMaxDimSize) {
154
- var delta = model.octreeMaxDimSize - dimDiff[i];
130
+ const delta = model.octreeMaxDimSize - dimDiff[i];
155
131
  tmpBbox[2 * i] -= 0.5 * delta;
156
132
  tmpBbox[2 * i + 1] += 0.5 * delta;
157
133
  dimDiff[i] = model.octreeMaxDimSize;
158
134
  }
159
135
  }
160
136
  }
161
-
162
137
  model.fudgeFactor = model.octreeMaxDimSize * 10e-6;
163
- var minSideSize = model.octreeMaxDimSize * 10e-2;
164
-
138
+ const minSideSize = model.octreeMaxDimSize * 10e-2;
165
139
  for (i = 0; i < 3; i++) {
166
140
  if (dimDiff[i] < minSideSize) {
167
141
  // case (1) above
168
142
  bbIndex = 2 * i;
169
- var tempVal = tmpBbox[bbIndex];
143
+ const tempVal = tmpBbox[bbIndex];
170
144
  tmpBbox[bbIndex] = tmpBbox[bbIndex + 1] - minSideSize;
171
145
  tmpBbox[bbIndex + 1] = tempVal + minSideSize;
172
146
  } else {
173
147
  // case (2) above
174
148
  tmpBbox[2 * i] -= model.fudgeFactor;
175
149
  }
176
- } // init the octree with an empty leaf node
177
-
150
+ }
178
151
 
152
+ // init the octree with an empty leaf node
179
153
  model.octreeRootNode = vtkIncrementalOctreeNode.newInstance();
180
- ++model.numberOfNodes; // this call internally inits the middle (center) and data range, too
181
-
182
- (_model$octreeRootNode = model.octreeRootNode).setBounds.apply(_model$octreeRootNode, _toConsumableArray(tmpBbox));
154
+ ++model.numberOfNodes;
183
155
 
156
+ // this call internally inits the middle (center) and data range, too
157
+ model.octreeRootNode.setBounds(...tmpBbox);
184
158
  return true;
185
159
  };
160
+ publicAPI.findClosestPointInSphereWithTolerance = (point, radius2, maskNode) => publicAPI.findClosestPointInSphere(point, radius2, maskNode, model.octreeMaxDimSize * model.octreeMaxDimSize * 4.0, radius2);
186
161
 
187
- publicAPI.findClosestPointInSphereWithTolerance = function (point, radius2, maskNode) {
188
- return publicAPI.findClosestPointInSphere(point, radius2, maskNode, model.octreeMaxDimSize * model.octreeMaxDimSize * 4.0, radius2);
189
- }; //------------------------------------------------------------------------------
190
-
162
+ //------------------------------------------------------------------------------
163
+ publicAPI.findDuplicateFloatTypePointInVisitedLeafNode = (leafNode, point) => {
164
+ let tmpPnt;
165
+ let tmpIdx = -1;
166
+ let pntIdx = -1;
191
167
 
192
- publicAPI.findDuplicateFloatTypePointInVisitedLeafNode = function (leafNode, point) {
193
- var tmpPnt;
194
- var tmpIdx = -1;
195
- var pntIdx = -1; // float thePnt[3]; // TODO
168
+ // float thePnt[3]; // TODO
196
169
  // thePnt[0] = static_cast<float>(point[0]);
197
170
  // thePnt[1] = static_cast<float>(point[1]);
198
171
  // thePnt[2] = static_cast<float>(point[2]);
199
172
 
200
- var idList = leafNode.getPointIdSet(); // float* pFloat = (static_cast<vtkFloatArray*>(model.locatorPoints.getData())).getPointer(0);
201
-
202
- var values = model.locatorPoints.getData();
203
-
204
- for (var i = 0; i < idList.length; i++) {
205
- tmpIdx = idList[i]; // eslint-disable-next-line no-bitwise
206
-
173
+ const idList = leafNode.getPointIdSet();
174
+ // float* pFloat = (static_cast<vtkFloatArray*>(model.locatorPoints.getData())).getPointer(0);
175
+ const values = model.locatorPoints.getData();
176
+ for (let i = 0; i < idList.length; i++) {
177
+ tmpIdx = idList[i];
178
+ // eslint-disable-next-line no-bitwise
207
179
  tmpPnt = (tmpIdx << 1) + tmpIdx;
208
-
209
180
  if (point[0] === values[tmpPnt] && point[1] === values[tmpPnt + 1] && point[2] === values[tmpPnt + 2]) {
210
181
  pntIdx = tmpIdx;
211
182
  break;
212
183
  }
213
184
  }
214
-
215
185
  return pntIdx;
216
- }; //------------------------------------------------------------------------------
217
-
218
-
219
- publicAPI.findDuplicateDoubleTypePointInVisitedLeafNode = function (leafNode, point) {
220
- var tmpPnt;
221
- var tmpIdx = -1;
222
- var pntIdx = -1;
223
- var idList = leafNode.getPointIdSet();
224
- var values = model.locatorPoints.getData();
225
-
226
- for (var i = 0; i < idList.length; i++) {
227
- tmpIdx = idList[i]; // eslint-disable-next-line no-bitwise
186
+ };
228
187
 
188
+ //------------------------------------------------------------------------------
189
+ publicAPI.findDuplicateDoubleTypePointInVisitedLeafNode = (leafNode, point) => {
190
+ let tmpPnt;
191
+ let tmpIdx = -1;
192
+ let pntIdx = -1;
193
+ const idList = leafNode.getPointIdSet();
194
+ const values = model.locatorPoints.getData();
195
+ for (let i = 0; i < idList.length; i++) {
196
+ tmpIdx = idList[i];
197
+ // eslint-disable-next-line no-bitwise
229
198
  tmpPnt = (tmpIdx << 1) + tmpIdx;
230
-
231
199
  if (point[0] === values[tmpPnt] && point[1] === values[tmpPnt + 1] && point[2] === values[tmpPnt + 2]) {
232
200
  pntIdx = tmpIdx;
233
201
  break;
234
202
  }
235
203
  }
236
-
237
204
  return pntIdx;
238
- }; //------------------------------------------------------------------------------
239
-
205
+ };
240
206
 
241
- publicAPI.findDuplicatePointInLeafNode = function (leafNode, point) {
207
+ //------------------------------------------------------------------------------
208
+ publicAPI.findDuplicatePointInLeafNode = (leafNode, point) => {
242
209
  if (leafNode.getPointIdSet() == null) {
243
210
  return -1;
244
211
  }
245
-
246
212
  return model.locatorPoints.getDataType() === VtkDataTypes.FLOAT ? publicAPI.findDuplicateFloatTypePointInVisitedLeafNode(leafNode, point) : publicAPI.findDuplicateDoubleTypePointInVisitedLeafNode(leafNode, point);
247
- }; //------------------------------------------------------------------------------
248
-
249
-
250
- publicAPI.insertPoint = function (ptId, x) {
251
- var leafcontainer = getLeafContainer(model.octreeRootNode, x);
252
-
253
- var _leafcontainer$insert = leafcontainer.insertPoint(model.locatorPoints, x, model.maxPointsPerLeaf, ptId, 1, model.numberOfNodes);
254
-
255
- model.numberOfNodes = _leafcontainer$insert.numberOfNodes;
256
- }; //------------------------------------------------------------------------------
213
+ };
257
214
 
215
+ //------------------------------------------------------------------------------
216
+ publicAPI.insertPoint = (ptId, x) => {
217
+ const leafcontainer = getLeafContainer(model.octreeRootNode, x);
218
+ ({
219
+ numberOfNodes: model.numberOfNodes
220
+ } = leafcontainer.insertPoint(model.locatorPoints, x, model.maxPointsPerLeaf, ptId, 1, model.numberOfNodes));
221
+ };
258
222
 
259
- publicAPI.insertUniquePoint = function (point) {
223
+ //------------------------------------------------------------------------------
224
+ publicAPI.insertUniquePoint = point => {
260
225
  // TODO: We have a mix of let and const here.
261
226
  // eslint-disable-next-line prefer-const
262
- var _publicAPI$isInserted = publicAPI.isInsertedPoint(point),
263
- pointIdx = _publicAPI$isInserted.pointIdx,
264
- leafContainer = _publicAPI$isInserted.leafContainer;
265
-
227
+ let {
228
+ pointIdx,
229
+ leafContainer
230
+ } = publicAPI.isInsertedPoint(point);
266
231
  if (pointIdx > -1) {
267
232
  return {
268
233
  success: false,
269
234
  idx: pointIdx
270
235
  };
271
- } // TODO: pointIdx
272
-
273
-
274
- var numberOfNodes; // eslint-disable-next-line prefer-const
275
-
276
- var _leafContainer$insert = leafContainer.insertPoint(model.locatorPoints, point, model.maxPointsPerLeaf, pointIdx, 2, model.numberOfNodes);
277
-
278
- numberOfNodes = _leafContainer$insert.numberOfNodes;
279
- pointIdx = _leafContainer$insert.pointIdx;
236
+ }
237
+ // TODO: pointIdx
238
+ let numberOfNodes;
239
+ // eslint-disable-next-line prefer-const
240
+ ({
241
+ numberOfNodes,
242
+ pointIdx
243
+ } = leafContainer.insertPoint(model.locatorPoints, point, model.maxPointsPerLeaf, pointIdx, 2, model.numberOfNodes));
280
244
  model.numberOfNodes = numberOfNodes;
281
245
  return {
282
246
  success: true,
283
247
  idx: pointIdx
284
248
  };
285
- }; //------------------------------------------------------------------------------
286
-
287
-
288
- publicAPI.insertNextPoint = function (x) {
289
- var leafContainer = getLeafContainer(model.octreeRootNode, x);
290
-
291
- var _leafContainer$insert2 = leafContainer.insertPoint(model.locatorPoints, x, model.maxPointsPerLeaf, -1, 2, model.numberOfNodes),
292
- numberOfNodes = _leafContainer$insert2.numberOfNodes,
293
- pointIdx = _leafContainer$insert2.pointIdx;
249
+ };
294
250
 
251
+ //------------------------------------------------------------------------------
252
+ publicAPI.insertNextPoint = x => {
253
+ const leafContainer = getLeafContainer(model.octreeRootNode, x);
254
+ const {
255
+ numberOfNodes,
256
+ pointIdx
257
+ } = leafContainer.insertPoint(model.locatorPoints, x, model.maxPointsPerLeaf, -1, 2, model.numberOfNodes);
295
258
  model.numberOfNodes = numberOfNodes;
296
259
  return pointIdx;
297
- }; //------------------------------------------------------------------------------
298
-
260
+ };
299
261
 
300
- publicAPI.isInsertedPointForZeroTolerance = function (x) {
262
+ //------------------------------------------------------------------------------
263
+ publicAPI.isInsertedPointForZeroTolerance = x => {
301
264
  // the target leaf node always exists there since the root node of the
302
265
  // octree has been initialized to cover all possible points to be inserted
303
266
  // and therefore we do not need to check it here
304
- var leafContainer = getLeafContainer(model.octreeRootNode, x);
305
- var pointIdx = publicAPI.findDuplicatePointInLeafNode(leafContainer, x);
267
+ const leafContainer = getLeafContainer(model.octreeRootNode, x);
268
+ const pointIdx = publicAPI.findDuplicatePointInLeafNode(leafContainer, x);
306
269
  return {
307
- pointIdx: pointIdx,
308
- leafContainer: leafContainer
270
+ pointIdx,
271
+ leafContainer
309
272
  };
310
- }; //------------------------------------------------------------------------------
311
-
273
+ };
312
274
 
313
- publicAPI.isInsertedPointForNonZeroTolerance = function (x) {
275
+ //------------------------------------------------------------------------------
276
+ publicAPI.isInsertedPointForNonZeroTolerance = x => {
314
277
  // minDist2 // min distance to ALL existing points
315
278
  // elseDst2 // min distance to other nodes (inner boundaries)
316
- var dist2Ext; // min distance to an EXTended set of nodes
279
+ let dist2Ext; // min distance to an EXTended set of nodes
280
+ let pntIdExt;
317
281
 
318
- var pntIdExt; // the target leaf node always exists there since the root node of the
282
+ // the target leaf node always exists there since the root node of the
319
283
  // octree has been initialized to cover all possible points to be inserted
320
284
  // and therefore we do not need to check it here
321
-
322
- var leafContainer = getLeafContainer(model.octreeRootNode, x);
323
-
324
- var _publicAPI$findCloses3 = publicAPI.findClosestPointInLeafNode(leafContainer, x),
325
- _publicAPI$findCloses4 = _slicedToArray(_publicAPI$findCloses3, 2),
326
- pointIdx = _publicAPI$findCloses4[0],
327
- minDist2 = _publicAPI$findCloses4[1];
328
-
285
+ const leafContainer = getLeafContainer(model.octreeRootNode, x);
286
+ let [pointIdx, minDist2] = publicAPI.findClosestPointInLeafNode(leafContainer, x);
329
287
  if (minDist2 === 0.0) {
330
288
  return {
331
- pointIdx: pointIdx,
332
- leafContainer: leafContainer
289
+ pointIdx,
290
+ leafContainer
333
291
  };
334
- } // As no any 'duplicate' point exists in this leaf node, we need to expand
335
- // the search scope to capture possible closer points in other nodes.
336
-
337
-
338
- var elseDst2 = leafContainer.getDistance2ToInnerBoundary(x, model.octreeRootNode);
292
+ }
339
293
 
294
+ // As no any 'duplicate' point exists in this leaf node, we need to expand
295
+ // the search scope to capture possible closer points in other nodes.
296
+ const elseDst2 = leafContainer.getDistance2ToInnerBoundary(x, model.octreeRootNode);
340
297
  if (elseDst2 < model.insertTolerance2) {
341
298
  // one or multiple closer points might exist in the neighboring nodes
342
299
  // TODO: dist2Ext
343
300
  pntIdExt = publicAPI.findClosestPointInSphereWithTolerance(x, model.insertTolerance2, leafContainer, dist2Ext);
344
-
345
301
  if (dist2Ext < minDist2) {
346
302
  minDist2 = dist2Ext;
347
303
  pointIdx = pntIdExt;
348
304
  }
349
305
  }
350
-
351
306
  pointIdx = minDist2 <= model.insertTolerance2 ? pointIdx : -1;
352
307
  return {
353
- pointIdx: pointIdx,
354
- leafContainer: leafContainer
308
+ pointIdx,
309
+ leafContainer
355
310
  };
356
- }; //------------------------------------------------------------------------------
311
+ };
357
312
 
313
+ //------------------------------------------------------------------------------
314
+ publicAPI.isInsertedPoint = (x, leafContainer) => model.insertTolerance2 === 0.0 ? publicAPI.isInsertedPointForZeroTolerance(x, leafContainer) : publicAPI.isInsertedPointForNonZeroTolerance(x, leafContainer);
315
+ }
358
316
 
359
- publicAPI.isInsertedPoint = function (x, leafContainer) {
360
- return model.insertTolerance2 === 0.0 ? publicAPI.isInsertedPointForZeroTolerance(x, leafContainer) : publicAPI.isInsertedPointForNonZeroTolerance(x, leafContainer);
361
- };
362
- } // ----------------------------------------------------------------------------
317
+ // ----------------------------------------------------------------------------
363
318
  // Object factory
364
319
  // ----------------------------------------------------------------------------
365
320
 
366
-
367
321
  function defaultValues(initialValues) {
368
- return _objectSpread({
322
+ return {
369
323
  fudgeFactor: 0,
370
324
  octreeMaxDimSize: 0,
371
325
  buildCubicOctree: false,
@@ -373,26 +327,34 @@ function defaultValues(initialValues) {
373
327
  insertTolerance2: 0.000001,
374
328
  locatorPoints: null,
375
329
  octreeRootNode: null,
376
- numberOfNodes: 0
377
- }, initialValues);
378
- } // ----------------------------------------------------------------------------
330
+ numberOfNodes: 0,
331
+ ...initialValues
332
+ };
333
+ }
379
334
 
335
+ // ----------------------------------------------------------------------------
380
336
 
381
337
  function extend(publicAPI, model) {
382
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
383
- vtkAbstractPointLocator.extend(publicAPI, model, defaultValues(initialValues)); // Make this a VTK object
338
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
339
+ vtkAbstractPointLocator.extend(publicAPI, model, defaultValues(initialValues));
384
340
 
341
+ // Make this a VTK object
385
342
  macro.obj(publicAPI, model);
386
- macro.setGet(publicAPI, model, ['fudgeFactor', 'octreeMaxDimSize', 'buildCubicOctree', 'maxPointsPerLeaf', 'insertTolerance2', 'locatorPoints', 'octreeRootNode', 'numberOfNodes']); // Object specific methods
343
+ macro.setGet(publicAPI, model, ['fudgeFactor', 'octreeMaxDimSize', 'buildCubicOctree', 'maxPointsPerLeaf', 'insertTolerance2', 'locatorPoints', 'octreeRootNode', 'numberOfNodes']);
387
344
 
345
+ // Object specific methods
388
346
  vtkIncrementalOctreePointLocator(publicAPI, model);
389
- } // ----------------------------------------------------------------------------
347
+ }
348
+
349
+ // ----------------------------------------------------------------------------
350
+
351
+ const newInstance = macro.newInstance(extend, 'vtkIncrementalOctreePointLocator');
390
352
 
391
- var newInstance = macro.newInstance(extend, 'vtkIncrementalOctreePointLocator'); // ----------------------------------------------------------------------------
353
+ // ----------------------------------------------------------------------------
392
354
 
393
355
  var vtkIncrementalOctreePointLocator$1 = {
394
- newInstance: newInstance,
395
- extend: extend
356
+ newInstance,
357
+ extend
396
358
  };
397
359
 
398
360
  export { vtkIncrementalOctreePointLocator$1 as default, extend, newInstance };