@kitware/vtk.js 28.10.2 → 28.11.1

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 +193 -277
  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/README.md +1 -1
  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 +85 -144
  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 +192 -256
  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 +443 -608
  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 +40 -38
  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 +133 -209
  540. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  541. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +89 -116
  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,197 +1,167 @@
1
- import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
2
- import _regeneratorRuntime from '@babel/runtime/regenerator';
3
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
4
2
  import vtkHardwareSelector from '../Core/HardwareSelector.js';
5
3
  import vtkWebGPUBuffer from './Buffer.js';
6
4
  import vtkWebGPUHardwareSelectionPass from './HardwareSelectionPass.js';
7
5
  import vtkSelectionNode from '../../Common/DataModel/SelectionNode.js';
8
6
  import vtkDataSet from '../../Common/DataModel/DataSet.js';
9
7
 
10
- var SelectionContent = vtkSelectionNode.SelectionContent,
11
- SelectionField = vtkSelectionNode.SelectionField;
12
- var FieldAssociations = vtkDataSet.FieldAssociations;
13
- var vtkErrorMacro = macro.vtkErrorMacro;
14
-
8
+ const {
9
+ SelectionContent,
10
+ SelectionField
11
+ } = vtkSelectionNode;
12
+ const {
13
+ FieldAssociations
14
+ } = vtkDataSet;
15
+ const {
16
+ vtkErrorMacro
17
+ } = macro;
15
18
  function getInfoHash(info) {
16
- return "".concat(info.propID, " ").concat(info.compositeID);
19
+ return `${info.propID} ${info.compositeID}`;
17
20
  }
18
-
19
21
  function convert(xx, yy, buffdata, channel) {
20
- var offset = ((buffdata.height - yy - 1) * buffdata.colorBufferWidth + xx) * 4 + channel;
22
+ const offset = ((buffdata.height - yy - 1) * buffdata.colorBufferWidth + xx) * 4 + channel;
21
23
  return buffdata.colorValues[offset];
22
24
  }
23
-
24
25
  function getPixelInformationWithData(buffdata, inDisplayPosition, maxDistance, outSelectedPosition) {
25
26
  // Base case
26
- var maxDist = maxDistance < 0 ? 0 : maxDistance;
27
-
27
+ const maxDist = maxDistance < 0 ? 0 : maxDistance;
28
28
  if (maxDist === 0) {
29
29
  outSelectedPosition[0] = inDisplayPosition[0];
30
30
  outSelectedPosition[1] = inDisplayPosition[1];
31
-
32
31
  if (inDisplayPosition[0] < 0 || inDisplayPosition[0] >= buffdata.width || inDisplayPosition[1] < 0 || inDisplayPosition[1] >= buffdata.height) {
33
32
  return null;
34
33
  }
35
-
36
- var actorid = convert(inDisplayPosition[0], inDisplayPosition[1], buffdata, 0);
37
-
34
+ const actorid = convert(inDisplayPosition[0], inDisplayPosition[1], buffdata, 0);
38
35
  if (actorid <= 0) {
39
36
  // the pixel did not hit any actor.
40
37
  return null;
41
38
  }
42
-
43
- var _info = {};
44
- _info.propID = actorid;
45
- var compositeID = convert(inDisplayPosition[0], inDisplayPosition[1], buffdata, 1);
46
-
39
+ const info = {};
40
+ info.propID = actorid;
41
+ let compositeID = convert(inDisplayPosition[0], inDisplayPosition[1], buffdata, 1);
47
42
  if (compositeID < 0 || compositeID > 0xffffff) {
48
43
  compositeID = 0;
49
44
  }
50
-
51
- _info.compositeID = compositeID;
52
-
45
+ info.compositeID = compositeID;
53
46
  if (buffdata.captureZValues) {
54
- var offset = (buffdata.height - inDisplayPosition[1] - 1) * buffdata.zbufferBufferWidth + inDisplayPosition[0];
55
- _info.zValue = buffdata.depthValues[offset];
56
- _info.zValue = buffdata.webGPURenderer.convertToOpenGLDepth(_info.zValue);
57
- _info.displayPosition = inDisplayPosition;
47
+ const offset = (buffdata.height - inDisplayPosition[1] - 1) * buffdata.zbufferBufferWidth + inDisplayPosition[0];
48
+ info.zValue = buffdata.depthValues[offset];
49
+ info.zValue = buffdata.webGPURenderer.convertToOpenGLDepth(info.zValue);
50
+ info.displayPosition = inDisplayPosition;
58
51
  }
52
+ return info;
53
+ }
59
54
 
60
- return _info;
61
- } // Iterate over successively growing boxes.
55
+ // Iterate over successively growing boxes.
62
56
  // They recursively call the base case to handle single pixels.
63
-
64
-
65
- var dispPos = [inDisplayPosition[0], inDisplayPosition[1]];
66
- var curPos = [0, 0];
67
- var info = getPixelInformationWithData(buffdata, inDisplayPosition, 0, outSelectedPosition);
68
-
57
+ const dispPos = [inDisplayPosition[0], inDisplayPosition[1]];
58
+ const curPos = [0, 0];
59
+ let info = getPixelInformationWithData(buffdata, inDisplayPosition, 0, outSelectedPosition);
69
60
  if (info) {
70
61
  return info;
71
62
  }
72
-
73
- for (var dist = 1; dist < maxDist; ++dist) {
63
+ for (let dist = 1; dist < maxDist; ++dist) {
74
64
  // Vertical sides of box.
75
- for (var y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {
65
+ for (let y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {
76
66
  curPos[1] = y;
77
-
78
67
  if (dispPos[0] >= dist) {
79
68
  curPos[0] = dispPos[0] - dist;
80
69
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
81
-
82
70
  if (info) {
83
71
  return info;
84
72
  }
85
73
  }
86
-
87
74
  curPos[0] = dispPos[0] + dist;
88
75
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
89
-
90
76
  if (info) {
91
77
  return info;
92
78
  }
93
- } // Horizontal sides of box.
94
-
95
-
96
- for (var x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {
79
+ }
80
+ // Horizontal sides of box.
81
+ for (let x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {
97
82
  curPos[0] = x;
98
-
99
83
  if (dispPos[1] >= dist) {
100
84
  curPos[1] = dispPos[1] - dist;
101
85
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
102
-
103
86
  if (info) {
104
87
  return info;
105
88
  }
106
89
  }
107
-
108
90
  curPos[1] = dispPos[1] + dist;
109
91
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
110
-
111
92
  if (info) {
112
93
  return info;
113
94
  }
114
95
  }
115
- } // nothing hit.
116
-
96
+ }
117
97
 
98
+ // nothing hit.
118
99
  outSelectedPosition[0] = inDisplayPosition[0];
119
100
  outSelectedPosition[1] = inDisplayPosition[1];
120
101
  return null;
121
- } //-----------------------------------------------------------------------------
122
-
102
+ }
123
103
 
104
+ //-----------------------------------------------------------------------------
124
105
  function convertSelection(fieldassociation, dataMap, buffdata) {
125
- var sel = [];
126
- var count = 0;
127
- dataMap.forEach(function (value, key) {
128
- var child = vtkSelectionNode.newInstance();
106
+ const sel = [];
107
+ let count = 0;
108
+ dataMap.forEach((value, key) => {
109
+ const child = vtkSelectionNode.newInstance();
129
110
  child.setContentType(SelectionContent.INDICES);
130
-
131
111
  switch (fieldassociation) {
132
112
  case FieldAssociations.FIELD_ASSOCIATION_CELLS:
133
113
  child.setFieldType(SelectionField.CELL);
134
114
  break;
135
-
136
115
  case FieldAssociations.FIELD_ASSOCIATION_POINTS:
137
116
  child.setFieldType(SelectionField.POINT);
138
117
  break;
139
-
140
118
  default:
141
119
  vtkErrorMacro('Unknown field association');
142
120
  }
143
-
144
121
  child.getProperties().propID = value.info.propID;
145
- var wprop = buffdata.webGPURenderer.getPropFromID(value.info.propID);
122
+ const wprop = buffdata.webGPURenderer.getPropFromID(value.info.propID);
146
123
  child.getProperties().prop = wprop.getRenderable();
147
124
  child.getProperties().compositeID = value.info.compositeID;
148
125
  child.getProperties().pixelCount = value.pixelCount;
149
-
150
126
  if (buffdata.captureZValues) {
151
127
  child.getProperties().displayPosition = [value.info.displayPosition[0], value.info.displayPosition[1], value.info.zValue];
152
128
  child.getProperties().worldPosition = buffdata.webGPURenderWindow.displayToWorld(value.info.displayPosition[0], value.info.displayPosition[1], value.info.zValue, buffdata.renderer);
153
129
  }
154
-
155
130
  child.setSelectionList(value.attributeIDs);
156
131
  sel[count] = child;
157
132
  count++;
158
133
  });
159
134
  return sel;
160
- } //----------------------------------------------------------------------------
161
-
135
+ }
162
136
 
137
+ //----------------------------------------------------------------------------
163
138
  function generateSelectionWithData(buffdata, fx1, fy1, fx2, fy2) {
164
- var x1 = Math.floor(fx1);
165
- var y1 = Math.floor(fy1);
166
- var x2 = Math.floor(fx2);
167
- var y2 = Math.floor(fy2);
168
- var dataMap = new Map();
169
- var outSelectedPosition = [0, 0];
170
-
171
- for (var yy = y1; yy <= y2; yy++) {
172
- for (var xx = x1; xx <= x2; xx++) {
173
- var pos = [xx, yy];
174
- var info = getPixelInformationWithData(buffdata, pos, 0, outSelectedPosition);
175
-
139
+ const x1 = Math.floor(fx1);
140
+ const y1 = Math.floor(fy1);
141
+ const x2 = Math.floor(fx2);
142
+ const y2 = Math.floor(fy2);
143
+ const dataMap = new Map();
144
+ const outSelectedPosition = [0, 0];
145
+ for (let yy = y1; yy <= y2; yy++) {
146
+ for (let xx = x1; xx <= x2; xx++) {
147
+ const pos = [xx, yy];
148
+ const info = getPixelInformationWithData(buffdata, pos, 0, outSelectedPosition);
176
149
  if (info) {
177
- var hash = getInfoHash(info);
178
-
150
+ const hash = getInfoHash(info);
179
151
  if (!dataMap.has(hash)) {
180
152
  dataMap.set(hash, {
181
- info: info,
153
+ info,
182
154
  pixelCount: 1,
183
155
  attributeIDs: [info.attributeID]
184
156
  });
185
157
  } else {
186
- var dmv = dataMap.get(hash);
158
+ const dmv = dataMap.get(hash);
187
159
  dmv.pixelCount++;
188
-
189
160
  if (buffdata.captureZValues) {
190
161
  if (info.zValue < dmv.info.zValue) {
191
162
  dmv.info = info;
192
163
  }
193
164
  }
194
-
195
165
  if (dmv.attributeIDs.indexOf(info.attributeID) === -1) {
196
166
  dmv.attributeIDs.push(info.attributeID);
197
167
  }
@@ -199,226 +169,180 @@ function generateSelectionWithData(buffdata, fx1, fy1, fx2, fy2) {
199
169
  }
200
170
  }
201
171
  }
202
-
203
172
  return convertSelection(buffdata.fieldAssociation, dataMap, buffdata);
204
- } // ----------------------------------------------------------------------------
173
+ }
174
+
175
+ // ----------------------------------------------------------------------------
205
176
  // vtkWebGPUHardwareSelector methods
206
177
  // ----------------------------------------------------------------------------
207
178
 
208
-
209
179
  function vtkWebGPUHardwareSelector(publicAPI, model) {
210
180
  // Set our className
211
- model.classHierarchy.push('vtkWebGPUHardwareSelector'); //----------------------------------------------------------------------------
181
+ model.classHierarchy.push('vtkWebGPUHardwareSelector');
212
182
 
213
- publicAPI.endSelection = function () {
183
+ //----------------------------------------------------------------------------
184
+ publicAPI.endSelection = () => {
214
185
  model.WebGPURenderer.setSelector(null);
215
- }; //----------------------------------------------------------------------------
186
+ };
187
+
188
+ //----------------------------------------------------------------------------
216
189
  // note we ignore the x,y arguments as WebGPU has to do buffer copies
217
190
  // of the entire depth bufer. We could realloc hardware selection textures
218
191
  // based on the passed in size etc but it gets messy so for now we always
219
192
  // render the full size window and copy it to the buffers.
193
+ publicAPI.getSourceDataAsync = async renderer => {
194
+ if (!renderer || !model._WebGPURenderWindow) {
195
+ vtkErrorMacro('Renderer and view must be set before calling Select.');
196
+ return false;
197
+ }
220
198
 
199
+ // todo revisit making selection part of core
200
+ // then we can do this in core
201
+ model._WebGPURenderWindow.getRenderable().preRender();
202
+ if (!model._WebGPURenderWindow.getInitialized()) {
203
+ model._WebGPURenderWindow.initialize();
204
+ await new Promise(resolve => {
205
+ model._WebGPURenderWindow.onInitialized(resolve);
206
+ });
207
+ }
208
+ const webGPURenderer = model._WebGPURenderWindow.getViewNodeFor(renderer);
209
+ if (!webGPURenderer) {
210
+ return false;
211
+ }
221
212
 
222
- publicAPI.getSourceDataAsync = /*#__PURE__*/function () {
223
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(renderer) {
224
- var webGPURenderer, originalSuppress, device, texture, depthTexture, result, colorBuffer, cmdEnc, zbuffer, cLoad, zLoad;
225
- return _regeneratorRuntime.wrap(function _callee$(_context) {
226
- while (1) {
227
- switch (_context.prev = _context.next) {
228
- case 0:
229
- if (!(!renderer || !model._WebGPURenderWindow)) {
230
- _context.next = 3;
231
- break;
232
- }
233
-
234
- vtkErrorMacro('Renderer and view must be set before calling Select.');
235
- return _context.abrupt("return", false);
236
-
237
- case 3:
238
- // todo revisit making selection part of core
239
- // then we can do this in core
240
- model._WebGPURenderWindow.getRenderable().preRender();
241
-
242
- if (model._WebGPURenderWindow.getInitialized()) {
243
- _context.next = 8;
244
- break;
245
- }
246
-
247
- model._WebGPURenderWindow.initialize();
248
-
249
- _context.next = 8;
250
- return new Promise(function (resolve) {
251
- model._WebGPURenderWindow.onInitialized(resolve);
252
- });
253
-
254
- case 8:
255
- webGPURenderer = model._WebGPURenderWindow.getViewNodeFor(renderer);
256
-
257
- if (webGPURenderer) {
258
- _context.next = 11;
259
- break;
260
- }
261
-
262
- return _context.abrupt("return", false);
263
-
264
- case 11:
265
- // Initialize renderer for selection.
266
- // change the renderer's background to black, which will indicate a miss
267
- originalSuppress = webGPURenderer.getSuppressClear();
268
- webGPURenderer.setSuppressClear(true);
269
-
270
- model._selectionPass.traverse(model._WebGPURenderWindow, webGPURenderer); // restore original background
271
-
272
-
273
- webGPURenderer.setSuppressClear(originalSuppress);
274
- device = model._WebGPURenderWindow.getDevice();
275
- texture = model._selectionPass.getColorTexture();
276
- depthTexture = model._selectionPass.getDepthTexture(); // as this is async we really don't want to store things in
277
- // the class as multiple calls may start before resolving
278
- // so anything specific to this request gets put into the
279
- // result object (by value in most cases)
280
-
281
- result = {
282
- area: [0, 0, texture.getWidth() - 1, texture.getHeight() - 1],
283
- captureZValues: model.captureZValues,
284
- fieldAssociation: model.fieldAssociation,
285
- renderer: renderer,
286
- webGPURenderer: webGPURenderer,
287
- webGPURenderWindow: model._WebGPURenderWindow,
288
- width: texture.getWidth(),
289
- height: texture.getHeight()
290
- }; // must be a multiple of 256 bytes, so 16 texels with rgba32uint
291
-
292
- result.colorBufferWidth = 16 * Math.floor((result.width + 15) / 16);
293
- result.colorBufferSizeInBytes = result.colorBufferWidth * result.height * 4 * 4;
294
- colorBuffer = vtkWebGPUBuffer.newInstance({
295
- label: 'hardwareSelectColorBuffer'
296
- });
297
- colorBuffer.setDevice(device);
298
- /* eslint-disable no-bitwise */
299
-
300
- /* eslint-disable no-undef */
301
-
302
- colorBuffer.create(result.colorBufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
303
- /* eslint-enable no-bitwise */
304
-
305
- /* eslint-enable no-undef */
306
-
307
- cmdEnc = model._WebGPURenderWindow.getCommandEncoder();
308
- cmdEnc.copyTextureToBuffer({
309
- texture: texture.getHandle()
310
- }, {
311
- buffer: colorBuffer.getHandle(),
312
- bytesPerRow: 16 * result.colorBufferWidth,
313
- rowsPerImage: result.height
314
- }, {
315
- width: result.width,
316
- height: result.height,
317
- depthOrArrayLayers: 1
318
- });
319
-
320
- if (model.captureZValues) {
321
- result.zbufferBufferWidth = 64 * Math.floor((result.width + 63) / 64);
322
- zbuffer = vtkWebGPUBuffer.newInstance({
323
- label: 'hardwareSelectDepthBuffer'
324
- });
325
- zbuffer.setDevice(device);
326
- result.zbufferSizeInBytes = result.height * result.zbufferBufferWidth * 4;
327
- /* eslint-disable no-bitwise */
328
-
329
- /* eslint-disable no-undef */
330
-
331
- zbuffer.create(result.zbufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
332
- /* eslint-enable no-bitwise */
333
-
334
- /* eslint-enable no-undef */
335
-
336
- cmdEnc.copyTextureToBuffer({
337
- texture: depthTexture.getHandle(),
338
- aspect: 'depth-only'
339
- }, {
340
- buffer: zbuffer.getHandle(),
341
- bytesPerRow: 4 * result.zbufferBufferWidth,
342
- rowsPerImage: result.height
343
- }, {
344
- width: result.width,
345
- height: result.height,
346
- depthOrArrayLayers: 1
347
- });
348
- }
349
-
350
- device.submitCommandEncoder(cmdEnc);
351
- /* eslint-disable no-undef */
352
-
353
- cLoad = colorBuffer.mapAsync(GPUMapMode.READ);
354
-
355
- if (!model.captureZValues) {
356
- _context.next = 37;
357
- break;
358
- }
359
-
360
- zLoad = zbuffer.mapAsync(GPUMapMode.READ);
361
- _context.next = 33;
362
- return Promise.all([cLoad, zLoad]);
363
-
364
- case 33:
365
- result.depthValues = new Float32Array(zbuffer.getMappedRange().slice());
366
- zbuffer.unmap();
367
- _context.next = 39;
368
- break;
369
-
370
- case 37:
371
- _context.next = 39;
372
- return cLoad;
373
-
374
- case 39:
375
- /* eslint-enable no-undef */
376
- result.colorValues = new Uint32Array(colorBuffer.getMappedRange().slice());
377
- colorBuffer.unmap();
378
-
379
- result.generateSelection = function (fx1, fy1, fx2, fy2) {
380
- return generateSelectionWithData(result, fx1, fy1, fx2, fy2);
381
- };
213
+ // Initialize renderer for selection.
214
+ // change the renderer's background to black, which will indicate a miss
215
+ const originalSuppress = webGPURenderer.getSuppressClear();
216
+ webGPURenderer.setSuppressClear(true);
217
+ model._selectionPass.traverse(model._WebGPURenderWindow, webGPURenderer);
218
+
219
+ // restore original background
220
+ webGPURenderer.setSuppressClear(originalSuppress);
221
+ const device = model._WebGPURenderWindow.getDevice();
222
+ const texture = model._selectionPass.getColorTexture();
223
+ const depthTexture = model._selectionPass.getDepthTexture();
224
+
225
+ // as this is async we really don't want to store things in
226
+ // the class as multiple calls may start before resolving
227
+ // so anything specific to this request gets put into the
228
+ // result object (by value in most cases)
229
+ const result = {
230
+ area: [0, 0, texture.getWidth() - 1, texture.getHeight() - 1],
231
+ captureZValues: model.captureZValues,
232
+ fieldAssociation: model.fieldAssociation,
233
+ renderer,
234
+ webGPURenderer,
235
+ webGPURenderWindow: model._WebGPURenderWindow,
236
+ width: texture.getWidth(),
237
+ height: texture.getHeight()
238
+ };
382
239
 
383
- return _context.abrupt("return", result);
240
+ // must be a multiple of 256 bytes, so 16 texels with rgba32uint
241
+ result.colorBufferWidth = 16 * Math.floor((result.width + 15) / 16);
242
+ result.colorBufferSizeInBytes = result.colorBufferWidth * result.height * 4 * 4;
243
+ const colorBuffer = vtkWebGPUBuffer.newInstance({
244
+ label: 'hardwareSelectColorBuffer'
245
+ });
246
+ colorBuffer.setDevice(device);
247
+ /* eslint-disable no-bitwise */
248
+ /* eslint-disable no-undef */
249
+ colorBuffer.create(result.colorBufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
250
+ /* eslint-enable no-bitwise */
251
+ /* eslint-enable no-undef */
252
+
253
+ const cmdEnc = model._WebGPURenderWindow.getCommandEncoder();
254
+ cmdEnc.copyTextureToBuffer({
255
+ texture: texture.getHandle()
256
+ }, {
257
+ buffer: colorBuffer.getHandle(),
258
+ bytesPerRow: 16 * result.colorBufferWidth,
259
+ rowsPerImage: result.height
260
+ }, {
261
+ width: result.width,
262
+ height: result.height,
263
+ depthOrArrayLayers: 1
264
+ });
265
+ let zbuffer;
266
+ if (model.captureZValues) {
267
+ result.zbufferBufferWidth = 64 * Math.floor((result.width + 63) / 64);
268
+ zbuffer = vtkWebGPUBuffer.newInstance({
269
+ label: 'hardwareSelectDepthBuffer'
270
+ });
271
+ zbuffer.setDevice(device);
272
+ result.zbufferSizeInBytes = result.height * result.zbufferBufferWidth * 4;
273
+ /* eslint-disable no-bitwise */
274
+ /* eslint-disable no-undef */
275
+ zbuffer.create(result.zbufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
276
+ /* eslint-enable no-bitwise */
277
+ /* eslint-enable no-undef */
278
+
279
+ cmdEnc.copyTextureToBuffer({
280
+ texture: depthTexture.getHandle(),
281
+ aspect: 'depth-only'
282
+ }, {
283
+ buffer: zbuffer.getHandle(),
284
+ bytesPerRow: 4 * result.zbufferBufferWidth,
285
+ rowsPerImage: result.height
286
+ }, {
287
+ width: result.width,
288
+ height: result.height,
289
+ depthOrArrayLayers: 1
290
+ });
291
+ }
292
+ device.submitCommandEncoder(cmdEnc);
293
+
294
+ /* eslint-disable no-undef */
295
+ const cLoad = colorBuffer.mapAsync(GPUMapMode.READ);
296
+ if (model.captureZValues) {
297
+ const zLoad = zbuffer.mapAsync(GPUMapMode.READ);
298
+ await Promise.all([cLoad, zLoad]);
299
+ result.depthValues = new Float32Array(zbuffer.getMappedRange().slice());
300
+ zbuffer.unmap();
301
+ } else {
302
+ await cLoad;
303
+ }
304
+ /* eslint-enable no-undef */
384
305
 
385
- case 43:
386
- case "end":
387
- return _context.stop();
388
- }
389
- }
390
- }, _callee);
391
- }));
306
+ result.colorValues = new Uint32Array(colorBuffer.getMappedRange().slice());
307
+ colorBuffer.unmap();
308
+ result.generateSelection = (fx1, fy1, fx2, fy2) => generateSelectionWithData(result, fx1, fy1, fx2, fy2);
309
+ return result;
310
+ };
311
+ }
392
312
 
393
- return function (_x) {
394
- return _ref.apply(this, arguments);
395
- };
396
- }();
397
- } // ----------------------------------------------------------------------------
313
+ // ----------------------------------------------------------------------------
398
314
  // Object factory
399
315
  // ----------------------------------------------------------------------------
400
316
 
317
+ const DEFAULT_VALUES = {
318
+ // WebGPURenderWindow: null,
319
+ };
401
320
 
402
- var DEFAULT_VALUES = {// WebGPURenderWindow: null,
403
- }; // ----------------------------------------------------------------------------
321
+ // ----------------------------------------------------------------------------
404
322
 
405
323
  function extend(publicAPI, model) {
406
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
407
- Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
324
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
325
+ Object.assign(model, DEFAULT_VALUES, initialValues);
408
326
 
327
+ // Build VTK API
409
328
  vtkHardwareSelector.extend(publicAPI, model, initialValues);
410
329
  model._selectionPass = vtkWebGPUHardwareSelectionPass.newInstance();
411
330
  macro.setGet(publicAPI, model, ['_WebGPURenderWindow']);
412
- macro.moveToProtected(publicAPI, model, ['WebGPURenderWindow']); // Object methods
331
+ macro.moveToProtected(publicAPI, model, ['WebGPURenderWindow']);
413
332
 
333
+ // Object methods
414
334
  vtkWebGPUHardwareSelector(publicAPI, model);
415
- } // ----------------------------------------------------------------------------
335
+ }
336
+
337
+ // ----------------------------------------------------------------------------
338
+
339
+ const newInstance = macro.newInstance(extend, 'vtkWebGPUHardwareSelector');
416
340
 
417
- var newInstance = macro.newInstance(extend, 'vtkWebGPUHardwareSelector'); // ----------------------------------------------------------------------------
341
+ // ----------------------------------------------------------------------------
418
342
 
419
343
  var vtkWebGPUHardwareSelector$1 = {
420
- newInstance: newInstance,
421
- extend: extend
344
+ newInstance,
345
+ extend
422
346
  };
423
347
 
424
348
  export { vtkWebGPUHardwareSelector$1 as default, extend, newInstance };