@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,35 +1,35 @@
1
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
2
2
  import { e as distance2BetweenPoints } from '../Core/Math/index.js';
3
3
 
4
- var vtkErrorMacro = macro.vtkErrorMacro;
5
- var OCTREENODE_INSERTPOINT = [function (points, pointIdx, coords) {
6
- return pointIdx;
7
- }, function (points, pointIdx, coords) {
4
+ const {
5
+ vtkErrorMacro
6
+ } = macro;
7
+ const OCTREENODE_INSERTPOINT = [(points, pointIdx, coords) => pointIdx, (points, pointIdx, coords) => {
8
8
  points.setTuple(pointIdx, coords);
9
9
  return pointIdx;
10
- }, function (points, pointIdx, coords) {
11
- return points.insertNextTuple(coords);
12
- }]; // Given the index (0 ~ 7) of a child node, the spatial bounding axis (0 ~ 2
10
+ }, (points, pointIdx, coords) => points.insertNextTuple(coords)];
11
+
12
+ // Given the index (0 ~ 7) of a child node, the spatial bounding axis (0 ~ 2
13
13
  // for x, y, and z), and the value (0 ~ 1 for min and max) to access, this LUT
14
14
  // allows for rapid assignment of its spatial bounding box --- MinBounds[3]
15
15
  // and MaxBounds[3], with each specific value or entry of this LUT pointing to
16
16
  // MinBounds[3] for 0, center point for 1, or MaxBounds[3] for 2.
17
-
18
- var OCTREE_CHILD_BOUNDS_LUT = [[[0, 1], [0, 1], [0, 1]], [[1, 2], [0, 1], [0, 1]], [[0, 1], [1, 2], [0, 1]], [[1, 2], [1, 2], [0, 1]], [[0, 1], [0, 1], [1, 2]], [[1, 2], [0, 1], [1, 2]], [[0, 1], [1, 2], [1, 2]], [[1, 2], [1, 2], [1, 2]]];
19
-
17
+ const OCTREE_CHILD_BOUNDS_LUT = [[[0, 1], [0, 1], [0, 1]], [[1, 2], [0, 1], [0, 1]], [[0, 1], [1, 2], [0, 1]], [[1, 2], [1, 2], [0, 1]], [[0, 1], [0, 1], [1, 2]], [[1, 2], [0, 1], [1, 2]], [[0, 1], [1, 2], [1, 2]], [[1, 2], [1, 2], [1, 2]]];
20
18
  function vtkIncrementalOctreeNode(publicAPI, model) {
21
19
  // Set our className
22
- model.classHierarchy.push('vtkIncrementalOctreeNode'); //------------------------------------------------------------------------------
20
+ model.classHierarchy.push('vtkIncrementalOctreeNode');
23
21
 
24
- publicAPI.createPointIdSet = function (initSize, growSize) {
22
+ //------------------------------------------------------------------------------
23
+ publicAPI.createPointIdSet = (initSize, growSize) => {
25
24
  if (model.pointIdSet == null) {
26
- model.pointIdSet = []; // TODO: use initSize and growSize.
25
+ model.pointIdSet = [];
26
+ // TODO: use initSize and growSize.
27
27
  // model.pointIdSet.allocate(initSize, growSize);
28
28
  }
29
- }; //------------------------------------------------------------------------------
30
-
29
+ };
31
30
 
32
- publicAPI.setBounds = function (x1, x2, y1, y2, z1, z2) {
31
+ //------------------------------------------------------------------------------
32
+ publicAPI.setBounds = (x1, x2, y1, y2, z1, z2) => {
33
33
  if (model.minBounds == null) model.minBounds = [];
34
34
  if (model.maxBounds == null) model.maxBounds = [];
35
35
  if (model.minDataBounds == null) model.minDataBounds = [];
@@ -46,10 +46,10 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
46
46
  model.maxDataBounds[1] = y1;
47
47
  model.minDataBounds[2] = z2;
48
48
  model.maxDataBounds[2] = z1;
49
- }; //------------------------------------------------------------------------------
50
-
49
+ };
51
50
 
52
- publicAPI.getBounds = function (bounds) {
51
+ //------------------------------------------------------------------------------
52
+ publicAPI.getBounds = bounds => {
53
53
  bounds[0] = model.minBounds[0];
54
54
  bounds[1] = model.maxBounds[0];
55
55
  bounds[2] = model.minBounds[1];
@@ -57,101 +57,80 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
57
57
  bounds[4] = model.minBounds[2];
58
58
  bounds[5] = model.maxBounds[2];
59
59
  };
60
+ publicAPI.getChildIndex = point => Number(point[0] > model.children[0].getMaxBoundsByReference()[0]) + (
61
+ // eslint-disable-next-line no-bitwise
62
+ Number(point[1] > model.children[0].getMaxBoundsByReference()[1]) << 1) + (
63
+ // eslint-disable-next-line no-bitwise
64
+ Number(point[2] > model.children[0].getMaxBoundsByReference()[2]) << 2);
65
+ publicAPI.containsPoint = pnt => model.minBounds[0] < pnt[0] && pnt[0] <= model.maxBounds[0] && model.minBounds[1] < pnt[1] && pnt[1] <= model.maxBounds[1] && model.minBounds[2] < pnt[2] && pnt[2] <= model.maxBounds[2] ? 1 : 0;
66
+ publicAPI.containsPointByData = pnt => model.minDataBounds[0] <= pnt[0] && pnt[0] <= model.maxDataBounds[0] && model.minDataBounds[1] <= pnt[1] && pnt[1] <= model.maxDataBounds[1] && model.minDataBounds[2] <= pnt[2] && pnt[2] <= model.maxDataBounds[2] ? 1 : 0;
60
67
 
61
- publicAPI.getChildIndex = function (point) {
62
- return Number(point[0] > model.children[0].getMaxBoundsByReference()[0]) + ( // eslint-disable-next-line no-bitwise
63
- Number(point[1] > model.children[0].getMaxBoundsByReference()[1]) << 1) + ( // eslint-disable-next-line no-bitwise
64
- Number(point[2] > model.children[0].getMaxBoundsByReference()[2]) << 2);
65
- };
66
-
67
- publicAPI.containsPoint = function (pnt) {
68
- return model.minBounds[0] < pnt[0] && pnt[0] <= model.maxBounds[0] && model.minBounds[1] < pnt[1] && pnt[1] <= model.maxBounds[1] && model.minBounds[2] < pnt[2] && pnt[2] <= model.maxBounds[2] ? 1 : 0;
69
- };
70
-
71
- publicAPI.containsPointByData = function (pnt) {
72
- return model.minDataBounds[0] <= pnt[0] && pnt[0] <= model.maxDataBounds[0] && model.minDataBounds[1] <= pnt[1] && pnt[1] <= model.maxDataBounds[1] && model.minDataBounds[2] <= pnt[2] && pnt[2] <= model.maxDataBounds[2] ? 1 : 0;
73
- }; //------------------------------------------------------------------------------
74
-
75
-
76
- publicAPI.updateCounterAndDataBounds = function (point, nHits, updateData) {
68
+ //------------------------------------------------------------------------------
69
+ publicAPI.updateCounterAndDataBounds = (point, nHits, updateData) => {
77
70
  model.numberOfPoints += nHits;
78
71
  if (!updateData) return false;
79
- var updated = false;
80
-
72
+ let updated = false;
81
73
  if (point[0] < model.minDataBounds[0]) {
82
74
  updated = true;
83
75
  model.minDataBounds[0] = point[0];
84
76
  }
85
-
86
77
  if (point[0] > model.maxDataBounds[0]) {
87
78
  updated = true;
88
79
  model.maxDataBounds[0] = point[0];
89
80
  }
90
-
91
81
  if (point[1] < model.minDataBounds[1]) {
92
82
  updated = true;
93
83
  model.minDataBounds[1] = point[1];
94
84
  }
95
-
96
85
  if (point[1] > model.maxDataBounds[1]) {
97
86
  updated = true;
98
87
  model.maxDataBounds[1] = point[1];
99
88
  }
100
-
101
89
  if (point[2] < model.minDataBounds[2]) {
102
90
  updated = true;
103
91
  model.minDataBounds[2] = point[2];
104
92
  }
105
-
106
93
  if (point[2] > model.maxDataBounds[2]) {
107
94
  updated = true;
108
95
  model.maxDataBounds[2] = point[2];
109
96
  }
110
-
111
97
  return updated;
112
- }; //------------------------------------------------------------------------------
113
-
98
+ };
114
99
 
115
- publicAPI.updateCounterAndDataBoundsRecursively = function (point, nHits, updateData, endNode) {
116
- var updated = publicAPI.updateCounterAndDataBounds(point, nHits, updateData);
100
+ //------------------------------------------------------------------------------
101
+ publicAPI.updateCounterAndDataBoundsRecursively = (point, nHits, updateData, endNode) => {
102
+ const updated = publicAPI.updateCounterAndDataBounds(point, nHits, updateData);
117
103
  return model.parent === endNode ? updated : model.parent.updateCounterAndDataBoundsRecursively(point, nHits, updated, endNode);
118
- }; //------------------------------------------------------------------------------
119
-
120
-
121
- publicAPI.containsDuplicatePointsOnly = function (point) {
122
- return model.minDataBounds[0] === point[0] && point[0] === model.maxDataBounds[0] && model.minDataBounds[1] === point[1] && point[1] === model.maxDataBounds[1] && model.minDataBounds[2] === point[2] && point[2] === model.maxDataBounds[2];
123
- }; //------------------------------------------------------------------------------
124
-
104
+ };
125
105
 
126
- publicAPI.isLeaf = function () {
127
- return model.children == null;
128
- }; //------------------------------------------------------------------------------
106
+ //------------------------------------------------------------------------------
107
+ publicAPI.containsDuplicatePointsOnly = point => model.minDataBounds[0] === point[0] && point[0] === model.maxDataBounds[0] && model.minDataBounds[1] === point[1] && point[1] === model.maxDataBounds[1] && model.minDataBounds[2] === point[2] && point[2] === model.maxDataBounds[2];
129
108
 
109
+ //------------------------------------------------------------------------------
110
+ publicAPI.isLeaf = () => model.children == null;
130
111
 
131
- publicAPI.getChild = function (i) {
132
- return model.children[i];
133
- }; //------------------------------------------------------------------------------
112
+ //------------------------------------------------------------------------------
113
+ publicAPI.getChild = i => model.children[i];
134
114
 
115
+ //------------------------------------------------------------------------------
135
116
  /* eslint-disable no-use-before-define */
136
-
137
-
138
- publicAPI.separateExactlyDuplicatePointsFromNewInsertion = function (points, pntIds, newPnt, pntIdx, maxPts, ptMode) {
117
+ publicAPI.separateExactlyDuplicatePointsFromNewInsertion = (points, pntIds, newPnt, pntIdx, maxPts, ptMode) => {
139
118
  // the number of points already maintained in this leaf node
140
119
  // >= maxPts AND all of them are exactly duplicate with one another
141
120
  // BUT the new point is not a duplicate of them any more
142
- var pointIdx = pntIdx;
143
- var i;
144
- var dupPnt = [0.0, 0.0, 0.0];
145
- var octMin = [0.0, 0.0, 0.0];
146
- var octMid = [0.0, 0.0, 0.0];
147
- var octMax = [0.0, 0.0, 0.0];
148
- var boxPtr = [null, null, null];
149
- var ocNode = null;
150
- var duplic = publicAPI;
151
- var single = publicAPI; // the coordinate of the duplicate points: note pntIds == model.pointIdSet
152
-
121
+ let pointIdx = pntIdx;
122
+ let i;
123
+ const dupPnt = [0.0, 0.0, 0.0];
124
+ const octMin = [0.0, 0.0, 0.0];
125
+ const octMid = [0.0, 0.0, 0.0];
126
+ const octMax = [0.0, 0.0, 0.0];
127
+ const boxPtr = [null, null, null];
128
+ let ocNode = null;
129
+ let duplic = publicAPI;
130
+ let single = publicAPI;
131
+
132
+ // the coordinate of the duplicate points: note pntIds == model.pointIdSet
153
133
  points.getPoint(pntIds[0], dupPnt);
154
-
155
134
  while (duplic === single) {
156
135
  // as long as separation has not been achieved
157
136
  // update the current (in recursion) node and access the bounding box info
@@ -161,53 +140,55 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
161
140
  octMid[2] = (ocNode.minBounds[2] + ocNode.maxBounds[2]) * 0.5;
162
141
  boxPtr[0] = ocNode.minBounds;
163
142
  boxPtr[1] = octMid;
164
- boxPtr[2] = ocNode.maxBounds; // create eight child nodes
165
- // FIXME: May be too slow to use vtk newInstance()
143
+ boxPtr[2] = ocNode.maxBounds;
166
144
 
145
+ // create eight child nodes
146
+ // FIXME: May be too slow to use vtk newInstance()
167
147
  ocNode.children = [newInstance(), newInstance(), newInstance(), newInstance(), newInstance(), newInstance(), newInstance(), newInstance()];
168
-
169
148
  for (i = 0; i < 8; i++) {
170
149
  // x-bound: axis 0
171
150
  octMin[0] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][0][0]][0];
172
- octMax[0] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][0][1]][0]; // y-bound: axis 1
151
+ octMax[0] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][0][1]][0];
173
152
 
153
+ // y-bound: axis 1
174
154
  octMin[1] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][1][0]][1];
175
- octMax[1] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][1][1]][1]; // z-bound: axis 2
155
+ octMax[1] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][1][1]][1];
176
156
 
157
+ // z-bound: axis 2
177
158
  octMin[2] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][2][0]][2];
178
159
  octMax[2] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][2][1]][2];
179
160
  ocNode.children[i] = newInstance();
180
161
  ocNode.children[i].setParent(ocNode);
181
162
  ocNode.children[i].setBounds(octMin[0], octMax[0], octMin[1], octMax[1], octMin[2], octMax[2]);
182
- } // determine the leaf node of the duplicate points & that of the new point
183
-
163
+ }
184
164
 
165
+ // determine the leaf node of the duplicate points & that of the new point
185
166
  duplic = ocNode.children[ocNode.getChildIndex(dupPnt)];
186
167
  single = ocNode.children[ocNode.getChildIndex(newPnt)];
187
- } // Now the duplicate points have been separated from the new point //
168
+ }
169
+ // Now the duplicate points have been separated from the new point //
170
+
188
171
  // create a vtkIdList object for the new point
189
172
  // update the counter and the data bounding box until the root node
190
173
  // (including the root node)
191
-
192
-
193
- pointIdx = OCTREENODE_INSERTPOINT[ptMode](points, pointIdx, newPnt); // eslint-disable-next-line no-bitwise
194
-
174
+ pointIdx = OCTREENODE_INSERTPOINT[ptMode](points, pointIdx, newPnt);
175
+ // eslint-disable-next-line no-bitwise
195
176
  single.createPointIdSet(maxPts >> 2, maxPts >> 1);
196
177
  single.getPointIdSet().push(pointIdx);
197
- single.updateCounterAndDataBoundsRecursively(newPnt, 1, 1, null); // We just need to reference pntIds while un-registering it from 'this'.
178
+ single.updateCounterAndDataBoundsRecursively(newPnt, 1, 1, null);
179
+
180
+ // We just need to reference pntIds while un-registering it from 'this'.
198
181
  // This avoids deep-copying point ids from pntIds to duplic's PointIdSet.
199
182
  // update the counter and the data bounding box, but until 'this' node
200
183
  // (excluding 'this' node)
201
-
202
184
  duplic.setPointIdSet(pntIds);
203
185
  duplic.updateCounterAndDataBoundsRecursively(dupPnt, pntIds.length, 1, publicAPI);
204
186
  return pointIdx;
205
187
  };
206
188
  /* eslint-enable no-use-before-define */
207
- //------------------------------------------------------------------------------
208
-
209
189
 
210
- publicAPI.createChildNodes = function (points, pntIds, newPnt, pntIdx, maxPts, ptMode, numberOfNodes) {
190
+ //------------------------------------------------------------------------------
191
+ publicAPI.createChildNodes = (points, pntIds, newPnt, pntIdx, maxPts, ptMode, numberOfNodes) => {
211
192
  // There are two scenarios for which this function is invoked.
212
193
  //
213
194
  // (1) the number of points already maintained in this leaf node
@@ -216,63 +197,65 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
216
197
  // (2) the number of points already maintained in this leaf node
217
198
  // >= maxPts AND all of them are exactly duplicate with one another
218
199
  // BUT the new point is not a duplicate of them any more
200
+
219
201
  // address case (2) first if necessary
220
- var nbNodes = numberOfNodes;
221
- var pointIdx = pntIdx;
222
- var sample = [];
202
+ let nbNodes = numberOfNodes;
203
+ let pointIdx = pntIdx;
204
+ const sample = [];
223
205
  points.getPoint(pntIds[0], sample);
224
-
225
206
  if (publicAPI.containsDuplicatePointsOnly(sample)) {
226
207
  pointIdx = publicAPI.separateExactlyDuplicatePointsFromNewInsertion(points, pntIds, newPnt, pointIdx, maxPts, ptMode);
227
208
  return {
228
209
  success: false,
229
- nbNodes: nbNodes,
230
- pointIdx: pointIdx
210
+ nbNodes,
211
+ pointIdx
231
212
  };
232
- } // then address case (1) below
233
-
234
-
235
- var i;
236
- var target;
237
- var dvidId = -1; // index of the sub-dividing octant, if any
238
-
239
- var fullId = -1; // index of the full octant, if any
240
-
241
- var numIds = [0, 0, 0, 0, 0, 0, 0, 0];
242
- var octMin = [];
243
- var octMax = [];
244
- var tempPt = [];
245
- var tempId;
246
- var octMid = [(model.minBounds[0] + model.maxBounds[0]) * 0.5, (model.minBounds[1] + model.maxBounds[1]) * 0.5, (model.minBounds[2] + model.maxBounds[2]) * 0.5];
247
- var boxPtr = [model.minBounds, octMid, model.maxBounds]; // create eight child nodes
213
+ }
248
214
 
215
+ // then address case (1) below
216
+ let i;
217
+ let target;
218
+ let dvidId = -1; // index of the sub-dividing octant, if any
219
+ let fullId = -1; // index of the full octant, if any
220
+ const numIds = [0, 0, 0, 0, 0, 0, 0, 0];
221
+ const octMin = [];
222
+ const octMax = [];
223
+ const tempPt = [];
224
+ let tempId;
225
+ const octMid = [(model.minBounds[0] + model.maxBounds[0]) * 0.5, (model.minBounds[1] + model.maxBounds[1]) * 0.5, (model.minBounds[2] + model.maxBounds[2]) * 0.5];
226
+ const boxPtr = [model.minBounds, octMid, model.maxBounds];
227
+
228
+ // create eight child nodes
249
229
  model.children = [];
250
-
251
230
  for (i = 0; i < 8; i++) {
252
231
  // x-bound: axis 0
253
232
  octMin[0] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][0][0]][0];
254
- octMax[0] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][0][1]][0]; // y-bound: axis 1
233
+ octMax[0] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][0][1]][0];
255
234
 
235
+ // y-bound: axis 1
256
236
  octMin[1] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][1][0]][1];
257
- octMax[1] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][1][1]][1]; // z-bound: axis 2
237
+ octMax[1] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][1][1]][1];
258
238
 
239
+ // z-bound: axis 2
259
240
  octMin[2] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][2][0]][2];
260
- octMax[2] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][2][1]][2]; // This call internally sets the cener and default data bounding box, too.
261
- // eslint-disable-next-line no-use-before-define
262
-
263
- model.children[i] = newInstance(); // model.children[i].iD = nbNodes++;
241
+ octMax[2] = boxPtr[OCTREE_CHILD_BOUNDS_LUT[i][2][1]][2];
264
242
 
243
+ // This call internally sets the cener and default data bounding box, too.
244
+ // eslint-disable-next-line no-use-before-define
245
+ model.children[i] = newInstance();
246
+ // model.children[i].iD = nbNodes++;
265
247
  model.children[i].setParent(publicAPI);
266
- model.children[i].setBounds(octMin[0], octMax[0], octMin[1], octMax[1], octMin[2], octMax[2]); // allocate a list of point-indices (size = 2^n) for index registration
267
- // eslint-disable-next-line no-bitwise
248
+ model.children[i].setBounds(octMin[0], octMax[0], octMin[1], octMax[1], octMin[2], octMax[2]);
268
249
 
250
+ // allocate a list of point-indices (size = 2^n) for index registration
251
+ // eslint-disable-next-line no-bitwise
269
252
  model.children[i].createPointIdSet(maxPts >> 2, maxPts >> 1);
270
253
  }
271
-
272
254
  boxPtr[0] = null;
273
255
  boxPtr[1] = null;
274
- boxPtr[2] = null; // distribute the available point-indices to the eight child nodes
256
+ boxPtr[2] = null;
275
257
 
258
+ // distribute the available point-indices to the eight child nodes
276
259
  for (i = 0; i < maxPts; i++) {
277
260
  tempId = pntIds[i];
278
261
  points.getPoint(tempId, tempPt);
@@ -280,63 +263,61 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
280
263
  model.children[target].getPointIdSet().push(tempId);
281
264
  model.children[target].updateCounterAndDataBounds(tempPt);
282
265
  numIds[target]++;
283
- } // locate the full child, just if any
284
-
266
+ }
285
267
 
268
+ // locate the full child, just if any
286
269
  for (i = 0; i < 8; i++) {
287
270
  if (numIds[i] === maxPts) {
288
271
  fullId = i;
289
272
  break;
290
273
  }
291
274
  }
292
-
293
275
  target = publicAPI.getChildIndex(newPnt);
294
-
295
276
  if (fullId === target) {
296
277
  // The fact is that we are going to insert the new point to an already
297
278
  // full octant (child node). Thus we need to further divide this child
298
279
  // to avoid the overflow problem.
299
- var _model$children$targe = model.children[target].createChildNodes(points, pntIds, newPnt, pointIdx, maxPts, ptMode, nbNodes);
300
-
301
- nbNodes = _model$children$targe.numberOfNodes;
302
- pointIdx = _model$children$targe.pointIdx;
280
+ ({
281
+ numberOfNodes: nbNodes,
282
+ pointIdx
283
+ } = model.children[target].createChildNodes(points, pntIds, newPnt, pointIdx, maxPts, ptMode, nbNodes));
303
284
  dvidId = fullId;
304
285
  } else {
305
286
  // the initial division is a success
306
287
  pointIdx = OCTREENODE_INSERTPOINT[ptMode](points, pointIdx, newPnt);
307
288
  model.children[target].getPointIdSet().push(pointIdx);
308
- model.children[target].updateCounterAndDataBoundsRecursively(newPnt, 1, 1, null); // NOTE: The counter below might reach the threshold, though we delay the
309
- // sub-division of this child node until the next point insertion occurs.
289
+ model.children[target].updateCounterAndDataBoundsRecursively(newPnt, 1, 1, null);
310
290
 
291
+ // NOTE: The counter below might reach the threshold, though we delay the
292
+ // sub-division of this child node until the next point insertion occurs.
311
293
  numIds[target]++;
312
- } // Now it is time to reclaim those un-used vtkIdList objects, of which each
294
+ }
295
+
296
+ // Now it is time to reclaim those un-used vtkIdList objects, of which each
313
297
  // either is empty or still needs to be deleted due to further division of
314
298
  // the child node. This post-deallocation of the un-used vtkIdList objects
315
299
  // (of some child nodes) is based on the assumption that retrieving the
316
300
  // 'maxPts' points from vtkPoints and the associated 'maxPts' point-indices
317
301
  // from vtkIdList is more expensive than reclaiming at most 8 vtkIdList
318
302
  // objects at hand.
319
-
320
-
321
303
  for (i = 0; i < 8; i++) {
322
304
  if (numIds[i] === 0 || i === dvidId) {
323
305
  model.children[i].getPointIdSet().length = 0;
324
306
  }
325
- } // notify vtkIncrementalOctreeNode::InsertPoint() to destroy pntIds
326
-
307
+ }
327
308
 
309
+ // notify vtkIncrementalOctreeNode::InsertPoint() to destroy pntIds
328
310
  return {
329
311
  success: true,
330
312
  numberOfNodes: nbNodes,
331
- pointIdx: pointIdx
313
+ pointIdx
332
314
  };
333
- }; //------------------------------------------------------------------------------
334
-
335
-
336
- publicAPI.insertPoint = function (points, newPnt, maxPts, pntId, ptMode, numberOfNodes) {
337
- var nbNodes = 0;
338
- var pointIdx = pntId;
315
+ };
339
316
 
317
+ //------------------------------------------------------------------------------
318
+ publicAPI.insertPoint = (points, newPnt, maxPts, pntId, ptMode, numberOfNodes) => {
319
+ let nbNodes = 0;
320
+ let pointIdx = pntId;
340
321
  if (model.pointIdSet) {
341
322
  // there has been at least one point index
342
323
  if (model.pointIdSet.length < maxPts || publicAPI.containsDuplicatePointsOnly(newPnt)) {
@@ -350,10 +331,10 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
350
331
  // overflow: divide this node and delete the list of point-indices.
351
332
  // Note that the number of exactly duplicate points might be greater
352
333
  // than or equal to maxPts.
353
- var _publicAPI$createChil = publicAPI.createChildNodes(points, model.pointIdSet, newPnt, pointIdx, maxPts, ptMode, numberOfNodes);
354
-
355
- nbNodes = _publicAPI$createChil.numberOfNodes;
356
- pointIdx = _publicAPI$createChil.pointIdx;
334
+ ({
335
+ numberOfNodes: nbNodes,
336
+ pointIdx
337
+ } = publicAPI.createChildNodes(points, model.pointIdSet, newPnt, pointIdx, maxPts, ptMode, numberOfNodes));
357
338
  model.pointIdSet = null;
358
339
  }
359
340
  } else {
@@ -363,25 +344,23 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
363
344
  model.pointIdSet.push(pointIdx);
364
345
  publicAPI.updateCounterAndDataBoundsRecursively(newPnt, 1, 1, null);
365
346
  }
366
-
367
347
  return {
368
348
  numberOfNodes: numberOfNodes + nbNodes,
369
- pointIdx: pointIdx
349
+ pointIdx
370
350
  };
371
- }; //------------------------------------------------------------------------------
372
-
351
+ };
373
352
 
374
- publicAPI.getDistance2ToBoundary = function (point, closest, innerOnly, rootNode, checkData) {
353
+ //------------------------------------------------------------------------------
354
+ publicAPI.getDistance2ToBoundary = (point, closest, innerOnly, rootNode, checkData) => {
375
355
  // It is mandatory that GetMinDataBounds() and GetMaxDataBounds() be used.
376
356
  // Direct access to MinDataBounds and MaxDataBounds might incur problems.
377
- var thisMin = null;
378
- var thisMax = null;
379
- var rootMin = null;
380
- var rootMax = null; // TODO: Check
357
+ let thisMin = null;
358
+ let thisMax = null;
359
+ let rootMin = null;
360
+ let rootMax = null;
361
+ // TODO: Check
381
362
  // let minDist = VTK_DOUBLE_MAX;
382
-
383
- var minDist = Number.MAX_VALUE; // minimum distance to the boundaries
384
-
363
+ let minDist = Number.MAX_VALUE; // minimum distance to the boundaries
385
364
  if (checkData) {
386
365
  thisMin = publicAPI.getMinDataBounds();
387
366
  thisMax = publicAPI.getMaxDataBounds();
@@ -393,59 +372,57 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
393
372
  rootMin = rootNode.getMinBounds();
394
373
  rootMax = rootNode.getMaxBounds();
395
374
  }
396
-
397
- var minFace = 0; // index of the face with min distance to the point
398
-
399
- var beXless = Number(point[0] < thisMin[0]);
400
- var beXmore = Number(point[0] > thisMax[0]);
401
- var beYless = Number(point[1] < thisMin[1]);
402
- var beYmore = Number(point[1] > thisMax[1]);
403
- var beZless = Number(point[2] < thisMin[2]);
404
- var beZmore = Number(point[2] > thisMax[2]);
405
- var withinX = Number(!beXless && !beXmore);
406
- var withinY = Number(!beYless && !beYmore);
407
- var withinZ = Number(!beZless && !beZmore); // eslint-disable-next-line no-bitwise
408
-
409
- var xyzFlag = (withinZ << 2) + (withinY << 1) + withinX;
410
-
375
+ let minFace = 0; // index of the face with min distance to the point
376
+ const beXless = Number(point[0] < thisMin[0]);
377
+ const beXmore = Number(point[0] > thisMax[0]);
378
+ const beYless = Number(point[1] < thisMin[1]);
379
+ const beYmore = Number(point[1] > thisMax[1]);
380
+ const beZless = Number(point[2] < thisMin[2]);
381
+ const beZmore = Number(point[2] > thisMax[2]);
382
+ const withinX = Number(!beXless && !beXmore);
383
+ const withinY = Number(!beYless && !beYmore);
384
+ const withinZ = Number(!beZless && !beZmore);
385
+ // eslint-disable-next-line no-bitwise
386
+ const xyzFlag = (withinZ << 2) + (withinY << 1) + withinX;
411
387
  switch (xyzFlag) {
412
388
  case 0:
413
389
  {
414
390
  // withinZ = 0; withinY = 0; withinX = 0
415
391
  // closest to a corner
392
+
416
393
  closest[0] = beXless ? thisMin[0] : thisMax[0];
417
394
  closest[1] = beYless ? thisMin[1] : thisMax[1];
418
395
  closest[2] = beZless ? thisMin[2] : thisMax[2];
419
396
  minDist = distance2BetweenPoints(point, closest);
420
397
  break;
421
398
  }
422
-
423
399
  case 1:
424
400
  {
425
401
  // withinZ = 0; withinY = 0; withinX = 1
426
402
  // closest to an x-aligned edge
403
+
427
404
  closest[0] = point[0];
428
405
  closest[1] = beYless ? thisMin[1] : thisMax[1];
429
406
  closest[2] = beZless ? thisMin[2] : thisMax[2];
430
407
  minDist = distance2BetweenPoints(point, closest);
431
408
  break;
432
409
  }
433
-
434
410
  case 2:
435
411
  {
436
412
  // withinZ = 0; withinY = 1; withinX = 0
437
413
  // closest to a y-aligned edge
414
+
438
415
  closest[0] = beXless ? thisMin[0] : thisMax[0];
439
416
  closest[1] = point[1];
440
417
  closest[2] = beZless ? thisMin[2] : thisMax[2];
441
418
  minDist = distance2BetweenPoints(point, closest);
442
419
  break;
443
420
  }
444
-
445
421
  case 3:
446
422
  {
447
423
  // withinZ = 0; withinY = 1; withinX = 1
448
424
  // closest to a z-face
425
+
449
426
  if (beZless) {
450
427
  minDist = thisMin[2] - point[2];
451
428
  closest[2] = thisMin[2];
@@ -453,28 +430,27 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
453
430
  minDist = point[2] - thisMax[2];
454
431
  closest[2] = thisMax[2];
455
432
  }
456
-
457
433
  minDist *= minDist;
458
434
  closest[0] = point[0];
459
435
  closest[1] = point[1];
460
436
  break;
461
437
  }
462
-
463
438
  case 4:
464
439
  {
465
440
  // withinZ = 1; withinY = 0; withinX = 0
466
441
  // cloest to a z-aligned edge
442
+
467
443
  closest[0] = beXless ? thisMin[0] : thisMax[0];
468
444
  closest[1] = beYless ? thisMin[1] : thisMax[1];
469
445
  closest[2] = point[2];
470
446
  minDist = distance2BetweenPoints(point, closest);
471
447
  break;
472
448
  }
473
-
474
449
  case 5:
475
450
  {
476
451
  // withinZ = 1; withinY = 0; withinX = 1
477
452
  // closest to a y-face
453
+
478
454
  if (beYless) {
479
455
  minDist = thisMin[1] - point[1];
480
456
  closest[1] = thisMin[1];
@@ -482,17 +458,16 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
482
458
  minDist = point[1] - thisMax[1];
483
459
  closest[1] = thisMax[1];
484
460
  }
485
-
486
461
  minDist *= minDist;
487
462
  closest[0] = point[0];
488
463
  closest[2] = point[2];
489
464
  break;
490
465
  }
491
-
492
466
  case 6:
493
467
  {
494
468
  // withinZ = 1; withinY = 1; withinX = 0
495
469
  // closest to an x-face
470
+
496
471
  if (beXless) {
497
472
  minDist = thisMin[0] - point[0];
498
473
  closest[0] = thisMin[0];
@@ -500,114 +475,100 @@ function vtkIncrementalOctreeNode(publicAPI, model) {
500
475
  minDist = point[0] - thisMax[0];
501
476
  closest[0] = thisMax[0];
502
477
  }
503
-
504
478
  minDist *= minDist;
505
479
  closest[1] = point[1];
506
480
  closest[2] = point[2];
507
481
  break;
508
482
  }
509
-
510
483
  case 7:
511
484
  {
512
485
  // withinZ = 1; withinY = 1; withinZ = 1
513
486
  // point is inside the box
487
+
514
488
  if (innerOnly) {
515
489
  // check only inner boundaries
516
- var faceDst;
490
+ let faceDst;
517
491
  faceDst = point[0] - thisMin[0]; // x-min face
518
-
519
492
  if (thisMin[0] !== rootMin[0] && faceDst < minDist) {
520
493
  minFace = 0;
521
494
  minDist = faceDst;
522
495
  }
523
-
524
496
  faceDst = thisMax[0] - point[0]; // x-max face
525
-
526
497
  if (thisMax[0] !== rootMax[0] && faceDst < minDist) {
527
498
  minFace = 1;
528
499
  minDist = faceDst;
529
500
  }
530
-
531
501
  faceDst = point[1] - thisMin[1]; // y-min face
532
-
533
502
  if (thisMin[1] !== rootMin[1] && faceDst < minDist) {
534
503
  minFace = 2;
535
504
  minDist = faceDst;
536
505
  }
537
-
538
506
  faceDst = thisMax[1] - point[1]; // y-max face
539
-
540
507
  if (thisMax[1] !== rootMax[1] && faceDst < minDist) {
541
508
  minFace = 3;
542
509
  minDist = faceDst;
543
510
  }
544
-
545
511
  faceDst = point[2] - thisMin[2]; // z-min face
546
-
547
512
  if (thisMin[2] !== rootMin[2] && faceDst < minDist) {
548
513
  minFace = 4;
549
514
  minDist = faceDst;
550
515
  }
551
-
552
516
  faceDst = thisMax[2] - point[2]; // z-max face
553
-
554
517
  if (thisMax[2] !== rootMax[2] && faceDst < minDist) {
555
518
  minFace = 5;
556
519
  minDist = faceDst;
557
520
  }
558
521
  } else {
559
522
  // check all boundaries
560
- var tmpDist = [point[0] - thisMin[0], thisMax[0] - point[0], point[1] - thisMin[1], thisMax[1] - point[1], point[2] - thisMin[2], thisMax[2] - point[2]];
561
-
562
- for (var i = 0; i < 6; i++) {
523
+ const tmpDist = [point[0] - thisMin[0], thisMax[0] - point[0], point[1] - thisMin[1], thisMax[1] - point[1], point[2] - thisMin[2], thisMax[2] - point[2]];
524
+ for (let i = 0; i < 6; i++) {
563
525
  if (tmpDist[i] < minDist) {
564
526
  minFace = i;
565
527
  minDist = tmpDist[i];
566
528
  }
567
529
  }
568
- } // no square operation if no any inner boundary
569
-
530
+ }
570
531
 
532
+ // no square operation if no any inner boundary
571
533
  if (minDist !== Number.MAX_VALUE) {
572
534
  minDist *= minDist;
573
535
  }
574
-
575
536
  closest[0] = point[0];
576
537
  closest[1] = point[1];
577
- closest[2] = point[2]; // minFace: the quad with the min distance to the point
538
+ closest[2] = point[2];
539
+
540
+ // minFace: the quad with the min distance to the point
578
541
  // 0: x-min face ===> xyzIndx = 0: x and minFace & 1 = 0: thisMin
579
542
  // 1: x-max face ===> xyzIndx = 0: x and minFace & 1 = 1: thisMax
580
543
  // 2: y-min face ===> xyzIndx = 1: y and minFace & 1 = 0: thisMin
581
544
  // 3: y-max face ===> xyzIndx = 1: y and minFace & 1 = 1: thisMax
582
545
  // 4: z-min face ===> xyzIndx = 2: z and minFace & 1 = 0: thisMin
583
546
  // 5: z-max face ===> xyzIndx = 2: z and minFace & 1 = 1: thisMax
584
-
585
- var pMinMax = [thisMin, thisMax]; // eslint-disable-next-line no-bitwise
586
-
587
- var xyzIndx = minFace >> 1; // eslint-disable-next-line no-bitwise
588
-
547
+ const pMinMax = [thisMin, thisMax];
548
+ // eslint-disable-next-line no-bitwise
549
+ const xyzIndx = minFace >> 1;
550
+ // eslint-disable-next-line no-bitwise
589
551
  closest[xyzIndx] = pMinMax[minFace & 1][xyzIndx];
590
552
  break;
591
553
  }
592
-
593
554
  default:
594
555
  vtkErrorMacro('unexpected case in getDistance2ToBoundary');
595
556
  }
596
-
597
557
  return minDist;
598
- }; //------------------------------------------------------------------------------
599
-
558
+ };
600
559
 
601
- publicAPI.getDistance2ToInnerBoundary = function (point, rootNode) {
602
- var dummy = [];
560
+ //------------------------------------------------------------------------------
561
+ publicAPI.getDistance2ToInnerBoundary = (point, rootNode) => {
562
+ const dummy = [];
603
563
  return publicAPI.getDistance2ToBoundary(point, dummy, 0, rootNode, 0);
604
564
  };
605
- } // ----------------------------------------------------------------------------
565
+ }
566
+
567
+ // ----------------------------------------------------------------------------
606
568
  // Object factory
607
569
  // ----------------------------------------------------------------------------
608
570
 
609
-
610
- var DEFAULT_VALUES = {
571
+ const DEFAULT_VALUES = {
611
572
  pointIdSet: null,
612
573
  minBounds: null,
613
574
  maxBounds: null,
@@ -615,26 +576,35 @@ var DEFAULT_VALUES = {
615
576
  maxDataBounds: null,
616
577
  parent: null,
617
578
  children: null
618
- }; // ----------------------------------------------------------------------------
579
+ };
580
+
581
+ // ----------------------------------------------------------------------------
619
582
 
620
583
  function extend(publicAPI, model) {
621
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
622
- Object.assign(model, DEFAULT_VALUES, initialValues); // Make this a VTK object
584
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
585
+ Object.assign(model, DEFAULT_VALUES, initialValues);
623
586
 
587
+ // Make this a VTK object
624
588
  macro.obj(publicAPI, model);
625
589
  macro.setGetArray(publicAPI, model, ['minBounds', 'maxBounds', 'minDataBounds', 'maxDataBounds'], 6);
626
- macro.get(publicAPI, model, ['pointIdSet', 'numberOfPoints']); // TODO: No get?
590
+ macro.get(publicAPI, model, ['pointIdSet', 'numberOfPoints']);
627
591
 
628
- macro.set(publicAPI, model, ['parent']); // Object specific methods
592
+ // TODO: No get?
593
+ macro.set(publicAPI, model, ['parent']);
629
594
 
595
+ // Object specific methods
630
596
  vtkIncrementalOctreeNode(publicAPI, model);
631
- } // ----------------------------------------------------------------------------
597
+ }
632
598
 
633
- var newInstance = macro.newInstance(extend, 'vtkIncrementalOctreeNode'); // ----------------------------------------------------------------------------
599
+ // ----------------------------------------------------------------------------
600
+
601
+ const newInstance = macro.newInstance(extend, 'vtkIncrementalOctreeNode');
602
+
603
+ // ----------------------------------------------------------------------------
634
604
 
635
605
  var vtkIncrementalOctreeNode$1 = {
636
- newInstance: newInstance,
637
- extend: extend
606
+ newInstance,
607
+ extend
638
608
  };
639
609
 
640
610
  export { vtkIncrementalOctreeNode$1 as default, extend, newInstance };